我的 dconf/gsettings 安装已损坏。如何在不重新安装 Ubuntu 的情况下修复它?

我的 dconf/gsettings 安装已损坏。如何在不重新安装 Ubuntu 的情况下修复它?

我在 VirtualBox 中运行 Ubuntu 12.04.1 LTS x64。在一次非常不幸的误操作之后(重置保存状态而不是加载保存状态),我遇到了一个非常烦人的问题。

几乎所有应用程序(unity、synaptic、gedit 等)都会在启动时打印:

Using the 'memory' GSettings backend.  Your settings will not be saved or shared with other applications.

重启后所有 GUI 设置在重置。

另一个症状:

$ GSETTINGS_BACKEND=dconf dconf-editor
(dconf-editor:2353): GLib-GIO-WARNING **: Can't find module 'dconf' specified in GSETTINGS_BACKEND
GLib-GIO-Message: Using the 'memory' GSettings backend.  Your settings will not be saved or shared with other applications

/usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so确实存在。


我尝试过的(但没有帮助):

  • sudo apt-get install -f --reinstall dconf-tools libdconf0 libdconf-dbus-1-0 dconf-service
  • 从源代码构建 dconf-0.5,make install
  • 创建空的用户配置文件并在那里启动程序

我必须保留当前的 ​​Ubuntu 安装,因此完全重新安装对我来说不是一个选择。

我该如何修复它?

答案1

PATH如果您与 Anaconda 等 Python 环境管理器发生冲突,也会发生这种情况。

确保which gsettings在深入之前运行。如果没有打印/usr/bin/gsettings,而是打印类似以下内容,/home/{username}/anaconda3/bin/gsettings则可能是.profile//类似.bashrc以下内容.zshrc

export PATH=$HOME/anaconda3/bin:$PATH

更改为:
export PATH=$PATH:$HOME/anaconda3/bin

应用程序结束而不是将 predding 添加到PATH变量将解决您的问题,但请注意,系统bin或其他PATH位置的任何内容都将取代您的anaconda3/bin

另一个选择是使用别名/usr/bin/gsettings

alias sys-gsettings=/usr/bin/gsettings
sys-gsettings get org.gnome.todo view

答案2

我找到了解决方案。看来我/usr/local/lib从 的“影子”系统库中获得了几个自定义库/usr/lib/x86_64-linux-gnu/

我通过检查加载的动态库发现了它libdconfsettings.so

ldd /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so

...
<  several dynamic libraries from /usr/local/lib >
...

这是因为动态库(在 中定义)的搜索路径顺序造成的/etc/ld.so.conf.d/。顺序如下:

  1. /lib/i386-linux-gnu
  2. /usr/lib/i386-linux-gnu
  3. /lib/i686-linux-gnu
  4. /usr/lib/i686-linux-gnu
  5. 在 /usr/local/lib 中
  6. /lib/x86_64-linux-gnu
  7. /usr/lib/x86_64-linux-gnu

因此,例如,如果您将自己的内容放入libc.so其中,/usr/local/lib它将被加载,而不是默认libc.so加载/lib/x86_64-linux-gnu

修复:

sudo mv /etc/ld.so.conf.d/libc.conf /etc/ld.so.conf.d/xuserlocal.conf
sudo ldconfig
sudo reboot

答案3

首先检查此命令是否返回true

gsettings writable com.canonical.Unity.Launcher favorites

如果没有,请使用以下命令安装后端:

sudo apt-get install dconf-gsettings-backend 

如果这也不起作用,请使用以下命令重置您的个人资料:

rm -rf ~/.gnome ~/.gnome2 ~/.gconf ~/.gconfd ~/.metacity .config/dconf/*

然后重新启动。

答案4

我在 Debian Jessie 中也遇到了同样的问题。但提问者的解决方案(他失败了)适合我的情况:

 sudo apt-get install -f --reinstall  dconf-tools libdconf0 libdconf-dbus-1-0 dconf-service

这个问题一直困扰着我,但你救了我的命,谢谢 :D

相关内容