web-dev-qa-db-fra.com

Mon installation de dconf / gsettings est cassée. Comment puis-je résoudre ce problème sans réinstaller Ubuntu?

Je lance Ubuntu 12.04.1 LTS x64 dans VirtualBox. Après un très mauvais clic (réinitialisation de l'état sauvegardé au lieu de l'état sauvegardé du chargement), j'ai eu un problème très ennuyeux.

Presque toutes les applications (unité, synaptique, gedit, etc.) sont imprimées au début:

Using the 'memory' GSettings backend.  Your settings will not be saved or shared with other applications.

Et tous les paramètres de l'interface graphique sont réinitialisés après le redémarrage.

Un autre symptôme:

$ 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

Mais /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so est présent.


Ce que j'ai essayé (et ça n'a pas aidé):

  • Sudo apt-get install -f --reinstall dconf-tools libdconf0 libdconf-dbus-1-0 dconf-service
  • Construisez dconf-0.5 à partir des sources et make install it
  • Créez un profil utilisateur vide et démarrez des programmes là-bas

Je dois garder l'installation actuelle d'Ubuntu afin qu'une réinstallation complète ne soit pas une option pour moi.

Comment puis-je le réparer?

22
Dmitry

J'ai trouvé la solution. Il semble que j'ai eu plusieurs bibliothèques personnalisées dans /usr/local/lib qui "ombrent" les bibliothèques système à partir de /usr/lib/x86_64-linux-gnu/.

Je l'ai découvert en vérifiant les bibliothèques dynamiques chargées par libdconfsettings.so:

ldd /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so

...
<  several dynamic libraries from /usr/local/lib >
...

Cela est dû à l'ordre des chemins de recherche des bibliothèques dynamiques (défini dans /etc/ld.so.conf.d/). La commande était la suivante:

  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-gn
  7. / usr/lib/x86_64-linux-gnu

Donc, si par exemple vous mettez votre propre libc.so dans /usr/local/lib, il sera chargé à la place de la valeur par défaut libc.so à partir de /lib/x86_64-linux-gnu.

Le correctif:

Sudo mv /etc/ld.so.conf.d/libc.conf /etc/ld.so.conf.d/xuserlocal.conf
Sudo ldconfig
Sudo reboot
11
Dmitry

Cela peut également arriver si vous avez PATHen conflit avec un Python _ gestionnaire d'environnement tel qu'Anaconda.

Assurez-vous d’exécuter which gsettings avant de vous lancer trop profondément. Si cela n'imprime pas /usr/bin/gsettings et que quelque chose comme /home/{username}/anaconda3/bin/gsettings vous avez probablement quelque chose comme .profile comme:

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

Changez le en:
export PATH=$PATH:$HOME/anaconda3/bin

App se terminant au lieu de pre attribuer la variable PATHrésoudra votre problème, mais sachez que tout élément de votre système binou de PATHremplacera votre anaconda3/bin.

Une autre option serait d’alias /usr/bin/gsettings:

alias sys-gsettings=/usr/bin/gsettings
sys-gsettings get org.gnome.todo view
18
austince

Commencez par vérifier si cette commande renvoie true:

gsettings writable com.canonical.Unity.Launcher favorites

Sinon, installez le backend avec:

Sudo apt-get install dconf-gsettings-backend 

Si cela ne vous aide pas non plus, réinitialisez votre profil avec:

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

Ensuite, redémarrez.

7
Frantique

Je voulais juste ajouter mon expérience personnelle à ce sujet avec Ubuntu 16.10. Mine a cessé de fonctionner après avoir utilisé l'environnement de bureau GNOME pendant un certain temps, puis de passer à Unity pour montrer à un ami à quoi il ressemblait (IMO: D), puis de revenir à GNOME. J'ai alors commencé à recevoir le message "... utilisant la mémoire backend ...".

Faire

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

Corrigé pour moi.

2
Gavin Ridley

J'ai vécu la même chose dans Debian Jessie. Mais la solution de l'interrogateur (il avait échoué) convenait à mon cas:

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

Ce problème m'avait tué, mais tu m'as sauvé la vie, merci: D

1
user410988

Cela a fonctionné pour moi (et cela ressemble au même problème Python Anaconda soulevé par Dmitry).

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

(Cela m'empêchait de modifier gsettings - en particulier les paramètres de l'imprimante pour Gedit.)

La source:

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

0
markling

Assurez-vous que le module qui enregistre est enregistré (libdconfsettings.so dans/usr/lib/x86_64-linux-gnu/gio/modules/ou/usr/lib/gio/modules/ou à l'emplacement où vous stockez vos modules GIO). Sur Ubuntu, ce fichier est fourni par le paquet dconf-gsettings-backend; la réinstallation devrait suffire (Sudo aptitude reinstall dconf-gsettings-backend).

0
RJVB