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

40

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

htorque
источник
есть ли шанс добавить скриншот того, что вы видите? Я не вижу той же проблемы.
fossfreedom
1
Используйте любое программное обеспечение, которое использует GSettings / dconf, измените одно из значений по умолчанию (например, gnome-nettool, запустите whois), удалите приложение. Теперь у вас есть остатки в вашей базе данных (например, в apps.gnome-nettool). Хорошо, если вы переустановите это программное обеспечение позже, но я хочу удалить эти ключи.
hruque
Быстрый онлайн-поиск позволил мне найти проект Google Code, который, кажется, делает что-то похожее на gconf ... это можно изменить для работы с dconf?
Кристофер Кайл Хортон
Вы пытались просмотреть текстовый файл и попытаться найти замену, чтобы удалить все ненужные элементы из вашего dconf?
Северо Раз

Ответы:

34

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

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

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

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

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

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

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

Если вы сделаете это во время dconf-editorоткрытия, это может привести к сбою.

htorque
источник
Это работает просто отлично. Для новичков опускайте кавычки, когда вы указываете пути. +1 к @htorque. Tx.
Cbhihe
Для полноты изложения добавляю вчерашний комментарий о том, что я успешно использовал это решение в Trusty 14.04.2.
Cbhihe
3

Если вы хотите очистить базу данных 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 /

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

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

Михаил Морфиков
источник
На самом деле это, похоже, не оказывает никакого влияния на изменяемый и перезагружаемый подпуть dconf. (Я работаю с полностью обновленной Ubuntu 14.04.2 и пытаюсь удалить из ppa: fixnix / netspeed все ключи, которые имеют отношение к пакету Indicator-netspeed-unity.) Это выглядит как чистый способ сделать это, но просто делает НЕ влияет на любые изменения.
Cbhihe
Я переделал это, чтобы быть уверенным, но я подтверждаю, что это не влияет на какие-либо изменения. Я думаю, что проголосовал за этот ответ слишком быстро. Не могу отменить это сейчас.
Cbhihe
Я обновил ответ, проверь - у меня работает.
Михаил Морфиков
Да, теперь это работает хорошо. Удаление ~ / .config / dconf / user перед завершением сеанса Unity и повторный запуск были недостающими шагами. Голосование стоит. Спасибо.
Cbhihe
Это спасло меня, когда я получил черный экран после входа в гном. После открытия tty с помощью Alt+Ctrl+F3я смог выполнить эти шаги. Дополнительная полезная команда состояла в том, sudo pkill -u <username>чтобы перезапустить активный сеанс рабочего стола gnome.
Золтан
1

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

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

Parto
источник
Больше не существует в центре программного обеспечения с Ubuntu 18.04 (и, возможно, ранее)
vanadium