Mi instalación dconf / gsettings está rota. ¿Cómo puedo solucionarlo sin la reinstalación de Ubuntu?

Ejecuto Ubuntu 12.04.1 LTS x64 en VirtualBox. Después de un error muy desafortunado (restablecer estado guardado en lugar de cargar estado guardado) tuve un problema muy molesto.

Casi todas las aplicaciones (unit, synaptic, gedit, etc.) se imprimen al inicio:

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

Y todos los ajustes de la GUI se reinician después de reiniciar.

Otro síntoma:

 $ 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 

Pero /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so está presente.


Lo que intenté (y no me sirvió):

  • sudo apt-get install -f --reinstall dconf-tools libdconf0 libdconf-dbus-1-0 dconf-service
  • Construye dconf-0.5 desde fonts y make install
  • Crea un perfil de usuario vacío y comienza los progtwigs allí.

Tengo que mantener la instalación actual de Ubuntu para que una reinstalación completa no sea una opción para mí.

¿Cómo puedo arreglarlo?

He encontrado la solución. Parece que obtuve varias bibliotecas personalizadas en /usr/local/lib que “sombrearon” las bibliotecas del sistema de /usr/lib/x86_64-linux-gnu/ .

Lo descubrí revisando las bibliotecas dinámicas cargadas por libdconfsettings.so :

 ldd /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so ... < several dynamic libraries from /usr/local/lib > ... 

Ocurrió debido al orden de las rutas de búsqueda para las bibliotecas dinámicas (definidas en /etc/ld.so.conf.d/ ). El orden fue el siguiente:

  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

Entonces, si, por ejemplo, coloca su propio libc.so en /usr/local/lib , se cargará en lugar del libc.so predeterminado desde /lib/x86_64-linux-gnu .

La solución:

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

Esto también puede suceder si tiene conflictos PATH con un administrador de entornos Python como Anaconda.

Asegúrese de ejecutar which gsettings antes de profundizar demasiado. Si eso no imprime /usr/bin/gsettings y, en cambio, algo como /home/{username}/anaconda3/bin/gsettings probablemente tengas algo .profile como:

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

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

La aplicación que finaliza en lugar de hacer una previsión a la variable PATH resolverá su problema, pero tenga en cuenta que cualquier cosa en su bin sistema u otras ubicaciones de PATH reemplazará su anaconda3/bin .

Primero compruebe si este comando devuelve true :

 gsettings writable com.canonical.Unity.Launcher favorites 

Si no, instale el backend con:

 sudo apt-get install dconf-gsettings-backend 

Si esto tampoco ayuda, restablece tu perfil con:

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

Después reinicie.

Solo quería agregar mi experiencia personal en esto con ubuntu 16.10. El mío dejó de funcionar después de usar el entorno de escritorio de GNOME por un tiempo, y luego cambiando a Unity para mostrarle a un amigo lo desagradable que se veía (IMO: D), y luego a GNOME. Entonces empecé a obtener el “… usando memoria de fondo …”.

Obra

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

Lo arreglé para mí.

Experimenté lo mismo en Debian Jessie. Pero la solución del interrogador (había fallado con ella) era adecuada para mi caso:

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

Este problema me había estado matando, pero me salvaste la vida, gracias: D