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

24

Ejecuto Ubuntu 12.04.1 LTS x64 en VirtualBox. Después de un clic erróneo muy desafortunado (restablecer el estado guardado en lugar de cargar el estado guardado) obtuve 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 todas las configuraciones de la GUI se restablecen 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.soestá presente.


Lo que probé (y no ayudó):

  • sudo apt-get install -f --reinstall dconf-tools libdconf0 libdconf-dbus-1-0 dconf-service
  • Build dconf-0.5 a partir de fuentes y make installse
  • Cree un perfil de usuario vacío e inicie programas 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?

Dmitry
fuente
1
Encontré el mismo mensaje GLib-GIO cuando intentaba usar gsettings para establecer la posición del iniciador. Busqué a través de las publicaciones del foro y probé las sugerencias aquí, incluida la restauración de la configuración del enlazador dinámico usando ldconfig. Sin embargo, no todos pudieron solucionar el problema. Luego, la publicación de Dmitry me hizo pensar en usar ldd para verificar las dependencias de objetos compartidos 'gsettings', lo que me hizo descubrir que el ejecutable que estaba usando provenía de eso en la instalación de Anaconda. Al usar la versión en / usr / bin se resolvió el problema.
panna

Respuestas:

23

Esto también puede suceder si tiene PATHconflictos con un administrador de entorno de Python como Anaconda.

Asegúrate de correr which gsettingsantes de profundizar demasiado. Si eso no se imprime /usr/bin/gsettingsy, en cambio, algo así /home/{username}/anaconda3/bin/gsettingsprobablemente tenga algo .profile/ .bashrc/ .zshrccomo:

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

Cámbielo a:
export PATH=$PATH:$HOME/anaconda3/bin

Aplicación terminando en lugar de pre prending a la PATHvariable a resolver su problema, pero tenga en cuenta que cualquier cosa en su sistema bin, o de otros PATHlugares, reemplazará a su anaconda3/bin.

Otra opción sería alias /usr/bin/gsettings:

alias sys-gsettings=/usr/bin/gsettings
sys-gsettings get org.gnome.todo view
austince
fuente
3
La primera parte (correr which) es un excelente consejo. La segunda parte, no tanto. En general, desea que su entorno se ejecute con su propia configuración. Una solución mejor, o al menos alternativa, podría ser ejecutar explícitamente en /usr/bin/gsettingslugar de jugar PATH.
Físico loco
Sí, totalmente de acuerdo contigo! Creo que, en general, debería ser consciente de cómo PATHse aplica / se aplica la fuente.
austince
Resolvió mi problema en Ubuntu 18.04 muy buena respuesta +1
Opt
Dado que esto está obteniendo algo de tracción, creo que otra buena forma podría ser mantener a Anaconda fuera de su camino si tiene conflictos y ejecuta comandos con ellos python -m [command] [...args].
austince
También tuve que actualizar esto en mi .bashrc (.profile).
Barun
11

He encontrado la solución. Parece que obtuve varias bibliotecas personalizadas en las /usr/local/libbibliotecas del sistema "sombreado" /usr/lib/x86_64-linux-gnu/.

Lo descubrí comprobando 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 >
...

Sucedió 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

Así que si por ejemplo usted pone su propia libc.soen /usr/local/libque se cargará en lugar de por defecto libc.sode /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
Dmitry
fuente
2
Gracias, también tuve este problema, porque intenté desarrollar un parche para glib y lo ejecuté sudo make install. sudo make uninstallresolvió el problema eliminando esas bibliotecas en/usr/local/lib/
mxmlnkn
1
+1. Realmente resuelto un problema similar surgió después de la instalación de Glib2.
111
2
Linux Mint siguió volviendo a la configuración predeterminada y no respetó los cambios que hice y me registré dos veces dconf-editor. Resultó que había construido glib desde la fuente y sudo make installque no tenía idea que no me permitiría cambiar mi fondo o reloj, u otras configuraciones de canela. Me estaba volviendo loco. Vínculo hacia atrás: forums.linuxmint.com/viewtopic.php?t=244360&start=20
RyanNerd
me sale este error! mv: no puede stat '/etc/ld.so.conf.d/libc.conf': No existe tal archivo o directorio y no tengo ninguna biblioteca en mi / usr / loca / lib excepto los entornos de Python que tengo en Anaconda. pero todo el problema comenzó cuando instalé un nuevo paquete. ¡y no sucede cuando ejecuto mi código en jupyter-notebook en lugar de IDE!
Amir
@Amir ¿La salida ldd es la misma que en la descripción del problema? Probablemente tengas otro problema.
Dmitry
7

Primero verifique si este comando regresa 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, restablezca su perfil con:

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

Luego reiniciar.

Frantique
fuente
1
el primer comando devuelve 'verdadero' (junto con "usar el backend" memoria "). Con respecto a la eliminación de la configuración del usuario: ya intenté crear un perfil vacío y el problema persiste incluso con una cuenta de usuario vacía.
Dmitry
¿Tiene instalado dconf-gsettings-backend?
Frantique
Sí, dconf-gsettings-backend está instalado (y reinstalado varias veces).
Dmitry
Mencionaste un clic erróneo. ¿Dónde sucedió eso?
Frantique
1
Gracias por tu respuesta. Encontré la solución (publicado como respuesta)
Dmitry
2

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 GNOME durante un tiempo y luego cambiar a Unity para mostrarle a un amigo lo desagradable que parecía (IMO: D) y volver a GNOME. Entonces comencé a obtener el "... usando el backend de memoria ...".

Obra

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

Me lo arregló.

Gavin Ridley
fuente
1
Tenga en cuenta que esto borra toda la configuración de su escritorio.
moorepants
1

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

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

Este problema me estaba matando, pero me salvaste la vida, gracias: D

usuario410988
fuente
0

Asegúrese de tener el módulo que guarda (libdconfsettings.so en / usr / lib / x86_64-linux-gnu / gio / modules / o / usr / lib / gio / modules / o donde almacene sus módulos GIO). En Ubuntu, ese archivo es proporcionado por el paquete dconf-gsettings-backend; reinstalar eso debería ser suficiente ( sudo aptitude reinstall dconf-gsettings-backend).

RJVB
fuente
0

Esto funcionó para mí (y parece el mismo problema de Python Anaconda planteado por Dmitry).

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

(Estaba causando que no pudiera cambiar la configuración de gsett, particularmente la configuración de la impresora para Gedit).

Fuente:

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

Markling
fuente