Frage Meine dconf / gsettings Installation ist kaputt. Wie kann ich es ohne Ubuntu-Neuinstallation beheben?


Ich benutze Ubuntu 12.04.1 LTS x64 in VirtualBox. Nach einem sehr unglücklichen Misclick (Zurücksetzen des gespeicherten Zustandes statt des geladenen Zustandes) bekam ich ein sehr nerviges Problem.

Fast alle Anwendungen (Einheit, Synaptic, gedit, etc.) drucken am Anfang:

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

Und alle GUI-Einstellungen werden nach dem Neustart zurückgesetzt.

Ein weiteres Symptom:

$ 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

Aber /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so ist anwesend.


Was ich versucht habe (und es hat nicht geholfen):

  • sudo apt-get install -f --reinstall dconf-tools libdconf0 libdconf-dbus-1-0 dconf-service
  • Build dconf-0.5 aus Quellen und make install es
  • Erstellen Sie ein leeres Benutzerprofil und starten Sie dort Programme

Ich muss die aktuelle Ubuntu-Installation beibehalten, damit eine vollständige Neuinstallation für mich keine Option ist.

Wie kann ich es reparieren?


15
2017-12-09 14:42


Ursprung


Ich habe die gleiche GLib-GIO-Nachricht gefunden, als ich versucht habe, gsettings zu verwenden, um die Launcher-Position festzulegen. Ich suchte in den Posts des Forums und probierte die Vorschläge aus, einschließlich des Zurücksetzens der dynamischen Linker-Konfiguration mit ldconfig. Alle konnten das Problem jedoch nicht beheben. Dann hat mich Dmitrys Beitrag dazu gebracht, mit ldd die Abhängigkeiten von 'gsettings' zu überprüfen, was mich dazu brachte herauszufinden, dass die ausführbare Datei, die ich benutzte, von der Installation von Anaconda kam. Durch die Verwendung der Version in / usr / bin wurde das Problem behoben. - panna


Antworten:


Ich habe die Lösung gefunden. Es scheint, dass ich mehrere benutzerdefinierte Bibliotheken in /usr/local/lib das "beschattet" Systembibliotheken von /usr/lib/x86_64-linux-gnu/.

Ich habe es entdeckt, indem ich dynamische Bibliotheken überprüft habe, die mit geladen wurden libdconfsettings.so:

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

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

Dies geschah aufgrund der Reihenfolge der Suchpfade für dynamische Bibliotheken (definiert in /etc/ld.so.conf.d/). Die Reihenfolge war folgende:

  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

Also wenn du zum Beispiel deine eigene aufstellst libc.so in /usr/local/lib Es wird anstelle des Standardwerts geladen libc.so von /lib/x86_64-linux-gnu.

Die Reparatur:

sudo mv /etc/ld.so.conf.d/libc.conf /etc/ld.so.conf.d/xuserlocal.conf
sudo ldconfig
sudo reboot

11
2017-12-09 15:33



Danke, ich hatte dieses Problem auch, weil ich versucht habe, einen Patch für glib zu entwickeln und auszuführen sudo make install. sudo make uninstall löste das Problem durch Entfernen dieser Bibliotheken bei /usr/local/lib/ - mxmlnkn
+1. Wirklich gelöst ist ein ähnliches Problem nach der Installation von Glib2. - 111
Linux Mint ging immer wieder auf die Standardeinstellungen zurück und respektierte keine Änderungen, die ich vorgenommen und doppelt eingecheckt hatte dconf-editor. Es stellte sich heraus, dass ich Glib von Source und sudo make install von dem ich keine Ahnung hatte, würde ich nicht meinen Hintergrund, meine Uhr oder andere Zimteinstellungen ändern. Hat mich verrückt gemacht. Zurück Link: foren.linuxmint.com/viewtopic.php?t=244360&start=20 - RyanNerd
Ich bekomme diesen Fehler! mv: can not stat '/etc/ld.so.conf.d/libc.conf': Keine solche Datei oder Verzeichnis und ich habe keine Bibliotheken in meinem / usr / loca / lib außer den Python-Umgebungen, die ich auf Anaconda habe. aber das ganze Problem begann, als ich ein neues Paket installierte. und es passiert nicht, wenn ich meinen Code auf Jupyter-Notebook statt IDE laufen lasse! - Amir
@Amir Ist die Ausgabe von ldd die gleiche wie in der Problembeschreibung? Wahrscheinlich hast du ein anderes Problem. - Dmitry


Überprüfen Sie zuerst, ob dieser Befehl zurückgibt true:

gsettings writable com.canonical.Unity.Launcher favorites

Wenn nicht, installieren Sie das Backend mit:

sudo apt-get install dconf-gsettings-backend 

Wenn dies auch nicht hilft, setzen Sie Ihr Profil zurück mit:

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

Danach neu starten.


5
2017-12-09 14:53



Der erste Befehl gibt 'true' zurück (zusammen mit 'using' memory 'backend'). Zum Entfernen der Benutzerkonfiguration: Ich habe bereits versucht, ein leeres Profil zu erstellen, und das Problem besteht auch bei einem leeren Benutzerkonto. - Dmitry
Hast du das dconf-gsettings-Backend installiert? - Frantique
Ja, dconf-gsettings-backend ist installiert (und mehrmals neu installiert). - Dmitry
Du hast einen Misclick erwähnt. Wo ist das passiert? - Frantique
Danke für deine Antwort. Ich habe die Lösung gefunden (als Antwort gepostet) - Dmitry


Dies kann auch passieren, wenn Sie Ihre Einstellungen vornehmen PATH falsch (wie ich) mit einem Python-Umgebungsmanager wie Anaconda.

Stellen Sie sicher, dass Sie ausgeführt werden which gsettings bevor ich zu tief werde. Wenn das nicht gedruckt wird /usr/bin/gsettings und stattdessen so etwas wie /home/{username}/anaconda3/bin/gsettings Du hast wahrscheinlich etwas .profile mögen:

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

Ändere es zu:
export PATH=$PATH:$HOME/anaconda3/bin

Stellen Sie sicher, dass AppEnde statt Vorprend zum PATH Variable, aber sei dir bewusst, dass alles in der Anakonda bin wird Ihr System ersetzen bin.


5
2018-02-19 22:56



Der erste Teil (läuft which) ist ein ausgezeichneter Rat. Der zweite Teil, nicht so sehr. Normalerweise möchten Sie, dass Ihre Umgebung mit einer eigenen Konfiguration ausgeführt wird. Eine bessere oder zumindest alternative Lösung könnte explizit ausgeführt werden /usr/bin/gsettings anstatt damit herumzuspielen PATH. - Mad Physicist
Yup, stimme völlig mit dir überein! Ich denke insgesamt, man sollte sich generell bewusst sein wie PATH ist Quelle / angewendet. - Austin Cawley-Edwards


Ich wollte nur meine persönliche Erfahrung dazu mit Ubuntu 16.10 hinzufügen. Mine funktioniert nicht mehr, nachdem ich die GNOME Desktop-Umgebung für eine Weile benutzt habe, und wechselte dann zu Unity, um einem Freund zu zeigen, wie unangenehm es aussah (IMO: D) und zurück zu GNOME. Ich habe dann angefangen, das "... mit dem Speicher-Backend ..." zu bekommen.

Tun

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

Behoben für mich.


2
2017-12-16 18:06



Beachten Sie, dass damit die gesamte Konfiguration für Ihren Desktop gelöscht wird. - moorepants


Ich habe dasselbe in Debian Jessie erlebt. Aber die Lösung des Fragestellers (er hatte damit versagt) war für meinen Fall richtig:

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

Dieses Problem hat mich umgebracht, aber du hast mir das Leben gerettet, Danke: D


1
2018-05-17 13:51