Моя установка dconf/gsettings не работает. Как я могу это исправить без переустановки Ubuntu?
Я запускаю 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, поэтому полная переустановка не вариант для меня.
Как я могу это исправить?
7 ответов
Я нашел решение. Похоже, я получил несколько пользовательских библиотек в /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/
). Заказ был следующий:
- / Библиотека /i386-Linux-гну
- / USR / Библиотека /i386-Linux-гну
- / Библиотека / i686-Linux-гну
- / USR / Библиотека / i686-Linux-гну
- / USR / местные / Библиотека
- / Библиотека / x86_64-Linux-гну
- / USR / Библиотека / x86_64-Linux-гну
Так что если, например, вы положили свой собственный 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
Это также может произойти, если у вас есть PATH
конфликтует с менеджером среды Python, таким как Anaconda.
Не забудьте запустить 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
,
Другим вариантом будет псевдоним /usr/bin/gsettings
:
alias sys-gsettings=/usr/bin/gsettings
sys-gsettings get org.gnome.todo view
Сначала проверьте, возвращает ли эта команда 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
Это сработало для меня (и похоже на ту же проблему с Python Anaconda, которую поднял Дмитрий).
$ export GIO_EXTRA_MODULES=/usr/lib/x86_64-linux-gnu/gio/modules/
(Это приводило к тому, что я не мог изменить настройки - особенно настройки принтера для Gedit.)
Источник:
Убедитесь, что у вас есть модуль, который выполняет сохранение (libdconfsettings.so в /usr/lib/x86_64-linux-gnu/gio/modules/ или / usr / lib / gio / modules / или где бы вы ни хранили свои модули GIO). В Ubuntu этот файл предоставляется пакетом dconf-gsettings-backend; переустановить что то должно хватить (sudo aptitude reinstall dconf-gsettings-backend
).