我的dconf / gsettings安装已损坏。 如何在没有Ubuntu重新安装的情况下修复它?
我在VirtualBox中运行Ubuntu 12.04.1 LTS x64。 经过一次非常不幸的错误点击(重置保存状态而不是加载保存状态)后,我遇到了一个非常烦人的问题。
几乎所有应用程序(统一,突触,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安装,所以完全重新安装不是我的选择。
我该如何解决?
我找到了解决方案。 看来我在/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/
定义)。 订单如下:
- / LIB / I386-Linux的GNU
- / usr / lib中/ I386-Linux的GNU
- / LIB / i686的-Linux的GNU
- / usr / lib中/ i686的-Linux的GNU
- 在/ usr / local / lib目录
- / LIB / x86_64的-Linux的GNU
- / usr / lib中/ x86_64的-Linux的GNU
因此,例如,如果您将自己的libc.so
放入/usr/local/lib
,则将从/lib/x86_64-linux-gnu
加载而不是默认的libc.so
修复:
sudo mv /etc/ld.so.conf.d/libc.conf /etc/ld.so.conf.d/xuserlocal.conf sudo ldconfig sudo reboot
如果您与像Anaconda这样的Python环境管理器发生PATH
冲突,也会发生这种情况。
确保在变得太深之前运行which gsettings
。 如果那不打印/usr/bin/gsettings
而是像/home/{username}/anaconda3/bin/gsettings
你可能有一些.profile
类的:
export PATH=$HOME/anaconda3/bin:$PATH
将其更改为:
export PATH=$PATH:$HOME/anaconda3/bin
应用程序结束而不是预先添加到PATH
变量将解决您的问题,但请注意,系统bin
或其他PATH
位置中的任何内容都将取代您的anaconda3/bin
。
首先检查此命令是否返回true
:
gsettings writable com.canonical.Unity.Launcher favorites
如果没有,请安装后端:
sudo apt-get install dconf-gsettings-backend
如果这也没有帮助,请重置您的个人资料:
rm -rf ~/.gnome ~/.gnome2 ~/.gconf ~/.gconfd ~/.metacity .config/dconf/*
然后重启。
只是想用ubuntu 16.10添加我的个人经验。 在使用GNOME桌面环境一段时间后,我停止工作,然后切换到Unity向朋友展示它看起来多么讨厌(IMO:D),然后回到GNOME。 然后我开始得到“……使用内存后端…”。
干
rm -rf ~/.gnome ~/.gnome2 ~/.gconf ~/.gconfd ~/.metacity .config/dconf/* sudo ldconfig sudo reboot
为我修好了。
我在Debian Jessie经历过同样的事情。 但提问者的解决方案(他已经失败了)适合我的情况:
sudo apt-get install -f --reinstall dconf-tools libdconf0 libdconf-dbus-1-0 dconf-service
这个问题一直在扼杀我,但是你救了我的命,谢谢:D