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ę)?


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.


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 .


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”.


Już nie istnieje w centrum oprogramowania od Ubuntu 18.04 (i być może wcześniej)
— wanad
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.