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

24

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

Ist /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.soaber 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 Quellen und make installes
  • 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?

Dmitry
quelle
1
Ich bin auf die gleiche GLib-GIO-Nachricht gestoßen, als ich versucht habe, mit gsettings die Launcher-Position festzulegen. Ich habe in den Forenbeiträgen gesucht und die Vorschläge hier ausprobiert, einschließlich des Zurücksetzens der Dynamic Linker-Konfiguration mit ldconfig. Alle konnten das Problem jedoch nicht beheben. Dann brachte mich Dmitry dazu, mit ldd die Abhängigkeiten von 'gsettings' gemeinsam genutzten Objekten zu überprüfen, was dazu führte, dass ich herausfand, welche ausführbare Datei ich in Anacondas Installation verwendete. Mit der Version in / usr / bin wurde das Problem behoben.
Panna

Antworten:

23

Dies kann auch passieren, wenn Sie PATHKonflikte mit einem Python-Umgebungsmanager wie Anaconda haben.

Stellen Sie sicher, dass Sie rennen, which gsettingsbevor Sie zu tief werden. Wenn das nicht gedruckt werden /usr/bin/gsettingsund stattdessen so etwas wie /home/{username}/anaconda3/bin/gsettingsSie wahrscheinlich etwas .profile/ .bashrc/ .zshrcwie:

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

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

App statt endet vor prending auf die PATHVariable wird Ihr Problem lösen, aber bewusst sein , dass alles , was in Ihrem System binoder anderen PATHOrten Ihre ablösen wird anaconda3/bin.

Eine andere Option wäre ein Alias /usr/bin/gsettings:

alias sys-gsettings=/usr/bin/gsettings
sys-gsettings get org.gnome.todo view
austince
quelle
3
Der erste Teil (Laufen which) ist eine ausgezeichnete Beratung. Der zweite Teil, nicht so sehr. Sie möchten im Allgemeinen, dass Ihre Umgebung mit einem eigenen Setup ausgeführt wird. Eine bessere oder zumindest alternative Lösung könnte darin bestehen, explizit zu starten, /usr/bin/gsettingsanstatt mit ihnen herumzuspielen PATH.
Mad Physicist
Ja, stimme dir vollkommen zu! Ich denke, insgesamt sollten Sie im Allgemeinen wissen, wie die PATHQuelle / angewendet wird.
Austin
Es löste mein Problem in Ubuntu 18.04 sehr schöne Antwort +1
Opt
Da dies etwas an Fahrt gewinnt, ist es meines Erachtens eine weitere gute Möglichkeit, Anakonda aus dem Weg zu räumen, wenn Sie Konflikte haben und python -m [command] [...args]stattdessen Befehle mit ausführen .
Austin
Ich musste dies auch in meinem .bashrc (.profile) aktualisieren.
Barun
11

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

Ich habe es entdeckt, indem ich dynamische Bibliotheken überprüft habe, die geladen wurden von 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 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-gnu
  7. / usr / lib / x86_64-linux-gnu

Wenn also zum Beispiel setzen Sie Ihre eigene libc.soin /usr/local/libes statt standardmäßig geladen werden , libc.soaus /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
Dmitry
quelle
2
Danke, ich hatte auch dieses Problem, weil ich versucht habe, einen Patch für glib zu entwickeln und ausgeführt sudo make install. sudo make uninstalllöste das Problem durch Entfernen dieser Bibliotheken um/usr/local/lib/
mxmlnkn
1
+1. Wirklich gelöst wurde ein ähnliches Problem nach der Installation von Glib2.
111
2
Linux Mint kehrte immer wieder zu den Standardeinstellungen zurück und respektierte keine Änderungen, die ich vorgenommen und doppelt eingecheckt hatte dconf-editor. Es stellte sich heraus, dass ich glib aus dem Quellcode erstellt hatte und sudo make installnicht wusste, dass ich meinen Hintergrund, meine Uhr oder andere Zimt-Einstellungen nicht ändern konnte. Hat mich verrückt gemacht. Back link: forums.linuxmint.com/viewtopic.php?t=244360&start=20
RyanNerd
Ich bekomme diesen Fehler! mv: kann nicht statieren '/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 anstelle von IDE ausführen!
Amir
@Amir Entspricht die ldd-Ausgabe der Beschreibung in der Ausgabe? Wahrscheinlich haben Sie ein anderes Problem.
Dmitry
7

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

Frantique
quelle
1
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 bleibt auch bei leerem Benutzerkonto bestehen.
Dmitry
Haben Sie das dconf-gsettings-Backend installiert?
Frantique
Ja, dconf-gsettings-backend wird installiert (und mehrmals neu installiert).
Dmitry
Sie haben einen Fehlklick erwähnt. Wo ist das passiert?
Frantique
1
Danke für deine Antwort. Ich fand die Lösung (als Antwort veröffentlicht)
Dmitry
2

Ich wollte nur meine persönlichen Erfahrungen dazu mit Ubuntu 16.10 hinzufügen. Meins funktionierte nicht mehr, nachdem ich eine Weile die GNOME-Desktop-Umgebung verwendet hatte, 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.

Gavin Ridley
quelle
1
Beachten Sie, dass dadurch die gesamte Konfiguration für Ihren Desktop gelöscht wird.
Moorepants
1

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

user410988
quelle
0

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 Neuinstallation sollte ausreichen ( sudo aptitude reinstall dconf-gsettings-backend).

RJVB
quelle
0

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

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

(Ich konnte gsettings nicht ändern, insbesondere die Druckereinstellungen für Gedit.)

Quelle:

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

Markieren
quelle