Моя dconf/gsettings установка повреждается. Как я могу зафиксировать его без Ubuntu, переустанавливают?

Я запускаю Ubuntu 12.04.1 LTS x64 в VirtualBox. После одного очень неудачного misclick (сброс сохраненное состояние вместо загрузки сохраненное состояние) я получил очень раздражающую проблему.

Почти все приложения (единица, синаптическая, 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 в курсе, таким образом, полное переустанавливает, не опция для меня.

Как я могу зафиксировать его?

24
задан 7 June 2016 в 02:03

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/). Порядок был следующим:

  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
11
ответ дан 23 November 2019 в 01:19

Просто требуемый для добавления моего личного опыта на этом с человечностью 16.10. Шахта прекратила работать после использования Рабочей среды GNOME некоторое время и затем переключения на Единицу, чтобы показать другу, как противный это смотрело (IMO :D), и назад к GNOME. Я затем начал получать "... использование бэкенда памяти...".

Выполнение

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

Зафиксированный это для меня.

2
ответ дан 23 November 2019 в 01:19

Я испытал то же самое в Debian Jessie. Но решение корреспондента (он перестал работать с ним), было надлежащим для моего случая:

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

Эта проблема уничтожала меня, но Вы спасли мою жизнь, Спасибо: D

1
ответ дан 23 November 2019 в 01:19

Сначала проверьте, возвращается ли эта команда true:

gsettings writable com.canonical.Unity.Launcher favorites

В противном случае устанавливают бэкенд с:

sudo apt-get install dconf-gsettings-backend 

, Если это не помогает также, сбросить Ваш профиль с:

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

Впоследствии перезагрузка.

7
ответ дан 23 November 2019 в 01:19

Это работало на меня (и это действительно похоже на тот же вопрос Анаконды Python, поднятый Dmitry).

$ export GIO_EXTRA_MODULES=/usr/lib/x86_64-linux-gnu/gio/modules/

(Это заставляло меня не мочь изменить gsettings - особенно параметры принтера для Gedit.)

Источник:

https://github.com/conda-forge/glib-feedstock/issues/19

0
ответ дан 23 November 2019 в 01:19

Это может также произойти, если Вы имеете PATH конфликты с менеджером по среде 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

Добавление вместо preprending к PATH переменная будет решать Вашу проблему, но знать что что-либо в Вашей системе bin, или другой PATH местоположения, заменит Ваш anaconda3/bin.

Другая опция состояла бы в том, чтобы исказить /usr/bin/gsettings:

alias sys-gsettings=/usr/bin/gsettings
sys-gsettings get org.gnome.todo view
23
ответ дан 23 November 2019 в 01:19

Удостоверьтесь, что у Вас есть модуль, который делает сохранение (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).

0
ответ дан 23 November 2019 в 01:19

Другие вопросы по тегам:

Похожие вопросы: