Как мне почистить базу данных dconf?

Dconf довольно молод, но моя база данных уже запутана с большим количеством ключей без схемы. Есть ли способ сделать некоторую очистку, или мне нужно начать с нуля (удалив ~/.config/dconf/user, я думаю)?

4 ответа

Решение

Это возможно с помощью dconf reset команда, хотя не ясно, является ли это побочным эффектом ошибки.

  • Для одного ключа:

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

    Не должно заканчиваться /,

  • Для всего пути:

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

    Должен заканчиваться /,

Если вы делаете это, имея dconf-editor открыт, он, скорее всего, потерпит крах.

Если вы хотите очистить базу данных dconf, сначала вы должны сбросить всю конфигурацию dconf с помощью:

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

После этих шагов вы должны снова открыть графическую сессию (выйти / войти). Это создаст ~/.config/dconf/user файл заново с почти 0 контентом - настройки по умолчанию.

Для user-backup файл, который вы создали ранее, это просто текстовый файл:

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

Таким образом, вы можете отредактировать его и удалить нужные записи / блоки из этого файла. Другими словами - убери это.

Когда вы закончите, загрузите его:

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 /

Я думаю, что вы должны возобновить графическую сессию после этого снова.

И это все, но вы должны помнить, что все записи, которые имеют значения по умолчанию, не будут сохранены - они будут созданы заново, когда какое-то приложение попросит об этом, что хорошо, потому что вы хотите сделать резервную копию только тех значений, которые вы изменили,

Устанавливать gconf-cleaner из центра программного обеспечения.
sudo apt-get install gconf-cleaner

По их собственным словам, "GConf Cleaner - это инструмент для очистки вашей базы данных Gconf, который может быть загроможден ненужными или недействительными ключами".

Очень поздно, но я нашел способ удалить особенно упрямые старые записи, которые здесь не упоминаются. В /usr/share/glib-2.0/schemas, будет несколько .gschema.xmlфайлы. Посмотрите там, вы, вероятно, найдете файлы, связанные с этими записями.

Удалите их так.

      rm -v /usr/share/glib-2.0/schemas/org.gnome.shell.extensions.stubborn.gschema.xml

Затем перекомпилируйте gschemas.compiledфайл с помощью этой команды:

      glib-compile-schemas /usr/share/glib-2.0/schemas/

Оттуда я использовал Alt+F2 > r для перезагрузки. Не уверен, что это необходимо. Если вы используете Wayland, вам, вероятно, придется перезагрузиться, если это так. И записи пропали.

Другие вопросы по тегам