Я запускаю Ubuntu 12.04.1 LTS x64 в VirtualBox. После одного очень неудачного щелчка (сброс сохраненного состояния вместо загрузки сохраненного состояния) у меня возникла очень раздражающая проблема.
Почти все приложения (Unity, Synaptic, Gedit и т. д.) при запуске выводят:
Using the 'memory' GSettings backend. Your settings will not be saved or shared with other applications.
И все настройки графического интерфейса сбрасываются после перезагрузки.
Еще один симптом:
$ 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
конфликты с менеджером среды Python, например Anaconda.
Убедитесь, что вы запустили 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
Приложениеокончание вместопредварительноИзменение переменной 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/
). Порядок был следующим:
- /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
он будет загружен вместо файла по умолчанию 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