如何清理dconf数据库?


40

Dconf还很年轻,但是我的数据库已经被很多“无模式”键所困扰。有没有办法进行清理,还是我需要从头开始(我猜想是删除〜/ .config / dconf / user)?


您是否有机会添加自己所看到的屏幕截图?我没有看到相同的问题。
fossfreedom

1
使用任何使用GSettings / dconf的软件,更改默认值之一(例如gnome-nettool,运行whois),删除该应用程序。现在,您的遗体已保存在数据库中(例如,在apps.gnome-nettool中)。好的,如果您稍后再安装该软件,但我想删除这些密钥。
htorque 2011年

快速在线搜索让我找到了一个看起来类似于gconf 的Google Code项目 ...可以将其修改为与dconf一起使用吗?
Christopher Kyle Horton

您是否尝试过查看文本文件并尝试执行替换操作以从dconf中删除所有不需要的项?
Severo Raz

Answers:


34

dconf reset尽管尚不清楚这是否是错误的副作用,但可以使用命令来实现。

  • 对于单个键:

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

    不得以结尾/

  • 对于整个路径:

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

    必须以结尾/

如果在dconf-editor打开时执行此操作,则可能会崩溃。


这样很好。对于新手,在指明路径时请省略引号。+1到@htorque。Tx。
Cbhihe 2015年

为了完整起见,我在昨天的评论中补充说,我在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 2015年

我确定会重做,但是我确认这不会影响任何更改。我想我对这个答案的投票太快了。现在无法撤消。
Cbhihe 2015年

我更新了答案,对其进行了检查-对我有用。
Mikhail Morfikov

是的,现在效果很好。结束统一会话并重新开始之前,删除〜/ .config / dconf / user是缺少的步骤。赞成票立场。谢谢。
Cbhihe

当我登录到gnome后出现黑屏时,这救了我。使用打开tty后Alt+Ctrl+F3,我可以执行这些步骤。另一个有用的命令是sudo pkill -u <username>重新启动活动的gnome桌面会话。
佐尔坦

1

gconf-cleaner从软件中心安装。
sudo apt-get install gconf-cleaner

用他们自己的话说:“ GConf Cleaner是一种清理您的Gconf数据库的工具,它可能因不必要的或无效的密钥而杂乱无章。”


从Ubuntu 18.04(可能更早)开始,软件中心不再存在
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.