Wie kann ich den Inhalt einer Sicherung der Datenbankdatei dconf anzeigen?

20

Ich habe eine Sicherungskopie der Datei erstellt, in der meine dconfDatenbank gespeichert ist (bei ~/.config/dconf/userder es sich um eine Binärdatei handelt), und jetzt muss ich einige Schlüssel von der Sicherungskopie auf die dconfverwendete Datei verschieben .

Wie kann ich den Inhalt des gesicherten dconfDokuments anzeigen, ohne es "an Ort und Stelle" zu platzieren, und es zum Beispiel mit anzeigen dconf-editor?

PetaspeedBeaver
quelle

Antworten:

25

Um den Inhalt dieser Datei anzuzeigen, können Sie sie umbenennen - z. B. testunter platzieren ~/.config/dconf/und dann dconfdie Einstellungen dieser Datei lesen / sichern.
Standardmäßig , dconfliest der Benutzer-db gefunden in $XDG_CONFIG_HOME/dconf/:

Eine "user-db"Zeile gibt eine Benutzerdatenbank an.
Diese Datenbanken befinden sich in $XDG_CONFIG_HOME/dconf/. Der Name der Datei, die in diesem Verzeichnis geöffnet werden soll, ist genau so, wie er im Profil geschrieben ist. Es wird erwartet, dass diese Datei im binären dconf-Datenbankformat vorliegt. Beachten Sie, dass XDG_CONFIG_HOMEdies nicht pro Terminal oder Sitzung eingestellt / geändert werden kann, da dann der Schreiber und der Leser an verschiedenen DBs arbeiten würden (der Schreiber wird von DBus gestartet und kann diese Variable nicht sehen).

Infolgedessen benötigen Sie ein benutzerdefiniertes Profil, das auf diese bestimmte Datenbankdatei verweist - z. B. user-db:testund weisen Sie dann dconfan, die Daten (unter Verwendung des benutzerdefinierten Profils) über die DCONF_PROFILEUmgebungsvariable zu sichern:

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

Das Ergebnis ist eine Datei ( old_settings), die die Einstellungen aus Ihrer gesicherten dconfDatei enthält, z.

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

.......

Sie könnten dann diese Dateien entfernen:

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

und lade die alten Einstellungen in die aktuelle Datenbank:

dconf load / < old_settings

Wenn Sie nur bestimmte Einstellungen sichern möchten, geben Sie einfach den Pfad an:

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

Beachten Sie jedoch, dass Sie für jeden Pfad eine andere Datei haben und beim Laden den Pfad entsprechend angeben sollten:

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

Beachten Sie außerdem, dass ältere dconfDatenbanken aufgrund von Upstream-Änderungen möglicherweise Pfade, Schlüssel und Werte enthalten, die in neueren Versionen ungültig sind, sodass die vollständige Kompatibilität zwischen DB-Dateien, die mit verschiedenen Versionen von erstellt wurden, dconfnicht immer gewährleistet ist. In diesem Fall müssten Sie die resultierende old_settingsDatei untersuchen und die ungültigen Einträge manuell entfernen oder bearbeiten, bevor Sie sie in Ihre aktuelle Datenbank laden.

don_crissti
quelle
17
WTF? Wer ist für dieses Durcheinander verantwortlich und wer sollte deswegen geschlagen werden? (Aber: Vielen Dank für diese Information, sie hat mir auch geholfen.)
Tino
1
@Tino Gnome Devs, glaube ich :) Aber es sollte einige Front-End-Tools geben
Anwar
Die Mitwirkenden werden unter gitlab.gnome.org/GNOME/dconf/graphs/master
Ben Creasy
Ich denke, Lesen ist kein Problem. Stellen Sie einfach ein XDG_CONFIG_HOMEanderes Verzeichnis ein. Keine Profilmagie erforderlich. Das Schreiben in eine beliebige dconf-Datei ist jedoch schwierig und kann Ihren Profiltrick erforderlich machen.
Torsten Bronger
-1

Ich denke, die erste Antwort hat die Angelegenheit zu kompliziert gemacht. Versuchen wir es also noch einmal. Verwenden wir /org/cinnamon/als Beispiel einen Namespace zum Sichern und Wiederherstellen:

So sichern Sie / org / cinnamon /:

Führen Sie an einem Terminal Folgendes aus:

dconf dump /org/cinnamon/ > backup_of_my_cinnamon_settings

Speichern Sie die backup_of_my_cinnamon_settingsDatei irgendwo für später

So setzen Sie / org / cinnamon / auf die Standardeinstellungen zurück:

dconf reset -f /org/cinnamon/

Beachten Sie, dass Zimt dabei einfrieren oder abstürzen kann

So stellen Sie alle Einstellungen für / org / cinnamon wieder her:

dconf load /org/cinnamon/ < backup_of_my_cinnamon_settings


Der Prozess wäre der gleiche für /org/gnome/terminal/usw.

Um optimale Ergebnisse zu erzielen, aktualisieren Sie die App-Referenzen, wenn sie nicht ausgeführt werden.

Vielen Dank an Cinnamon docs für die Tipps.

Mark Stosberg
quelle
3
Ich denke, Sie sollten es noch einmal versuchen: Die Frage hier ist nicht, wie Sie einige Einstellungen sichern und wiederherstellen, sondern wie Sie die Einstellungen aus einer gespeicherten Binärdatei anzeigen (und möglicherweise laden ) .
don_crissti