La mia installazione di dconf / gsettings è rotta. Come posso ripararlo senza reinstallare Ubuntu?


24

Corro Ubuntu 12.04.1 LTS x64 in VirtualBox. Dopo un errore molto sfortunato (resetta lo stato salvato invece di caricare lo stato salvato) ho avuto un problema molto fastidioso.

Quasi tutte le applicazioni (unità, sinaptico, gedit, ecc.) Stampano all'avvio:

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

E tutte le impostazioni della GUI vengono ripristinate dopo il riavvio.

Un altro sintomo:

$ 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

Ma /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.soè presente.


Quello che ho provato (e non ha aiutato):

  • sudo apt-get install -f --reinstall dconf-tools libdconf0 libdconf-dbus-1-0 dconf-service
  • Crea dconf-0.5 dai sorgenti e da make installesso
  • Crea un profilo utente vuoto e avvia i programmi lì

Devo mantenere l'attuale installazione di Ubuntu, quindi una reinstallazione completa non è un'opzione per me.

Come posso ripararlo?


1
Ho riscontrato lo stesso messaggio GLib-GIO durante il tentativo di utilizzare gsettings per impostare la posizione del Launcher. Ho cercato tra i post del forum e ho provato i suggerimenti qui incluso il ripristino della configurazione dinamica del linker usando ldconfig. Tuttavia, tutti non sono stati in grado di risolvere il problema. Quindi il post di Dmitry mi ha fatto pensare di usare ldd per controllare le dipendenze degli oggetti condivisi 'gsettings', il che mi ha fatto scoprire che l'eseguibile che stavo usando proveniva da quello nell'installazione di Anaconda. Usando la versione in / usr / bin risolto il problema.
Panna,

Risposte:


23

Questo può accadere anche in caso di PATHconflitti con un gestore dell'ambiente Python come Anaconda.

Assicurati di correre which gsettingsprima di diventare troppo profondo. Se ciò non viene stampato /usr/bin/gsettingse invece qualcosa come /home/{username}/anaconda3/bin/gsettingste probabilmente ha qualcosa .profile/ .bashrc/ .zshrccome:

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

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

L'app che termina invece di pre- invio alla PATHvariabile risolverà il tuo problema, ma tieni presente che qualsiasi cosa nel tuo sistema bino in altre PATHposizioni sostituirà la tua anaconda3/bin.

Un'altra opzione sarebbe quella di alias /usr/bin/gsettings:

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

3
La prima parte (in esecuzione which) è un consiglio eccellente. La seconda parte, non così tanto. In genere si desidera che l'ambiente venga eseguito utilizzando la propria configurazione. Una soluzione migliore, o almeno alternativa, potrebbe essere quella di eseguire esplicitamente /usr/bin/gsettingsinvece di fare confusione PATH.
Fisico pazzo,

Sì, sono totalmente d'accordo con te! Penso che nel complesso, dovresti generalmente essere consapevole di come l' PATHorigine / applicazione.
austince dal

Ha risolto il mio problema in Ubuntu 18.04 molto bella risposta +1
Opt

Dato che questo sta ottenendo una certa trazione, penso che un altro buon modo potrebbe essere quello di mantenere l'anaconda fuori dal tuo percorso se stai avendo conflitti ed esegui comandi con python -m [command] [...args]invece.
austince il

Ho dovuto aggiornare anche questo nel mio .bashrc (.profile).
Barun

11

Ho trovato la soluzione Sembra che ho ottenuto diverse librerie personalizzate in /usr/local/libquelle librerie di sistema "ombreggiate" da /usr/lib/x86_64-linux-gnu/.

L'ho scoperto controllando le librerie dinamiche caricate da libdconfsettings.so:

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

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

È successo a causa dell'ordine dei percorsi di ricerca per le librerie dinamiche (definite in /etc/ld.so.conf.d/). L'ordine era il seguente:

  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

Così, se per esempio si mette il proprio libc.soin /usr/local/libesso verrà caricato invece di inadempienza libc.soda /lib/x86_64-linux-gnu.

La correzione:

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

2
Grazie, ho avuto anche questo problema, perché ho provato a sviluppare una patch per glib ed eseguito sudo make install. sudo make uninstallrisolto il problema rimuovendo quelle librerie in/usr/local/lib/
mxmlnkn il

1
+1. Risolto davvero un problema simile si presentò dopo l'installazione di Glib2.
111,

2
Linux Mint ha continuato a tornare alle impostazioni predefinite senza rispettare le modifiche apportate e ricontrollato dconf-editor. Si è scoperto che avevo costruito glib dalla fonte e sudo make installche non avevo idea non mi avrebbe permesso di cambiare il mio sfondo o orologio, o altre impostazioni di cannella. Mi stava facendo impazzire. Collegamento a ritroso
RyanNerd,

ho questo errore! mv: impossibile stat '/etc/ld.so.conf.d/libc.conf': nessun file o directory di questo tipo e non ho librerie nel mio / usr / loca / lib tranne gli ambienti python che ho su Anaconda. ma l'intero problema è iniziato quando ho installato un nuovo pacchetto. e non succede quando eseguo il mio codice su jupyter-notebook anziché IDE!
Amir,

@Amir L'output di ldd è lo stesso della descrizione del problema? Probabilmente hai un altro problema.
Dmitry,

7

Prima controlla se questo comando restituisce true:

gsettings writable com.canonical.Unity.Launcher favorites

In caso contrario, installare il backend con:

sudo apt-get install dconf-gsettings-backend 

Se neanche questo aiuta, reimposta il tuo profilo con:

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

Successivamente riavviare.


1
il primo comando restituisce 'true' (insieme a "using 'memory' backend"). Per quanto riguarda la rimozione della configurazione utente: ho già provato a creare un profilo vuoto e il problema persiste anche con un account utente vuoto.
Dmitry

Hai il dconf-gsettings-backend installato?
Frantique,

Sì, dconf-gsettings-backend è installato (e reinstallato più volte).
Dmitry

Hai citato un errore. Dov'è successo?
Frantique,

1
Grazie per la tua risposta. Ho trovato la soluzione (pubblicata come risposta)
Dmitry il

2

Volevo solo aggiungere la mia esperienza personale su questo con Ubuntu 16.10. Il mio ha smesso di funzionare dopo aver usato l'ambiente desktop GNOME per un po ', quindi è passato a Unity per mostrare a un amico quanto fosse sgradevole (IMO: D) e di nuovo su GNOME. Ho quindi iniziato a ottenere il "... utilizzo del backend di memoria ...".

fare

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

Risolto il problema per me.


1
Nota che questo cancella tutta la configurazione per il tuo desktop.
Moorepants,

1

Ho sperimentato la stessa cosa in Debian Jessie. Ma la soluzione dell'interrogatore (che aveva fallito) era corretta per il mio caso:

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

Questo problema mi stava uccidendo, ma mi hai salvato la vita, grazie: D


0

Assicurati di avere il modulo che esegue il salvataggio (libdconfsettings.so in / usr / lib / x86_64-linux-gnu / gio / modules / o / usr / lib / gio / modules / o ovunque memorizzi i tuoi moduli GIO). Su Ubuntu quel file è fornito dal pacchetto dconf-gsettings-backend; reinstallare quello che dovrebbe bastare ( sudo aptitude reinstall dconf-gsettings-backend).


0

Questo ha funzionato per me (e sembra lo stesso problema di Python Anaconda sollevato da Dmitry).

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

(Mi impediva di modificare le impostazioni, in particolare le impostazioni della stampante per Gedit.)

Fonte:

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.