it-swarm.com.de

Meine dconf / gsettings Installation ist kaputt. Wie kann ich das Problem beheben, ohne Ubuntu neu zu installieren?

Ich starte Ubuntu 12.04.1 LTS x64 in VirtualBox. Nach einem sehr unglücklichen Fehlklick (Zurücksetzen des gespeicherten Zustands statt Laden des gespeicherten Zustands) habe ich ein sehr ärgerliches Problem.

Fast alle Anwendungen (Unity, Synaptic, Gedit usw.) werden beim Start gedruckt:

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

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 vorhanden.


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

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

Ich muss die aktuelle Ubuntu-Installation beibehalten, sodass eine vollständige Neuinstallation für mich nicht in Frage kommt.

Wie kann ich es reparieren?

22
Dmitry

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

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

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

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

Dies ist auf die Reihenfolge der Suchpfade für dynamische Bibliotheken zurückzuführen (definiert in /etc/ld.so.conf.d/). Die Reihenfolge war wie folgt:

  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

Wenn Sie beispielsweise Ihren eigenen libc.so in /usr/local/lib einfügen, wird dieser anstelle des Standardwerts libc.so aus /lib/x86_64-linux-gnu geladen.

Die Reparatur:

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

Dies kann auch passieren, wenn Sie PATH Konflikte mit einem Python Umgebungsmanager wie Anaconda haben.

Stellen Sie sicher, dass which gsettings ausgeführt wird, bevor Sie zu tief gehen. Wenn das nicht /usr/bin/gsettings und stattdessen etwas wie /home/{username}/anaconda3/bin/gsettings ausgibt, haben Sie wahrscheinlich etwas .profile wie:

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

Ändern Sie es in:
export PATH=$PATH:$HOME/anaconda3/bin

App endet anstelle von pre Wenn Sie die Variable PATH verwenden, wird das Problem behoben. Beachten Sie jedoch, dass in Ihrem System alle Elemente bin oder andere PATH Standorte ersetzen Ihren anaconda3/bin.

Eine andere Möglichkeit wäre der Alias ​​/usr/bin/gsettings:

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

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

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.

7
Frantique

Ich wollte nur meine persönlichen Erfahrungen dazu mit Ubuntu 16.10 hinzufügen. Meins funktionierte nach einer Weile in der GNOME-Desktop-Umgebung nicht mehr und wechselte dann zu Unity, um einem Freund zu zeigen, wie böse es aussah (IMO: D), und zurück zu GNOME. Ich fing dann an, das "... using memory backend ..." zu bekommen.

Tun

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

Reparierte es für mich.

2
Gavin Ridley

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

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

Dieses Problem hat mich umgebracht, aber Sie haben mir das Leben gerettet. Danke: D

1
user410988

Dies hat bei mir funktioniert (und es sieht aus wie das gleiche Python Anaconda-Problem, das von Dmitry angesprochen wurde).

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

(Es führte dazu, dass ich gsettings nicht ändern konnte, insbesondere die Druckereinstellungen für Gedit.)

Quelle:

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

0
markling

Stellen Sie sicher, dass Sie das Modul haben, das das Speichern durchführt (libdconfsettings.so in /usr/lib/x86_64-linux-gnu/gio/modules/ oder /usr/lib/gio/modules/ oder wo immer Sie Ihre GIO-Module speichern). Unter Ubuntu wird diese Datei vom Paket dconf-gsettings-backend bereitgestellt. eine erneute Installation sollte ausreichen (Sudo aptitude reinstall dconf-gsettings-backend).

0
RJVB