Minha instalação do dconf / gsettings está quebrada. Como posso corrigi-lo sem reinstalar o Ubuntu?

14

Eu rodei o Ubuntu 12.04.1 LTS x64 no VirtualBox. Depois de um misclick muito infeliz (redefinir estado salvo em vez de carregar estado salvo) eu tenho um problema muito chato.

Quase todas as aplicações (unidade, synaptic, gedit, etc.) são impressas no início:

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

E todas as configurações da GUI são redefinidas após a reinicialização.

Outro sintoma:

$ 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

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

O que eu tentei (e não ajudou):

  • sudo apt-get install -f --reinstall dconf-tools libdconf0 libdconf-dbus-1-0 dconf-service
  • Construa o dconf-0.5 a partir de fontes e make install it
  • Crie um perfil de usuário vazio e inicie programas lá

Eu tenho que manter a instalação atual do Ubuntu para que uma reinstalação completa não seja uma opção para mim.

Como posso corrigir isso?

    
por Dmitry 09.12.2014 / 15:42

5 respostas

11

Eu encontrei a solução. Parece que tenho várias bibliotecas personalizadas em /usr/local/lib que "sombrearam" as bibliotecas do sistema em /usr/lib/x86_64-linux-gnu/ .

Eu descobri isso verificando bibliotecas dinâmicas carregadas por libdconfsettings.so :

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

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

Isso aconteceu por causa da ordem dos caminhos de pesquisa para bibliotecas dinâmicas (definidas em /etc/ld.so.conf.d/ ). A ordem foi a seguinte:

  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

Portanto, se, por exemplo, você colocar seu próprio libc.so em /usr/local/lib , ele será carregado em vez do padrão libc.so de /lib/x86_64-linux-gnu .

A correção:

sudo mv /etc/ld.so.conf.d/libc.conf /etc/ld.so.conf.d/xuserlocal.conf
sudo ldconfig
sudo reboot
    
por Dmitry 09.12.2014 / 16:33
5

Primeiro, verifique se esse comando retorna true :

gsettings writable com.canonical.Unity.Launcher favorites

Se não, instale o backend com:

sudo apt-get install dconf-gsettings-backend 

Se isso não ajudar, redefina seu perfil com:

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

Depois, reinicie.

    
por Frantique 09.12.2014 / 15:53
3

Isso também pode acontecer se você definir seu PATH incorretamente (como eu fiz) com um gerenciador de ambientes Python como o Anaconda.

Certifique-se de executar which gsettings antes de ficar muito profundo. Se isso não imprimir /usr/bin/gsettings e, em vez disso, algo como /home/{username}/anaconda3/bin/gsettings , você provavelmente terá algo como .profile :

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

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

Sempre certifique-se de que app termine em vez de pre em relação à variável PATH .

    
por Austin Cawley-Edwards 19.02.2018 / 23:56
1

Só queria adicionar minha experiência pessoal sobre isso com o ubuntu 16.10. O meu parou de funcionar depois de usar o ambiente de trabalho GNOME por um tempo, e depois mudou para o Unity para mostrar a um amigo o quão desagradável ele era (IMO: D) e de volta ao GNOME. Comecei então a obter o "... usando back-end de memória ...".

Fazendo

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

Corrigido para mim.

    
por Gavin Ridley 16.12.2016 / 19:06
1

Eu experimentei a mesma coisa no Debian Jessie. Mas a solução do questionador (ele falhou com isso) foi apropriada para o meu caso:

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

Esse problema estava me matando, mas você salvou minha vida, obrigado: D

    
por user410988 17.05.2015 / 15:51