Jak wyczyścić bazę danych Dconf?

40

Dconf jest dość młody, ale w mojej bazie danych jest już bałagan z mnóstwem kluczy „bez schematu”. Czy jest jakiś sposób na wyczyszczenie, czy też musiałbym zacząć od zera (usuwając ~ / .config / dconf / user, jak sądzę)?

htorque
źródło
czy masz szansę dodać zrzut ekranu z tego, co widzisz? Nie widzę tego samego problemu.
fossfreedom
1
Użyj dowolnego oprogramowania korzystającego z GSettings / dconf, zmień jedną z wartości domyślnych (np. Gnome-nettool, uruchom whois), usuń aplikację. Teraz masz resztki w swojej bazie danych (np. W apps.gnome-nettool). Dobrze, jeśli przeinstalujesz to oprogramowanie w późniejszym czasie, ale chcę je usunąć.
htorque
Szybkie wyszukiwanie online pozwoliło mi znaleźć projekt Google Code, który wydaje się robić coś podobnego dla gconf ... czy można go zmodyfikować do pracy z dconf?
Christopher Kyle Horton
Czy próbowałeś przejrzeć plik tekstowy i spróbować znaleźć operację zamiany, aby usunąć wszystkie niechciane elementy z dconf?
Severo Raz

Odpowiedzi:

34

Jest to możliwe przy użyciu dconf resetpolecenia, choć nie jest jasne, czy jest to efekt uboczny błędu.

  • W przypadku jednego klucza:

    dconf reset "/path/to/the/key"
    

    Nie może kończyć się na /.

  • Dla całej ścieżki:

    dconf reset -f "/path/to/the/path/"
    

    Musi kończyć się na /.

Jeśli zrobisz to podczas dconf-editorotwierania, prawdopodobnie nastąpi awaria.

htorque
źródło
To działa dobrze. W przypadku początkujących pomijaj znaki cudzysłowu przy wskazywaniu ścieżek. +1 do @htorque. TX
Cbhihe
Dla kompletności dodam do wczorajszego komentarza, że ​​z powodzeniem zastosowałem to rozwiązanie w Trusty 14.04.2.
Cbhihe
3

Jeśli chcesz wyczyścić bazę danych dconf, musisz najpierw zrzucić całą konfigurację dconf poprzez:

morfik:~$ cd ~/.config/dconf/
morfik:~/.config/dconf$ dconf dump / > user-backup
morfik:~/.config/dconf$ ls -al ./user-backup
-rw-r--r-- 1 morfik morfik 30.0K 2015-02-07 08:18:04 ./user-backup
morfik:~/.config/dconf$ rm user

Po tych krokach musisz ponownie otworzyć sesję graficzną (wyloguj się / zaloguj). Spowoduje to ~/.config/dconf/userponowne utworzenie pliku z prawie 0 treściami - ustawienia domyślne.

Jeśli chodzi o user-backupplik, który wcześniej utworzyłeś, jest to zwykły plik tekstowy:

...
[apps/light-locker]
late-locking=false
lock-after-screensaver=uint32 1
lock-on-suspend=true
...

Możesz go edytować i usunąć żądane wpisy / bloki z tego pliku. Innymi słowy - wyczyść to.

Po zakończeniu załaduj:

morfik:~/.config/dconf$ dconf load / < ./user-backup
morfik:~/.config/dconf$ ls -al ./user-backup
-rw-r--r-- 1 morfik morfik 14.0K 2015-02-07 08:26:23 ./user-backup
morfik:~/.config/dconf$ dconf update /

Myślę, że powinieneś ponownie uruchomić sesję graficzną po tym.

I to wszystko, ale musisz pamiętać, że wszystkie wpisy o wartościach domyślnych nie zostaną zapisane - zostaną utworzone od nowa, gdy poprosi o to jakaś aplikacja, co jest dobre, ponieważ chcesz wykonać kopię zapasową tylko tych wartości, które zostały zmienione .

Michaił Morfikow
źródło
Wydaje się, że nie ma to żadnego wpływu na modyfikację i ponowne załadowanie podścieżki dconf. (Pracuję z w pełni zaktualizowanym Ubuntu 14.04.2 i próbuję usunąć wszystkie klucze, które mają związek z pakietem wskaźnik-netspeed-unity z ppa: fixnix / netspeed.) Wygląda to na czysty sposób, aby to zrobić, ale po prostu robi NIE wpływaj na żadne zmiany.
Cbhihe
Z pewnością zmieniłem to, ale potwierdzam, że nie ma to wpływu na żadną zmianę. Myślę, że głosowałem na tę odpowiedź trochę za szybko. Nie można tego teraz cofnąć.
Cbhihe,
Zaktualizowałem odpowiedź, sprawdź - działa dla mnie.
Michaił Morfikow
Tak, teraz działa dobrze. Usunięcie ~ / .config / dconf / user przed zakończeniem sesji jedności i ponownym uruchomieniem to brakujące kroki. Głosowanie trwa. Dziękuję Ci.
Cbhihe
To mnie uratowało, gdy dostałem czarny ekran po zalogowaniu się do gnome. Po otwarciu tty z Alt+Ctrl+F3byłem w stanie wykonać te kroki. Dodatkowym przydatnym poleceniem było sudo pkill -u <username>zrestartowanie aktywnej sesji pulpitu gnome.
Zoltán
1

Zainstaluj gconf-cleanerz centrum oprogramowania.
sudo apt-get install gconf-cleaner

Ich własnymi słowami „GConf Cleaner to narzędzie do czyszczenia bazy danych Gconf, które może być zaśmiecone niepotrzebnymi lub nieprawidłowymi kluczami”.

Parto
źródło
Już nie istnieje w centrum oprogramowania od Ubuntu 18.04 (i być może wcześniej)
wanad