Mon installation dconf / gsettings est interrompue. Comment puis-je le réparer sans réinstaller Ubuntu?

24

J'exécute Ubuntu 12.04.1 LTS x64 dans VirtualBox. Après un mauvais clic très malheureux (réinitialiser l'état enregistré au lieu de charger l'état enregistré), j'ai eu un problème très ennuyeux.

Presque toutes les applications (unité, synaptique, gedit, etc.) s'impriment au démarrage:

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.soest 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
  • Construire dconf-0,5 de sources et make installil
  • Créez un profil utilisateur vide et lancez-y des programmes

Je dois garder l'installation actuelle d'Ubuntu, donc une réinstallation complète n'est pas une option pour moi.

Comment puis-je le réparer?

Dmitry
la source
1
J'ai rencontré le même message GLib-GIO lorsque j'essayais d'utiliser gsettings pour définir la position du lanceur. J'ai cherché dans les messages du forum et essayé les suggestions ici, y compris la réinitialisation de la configuration de l'éditeur de liens dynamiques à l'aide de ldconfig. Cependant, tous n'ont pas pu résoudre le problème. Ensuite, le message de Dmitry m'a fait penser à utiliser ldd pour vérifier les dépendances des objets partagés 'gsettings', ce qui m'a fait découvrir que l'exécutable que j'utilisais provenait de celui dans l'installation d'Anaconda. En utilisant la version dans / usr / bin, le problème a été résolu.
panna

Réponses:

23

Cela peut également se produire si vous avez des PATHconflits avec un gestionnaire d'environnement Python comme Anaconda.

Assurez-vous de courir which gsettingsavant de devenir trop profond. Si cela n'imprime pas /usr/bin/gsettingset au lieu quelque chose comme /home/{username}/anaconda3/bin/gsettingsavez - vous probablement quelque chose .profile/ .bashrc/ .zshrccomme:

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

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

App se terminant au lieu de pré prending à la PATHvariable résoudre votre problème, mais sachez que quelque chose dans votre système bin, ou d' autres PATHendroits, remplacera 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
austince
la source
3
La première partie (en cours d'exécution which) est un excellent conseil. La deuxième partie, pas tellement. Vous souhaitez généralement que votre environnement s'exécute à l'aide de sa propre configuration. Une meilleure solution, ou au moins une alternative, pourrait être d'exécuter explicitement /usr/bin/gsettingsau lieu de jouer avec PATH.
Mad Physicist
Ouais, totalement d'accord avec toi! Je pense que dans l'ensemble, vous devez généralement être conscient de la façon dont la PATHsource / appliquée.
austince le
Cela a résolu mon problème dans Ubuntu 18.04 très belle réponse +1
Opt
Étant donné que cela obtient une certaine traction, je pense qu'un autre bon moyen pourrait être de garder anaconda hors de votre chemin si vous rencontrez des conflits et exécutez des commandes avec python -m [command] [...args].
depuis
J'ai également dû mettre à jour cela dans mon .bashrc (.profile).
Barun
11

J'ai trouvé la solution. Il semble que j'ai obtenu plusieurs bibliothèques personnalisées dans /usr/local/libces bibliothèques système "masquées" /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 s'est produit en raison de l'ordre des chemins de recherche pour les bibliothèques dynamiques (définies dans /etc/ld.so.conf.d/). L'ordonnance é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-gnu
  7. / usr / lib / x86_64-linux-gnu

Donc , si par exemple , vous mettez votre propre libc.soen /usr/local/libelle sera chargée au lieu de défaut libc.sode /lib/x86_64-linux-gnu.

La solution:

sudo mv /etc/ld.so.conf.d/libc.conf /etc/ld.so.conf.d/xuserlocal.conf
sudo ldconfig
sudo reboot
Dmitry
la source
2
Merci, j'ai également eu ce problème, car j'ai essayé de développer un correctif pour glib et exécuté sudo make install. sudo make uninstallrésolu le problème en supprimant ces bibliothèques à/usr/local/lib/
mxmlnkn
1
+1. Vraiment résolu un problème similaire est apparu après l'installation de Glib2.
111
2
Linux Mint a continué à revenir aux paramètres par défaut et à ne pas respecter les modifications que j'ai apportées et à vérifier à nouveau dconf-editor. Il s'est avéré que j'avais construit glib à partir de la source et sudo make installque je n'avais aucune idée ne me laisserait pas changer mon arrière-plan ou mon horloge, ou d'autres paramètres de cannelle. Me rendait fou. Lien de retour: forums.linuxmint.com/viewtopic.php?t=244360&start=20
RyanNerd
j'ai cette erreur! mv: ne peut pas stat '/etc/ld.so.conf.d/libc.conf': Aucun fichier ou répertoire de ce type et je n'ai aucune bibliothèque dans mon / usr / loca / lib à l'exception des environnements python que j'ai sur Anaconda. mais tout le problème a commencé lorsque j'ai installé un nouveau package. et cela ne se produit pas lorsque j'exécute mon code sur jupyter-notebook au lieu d'IDE!
Amir
@Amir La sortie ldd est-elle la même que dans la description du problème? Vous avez probablement un autre problème.
Dmitry
7

Vérifiez d'abord 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/*

Redémarrez ensuite.

Frantique
la source
1
la première commande renvoie 'true' (avec "l'utilisation du backend 'memory'"). Concernant la suppression de la configuration utilisateur: j'ai déjà essayé de créer un profil vide et le problème persiste même avec un compte utilisateur vide.
Dmitry
Avez-vous installé le back-end dconf-gsettings?
Frantique
Oui, dconf-gsettings-backend est installé (et réinstallé plusieurs fois).
Dmitry
Vous avez mentionné un mauvais clic. Où est-ce arrivé?
Frantique
1
Merci pour votre réponse. J'ai trouvé la solution (publiée comme réponse)
Dmitry
2

Je voulais juste ajouter mon expérience personnelle à ce sujet avec Ubuntu 16.10. Le mien a cessé de fonctionner après avoir utilisé l'environnement de bureau GNOME pendant un certain temps, puis est passé à Unity pour montrer à un ami à quel point il était désagréable (IMO: D), puis de nouveau à GNOME. J'ai ensuite commencé à obtenir le "... en utilisant le backend mémoire ...".

Faire

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

Fixé pour moi.

Gavin Ridley
la source
1
Notez que cela efface toute la configuration de votre bureau.
moorepants
1

J'ai vécu la même chose dans Debian Jessie. Mais la solution du questionneur (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

user410988
la source
0

Assurez-vous que vous disposez du module qui enregistre (libdconfsettings.so dans / usr / lib / x86_64-linux-gnu / gio / modules / ou / usr / lib / gio / modules / ou partout où vous stockez vos modules GIO). Sur Ubuntu, ce fichier est fourni par le package dconf-gsettings-backend; réinstaller que l'on devrait suffire ( sudo aptitude reinstall dconf-gsettings-backend).

RJVB
la source
0

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 me empêchait de modifier les paramètres - en particulier les paramètres de l'imprimante pour Gedit.)

La source:

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

marquage
la source