My dconf/gsettings installation is broken. How can I fix it without Ubuntu reinstall?

32,210

Solution 1

I've found the solution. It appears that I got several custom-built libraries in /usr/local/lib that "shadowed" system libraries from /usr/lib/x86_64-linux-gnu/.

I discovered it by checking dynamic libraries loaded by libdconfsettings.so:

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

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

It happened because of the order of search paths for dynamic libraries (defined in /etc/ld.so.conf.d/). The order was the following:

  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

So if for example you put your own libc.so into /usr/local/lib it will be loaded instead of default libc.so from /lib/x86_64-linux-gnu.

The fix:

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

Solution 2

This can also happen if you have PATH conflicts with a Python enviroment manager like Anaconda.

Make sure to run which gsettings before getting too deep. If that doesn't print /usr/bin/gsettings and instead something like /home/{username}/anaconda3/bin/gsettings you probably have something .profile/.bashrc/.zshrc like:

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

Change it to:
export PATH=$PATH:$HOME/anaconda3/bin

Appending instead of preprending to the PATH variable will solve your issue, but be aware that anything in your system bin, or other PATH locations, will supersede your anaconda3/bin.

Another option would be to alias /usr/bin/gsettings:

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

Solution 3

First check if this command returns true:

gsettings writable com.canonical.Unity.Launcher favorites

If not, install the backend with:

sudo apt-get install dconf-gsettings-backend 

If this doesn't help either, reset your profile with:

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

Afterwards reboot.

Solution 4

Just wanted to add my personal experience on this with ubuntu 16.10. Mine stopped working after using GNOME desktop environment for a while, and then switching to Unity to show a friend how nasty it looked (IMO :D), and back to GNOME. I then started getting the "...using memory backend...".

Doing

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

Fixed it for me.

Solution 5

I experienced same thing in Debian Jessie. But questioner's solution (he had failed with it) was proper for my case:

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

This problem had been killing me, but you saved my life, Thanks :D

Share:
32,210

Related videos on Youtube

Dmitry
Author by

Dmitry

Updated on September 18, 2022

Comments

  • Dmitry
    Dmitry over 1 year

    I run Ubuntu 12.04.1 LTS x64 in VirtualBox. After one very unfortunate misclick (reset saved state instead of load saved state) I got a very annoying problem.

    Almost all applications (unity, synaptic, gedit, etc.) print on start:

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

    And all GUI settings reset after reboot.

    Another 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
    

    But /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so is present.


    What I tried (and it didn't help):

    • sudo apt-get install -f --reinstall dconf-tools libdconf0 libdconf-dbus-1-0 dconf-service
    • Build dconf-0.5 from sources and make install it
    • Create empty user profile and start programs there

    I have to keep current Ubuntu installation so a complete reinstall is not an option for me.

    How can I fix it?

    • panna
      panna over 6 years
      I encountered the same GLib-GIO-Message when trying to use gsettings to set the Launcher position. I searched thru the forum's posts and tried the suggestions here including resetting dynamic linker configuration using ldconfig. However, all could not fix the problem. Then Dmitry's post got me thinking to use ldd to check 'gsettings' shared object dependencies, which caused me to find out the executable I was using came from that in Anaconda's installation. By using the version in /usr/bin resolved the issue.
  • m. öztürk
    m. öztürk over 9 years
    Do you have the dconf-gsettings-backend installed?
  • Dmitry
    Dmitry over 9 years
    Yes, dconf-gsettings-backend is installed (and reinstalled several times).
  • m. öztürk
    m. öztürk over 9 years
    You mentioned a misclick. Where happened that?
  • m. öztürk
    m. öztürk over 9 years
    Also check if dconf-service is running (ps faux | grep dconf-service)
  • Dmitry
    Dmitry over 9 years
    Thanks for your answer. I found the solution (posted as an answer)
  • m. öztürk
    m. öztürk over 9 years
    Ok, I thought that I am getting old, and I cannot solve such a simple problem... :D :D :D
  • mxmlnkn
    mxmlnkn about 8 years
    Thanks, I also had this problem, because I tried to develop a patch for glib and executed sudo make install. sudo make uninstall solved the problem by removing those libraries at /usr/local/lib/
  • 111
    111 over 7 years
    +1. Really solved a similar problem came up after installation of Glib2.
  • RyanNerd
    RyanNerd almost 7 years
    Linux Mint kept going back to default settings and not respecting any changes I made and double checked in dconf-editor. Turned out that I had built glib from source and sudo make install which I had no idea would not let me change my background or clock, or other cinnamon settings. Was driving me nuts. Back link: forums.linuxmint.com/viewtopic.php?t=244360&start=20
  • moorepants
    moorepants almost 7 years
    Note that this wipes all of the configuration for your desktop.
  • Amir
    Amir almost 7 years
    i get this error! mv: cannot stat '/etc/ld.so.conf.d/libc.conf': No such file or directory and i do not have any libraries in my /usr/loca/lib except the python environments i have on Anaconda. but the whole problem started when i installed a new package. and it does not happen when i run my code on jupyter-notebook instead of IDE!
  • Dmitry
    Dmitry almost 7 years
    @Amir Does ldd output is the same as in issue description? Probably you have another issue.
  • flyingdrifter
    flyingdrifter over 6 years
    @mxmlnkn you should post your answer as the correct answer as that worked for me and was quite simple. If you could explain what happened when I did a sudo make install of the most current glib library why it messed everything up?...
  • Mad Physicist
    Mad Physicist almost 6 years
    The first part (running which) is excellent advice. The second part, not so much. You generally want your environment to run using its own setup. A better, or at least alternative, solution might be to explicitly run /usr/bin/gsettings instead of messing with PATH.
  • austin_ce
    austin_ce almost 6 years
    Yup, totally agree with you! I think overall, you should generally be aware of how the PATH is source/applied.
  • rasul
    rasul over 5 years
    It solved my problem in Ubuntu 18.04 very nice answer +1
  • austin_ce
    austin_ce over 5 years
    Since this is getting some traction, I think another good way might be to keep anaconda out of your path if you are having conflicts and run commands with python -m [command] [...args] instead.
  • Barun
    Barun about 5 years
    I had to update this in my .bashrc as well (.profile).