Come posso visualizzare il contenuto di un backup del file di database dconf?


20

Ho eseguito un backup del file in cui dconfè archiviato il mio database ( ~/.config/dconf/userche è un file binario) e ora devo spostare alcune chiavi dal backup a quello dconfin uso.

Come posso visualizzare il contenuto del backup dconfsenza metterlo "in atto" e visualizzarlo con ad esempio dconf-editor?

Risposte:


25

Per visualizzare il contenuto di quel file è possibile rinominarlo - ad esempio test- posizionarlo sotto ~/.config/dconf/e quindi dconfleggere / scaricare le impostazioni da quel file.
Per impostazione predefinita , dconflegge il db utente trovato in $XDG_CONFIG_HOME/dconf/:

Una "user-db"riga specifica un database utente.
Questi database si trovano in $XDG_CONFIG_HOME/dconf/. Il nome del file da aprire in quella directory è esattamente come è scritto nel profilo. Questo file dovrebbe essere nel formato di database dconf binario. Si noti che XDG_CONFIG_HOMEnon è possibile impostare / modificare per terminale o sessione, perché quindi il writer e il lettore funzionerebbero su DB diversi (il writer viene avviato da DBus e non può vedere quella variabile).

Di conseguenza, avresti bisogno di un profilo personalizzato che punta a quel particolare file db - ad es. user-db:testE poi ti istruisca dconfdi scaricare i dati (usando il profilo personalizzato) tramite la DCONF_PROFILEvariabile d'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

Il risultato è un file ( old_settings) che contiene le impostazioni del dconffile di backup , ad esempio:

[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'

.......

È quindi possibile rimuovere quei file:

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

e carica le vecchie impostazioni nel database corrente:

dconf load / < old_settings

Se desideri scaricare solo impostazioni specifiche, fornisci solo il percorso:

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

ma nota che per ogni percorso dovresti avere un file diverso e quando lo carichi dovresti specificare il percorso di conseguenza:

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

Si noti inoltre che, a causa di modifiche a monte, i dconfdatabase meno recenti potrebbero contenere percorsi, chiavi e valori non validi nelle versioni più recenti, quindi la piena compatibilità tra i file db creati da versioni diverse di dconfnon è sempre garantita. In tal caso, è necessario ispezionare il old_settingsfile risultante e rimuovere o modificare manualmente le voci non valide prima di caricarlo nel database corrente.


17
WTF? Chi è responsabile di questo pasticcio e chi dovrebbe essere battuto per questo? (Ma: grazie mille per questa informazione, mi ha aiutato anche io.)
Tino

1
@Tino gnome devs Credo :) Ma ci dovrebbero essere alcuni strumenti front-end
Anwar

I collaboratori sono mostrati su gitlab.gnome.org/GNOME/dconf/graphs/master
Ben Creasy,

Penso che leggere non sia un problema. Basta impostare XDG_CONFIG_HOMEsu un'altra directory. Nessuna magia del profilo necessaria. Ma scrivere su un file dconf arbitrario è difficile e potrebbe rendere necessario il trucco del tuo profilo.
Torsten Bronger,

-1

Penso che la prima risposta abbia complicato eccessivamente la questione, quindi riproviamo, usando /org/cinnamon/come spazio dei nomi di esempio per eseguire il backup e il ripristino:

Per eseguire il backup / org / cannella /:

Da un terminale, eseguire:

dconf dump /org/cinnamon/ > backup_of_my_cinnamon_settings

salva il backup_of_my_cinnamon_settingsfile da qualche parte per dopo

Per ripristinare / org / cannella / ai valori predefiniti:

dconf reset -f /org/cinnamon/

Nota che la cannella potrebbe congelarsi o bloccarsi in questo modo

Per ripristinare tutte le impostazioni per / org / cinnamon:

dconf load /org/cinnamon/ < backup_of_my_cinnamon_settings


Il processo sarebbe lo stesso per /org/gnome/terminal/, ecc.

Per risultati ottimali, aggiorna i riferimenti alle app quando non sono in esecuzione.

Grazie ai documenti di Cinnamon per i suggerimenti.


3
Penso che dovresti riprovare: la domanda qui non è come fare il backup e ripristinare alcune impostazioni ma come visualizzare (e forse caricare ) le impostazioni da un file binario salvato .
don_crissti,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.