Моя установка dconf / gsettings нарушена. Как я могу исправить это без переустановки Ubuntu?

10

Я запускаю 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.

И все настройки графического интерфейса перезагружаются после перезагрузки.

Другой симптом:

$ 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 it
  • Создать пустой профиль пользователя и запустить там программы.

Мне нужно поддерживать текущую установку Ubuntu, поэтому полная переустановка не является для меня вариантом.

Как я могу это исправить?

    
задан Dmitry 09.12.2014 в 14:42
источник

6 ответов

10

Я нашел решение. Похоже, что у меня появилось несколько настраиваемых библиотек в /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-гну
  2. / USR / Библиотека / i386-Linux-гну
  3. / Lib / i686-Linux-гну
  4. / USR / Библиотека / i686-Linux-гну
  5. / USR / местные / Библиотека
  6. / Библиотека / x86_64-Linux-гну
  7. / 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
    
ответ дан Dmitry 09.12.2014 в 15:33
источник
5

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

gsettings writable com.canonical.Unity.Launcher favorites

Если нет, установите сервер с помощью

sudo apt-get install dconf-gsettings-backend 

Если это не помогает, сбросьте свой профиль с помощью:

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

После перезагрузки.

    
ответ дан Frantique 09.12.2014 в 14:53
4

Я столкнулся с тем же GLib-GIO-Message, когда пытался использовать gsettings для установки позиции Launcher. Я просмотрел сообщения форума и попробовал здесь предложения, включая сброс конфигурации динамического компоновщика с помощью ldconfig. Однако все не удалось устранить проблему.

Затем сообщение Дмитрия заставило меня задуматься о том, чтобы использовать ldd для проверки зависимостей общих объектов 'gsettings', из-за которых я выяснил, что исполняемый файл, который я использовал, был получен из установки Anaconda.

При использовании версии в / usr / bin разрешена проблема.

    
ответ дан panna 07.08.2017 в 04:56
1

Просто хотел добавить свой личный опыт в этом с помощью ubuntu 16.10. Mine перестала работать после использования среды рабочего стола GNOME некоторое время, а затем переключилась на Unity, чтобы показать другу, насколько он противный (IMO: D), и обратно в GNOME. Затем я начал получать «... используя память ...».

Выполнение

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

Исправлено это для меня.

    
ответ дан Gavin Ridley 16.12.2016 в 18:06
1

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

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

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

    
ответ дан user410988 17.05.2015 в 13:51
1

Это также может произойти, если вы неправильно установили PATH (как и я) с менеджером среды Python, например Anaconda.

Обязательно запустите which gsettings , прежде чем получить слишком глубокий уровень. Если это не печатает /usr/bin/gsettings и вместо этого что-то вроде /home/{username}/anaconda3/bin/gsettings , у вас, вероятно, есть что-то .profile like:

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

Измените его на:
export PATH=$PATH:$HOME/anaconda3/bin

Всегда убедитесь, что app end вместо pre присваивается переменной PATH .     

ответ дан Austin Cawley-Edwards 19.02.2018 в 22:56