Como posso visualizar o conteúdo de um backup do arquivo de banco de dados dconf?

20

Fiz um backup do arquivo em que meu dconfbanco de dados está armazenado ( ~/.config/dconf/userque é um arquivo binário) e agora preciso mover algumas chaves do backup para o dconfem uso.

Como posso visualizar o conteúdo do backup dconfsem colocá-lo "no lugar" e visualizá-lo, por exemplo dconf-editor?

PetaspeedBeaver
fonte

Respostas:

25

Para visualizar o conteúdo desse arquivo, você pode renomeá-lo, por exemplo, testcolocá-lo sob ~/.config/dconf/e depois dconfler / despejar as configurações desse arquivo.
Por padrão , dconflê o user-db encontrado em $XDG_CONFIG_HOME/dconf/:

Uma "user-db"linha especifica um banco de dados do usuário.
Esses bancos de dados são encontrados em $XDG_CONFIG_HOME/dconf/. O nome do arquivo a ser aberto nesse diretório é exatamente como está escrito no perfil. Este arquivo deve estar no formato binário do banco de dados dconf. Observe que XDG_CONFIG_HOMEnão pode ser definido / modificado por terminal ou sessão, porque o gravador e o leitor trabalhariam em bancos de dados diferentes (o gravador é iniciado pelo DBus e não pode ver essa variável).

Como resultado, você precisaria de um perfil personalizado que aponte para esse arquivo db específico - por exemplo, user-db:teste instrua dconfa despejar os dados (usando o perfil personalizado) por DCONF_PROFILEmeio da variável de ambiente:

cd
cp /path_to_backup_dconf/user ~/.config/dconf/test
printf %s\\n "user-db:test" > db_profile
DCONF_PROFILE=~/db_profile dconf dump / > old_settings

O resultado é um arquivo ( old_settings) contendo as configurações do seu dconfarquivo de backup , por exemplo:

[org/gnome/desktop/interface]
font-name='DejaVu Sans Oblique 10'
document-font-name='DejaVu Sans Oblique 10'
gtk-im-module='gtk-im-context-simple'
clock-show-seconds=true
icon-theme='HighContrast'
monospace-font-name='DejaVu Sans Mono Oblique 10'

[org/gnome/desktop/input-sources]
sources=@a(ss) []
xkb-options=@as []

[org/gnome/desktop/wm/preferences]
num-workspaces=4
titlebar-font='DejaVu Sans Bold Oblique 10'

.......

Você pode remover esses arquivos:

rm -f ~/db_profile ~/.config/dconf/test

e carregue as configurações antigas no banco de dados atual:

dconf load / < old_settings

Se você deseja despejar apenas configurações específicas, forneça o caminho:

DCONF_PROFILE=~/db_profile dconf dump /org/gnome/desktop/wm/preferences/
[/]
num-workspaces=4
titlebar-font='DejaVu Sans Bold Oblique 10'

mas observe que para cada caminho você deve ter um arquivo diferente e, quando carregá-lo, deve especificar o caminho adequadamente:

dconf load /org/gnome/desktop/wm/preferences/ < old_wm_settings

Observe também que, devido às alterações upstream, os dconfbancos de dados mais antigos podem conter caminhos, chaves e valores inválidos nas versões mais recentes; portanto, dconfnem sempre é garantida a compatibilidade total entre arquivos db criados por diferentes versões . Nesse caso, você teria que inspecionar o old_settingsarquivo resultante e remover ou editar manualmente as entradas inválidas antes de carregá-lo no banco de dados atual.

don_crissti
fonte
17
WTF? Quem é responsável por essa bagunça e quem deve ser derrotado por causa disso? (Mas: Muito obrigado por esta informação, ele me ajudou, também.)
Tino
11
@Tino gnome devs acredito :) Mas deve haver algumas ferramentas front-end
Anwar
Os contribuidores são mostrados em gitlab.gnome.org/GNOME/dconf/graphs/master
Ben Creasy
Eu acho que ler não é um problema. Basta definir XDG_CONFIG_HOMEpara outro diretório. Não é necessária nenhuma mágica de perfil. Mas gravar em um arquivo dconf arbitrário é difícil e pode tornar seu perfil necessário.
Torsten Bronger
-1

Eu acho que a primeira resposta complicou demais o assunto, então vamos tentar novamente, usando /org/cinnamon/como um espaço de nome de exemplo para fazer backup e restaurar:

Para fazer backup / org / canela /:

Em um terminal, execute:

dconf dump /org/cinnamon/ > backup_of_my_cinnamon_settings

salve o backup_of_my_cinnamon_settingsarquivo em algum lugar para mais tarde

Para redefinir / org / canela / para os padrões:

dconf reset -f /org/cinnamon/

Observe que a canela pode congelar ou travar fazendo isso

Para restaurar todas as suas configurações para / org / canela:

dconf load /org/cinnamon/ < backup_of_my_cinnamon_settings


O processo seria o mesmo para /org/gnome/terminal/etc.

Para obter melhores resultados, atualize as referências de aplicativos quando elas não estiverem em execução.

Obrigado aos documentos do Canela pelas dicas.

Mark Stosberg
fonte
3
Acho que você deveria tentar novamente: a questão aqui não é como fazer backup e restaurar algumas configurações, mas como visualizar (e talvez carregar ) as configurações de um arquivo binário salvo .
31418 don_crissti