dconf/gsettings のインストールが壊れています。Ubuntu を再インストールせずに修正するにはどうすればよいですか?

dconf/gsettings のインストールが壊れています。Ubuntu を再インストールせずに修正するにはどうすればよいですか?

私はVirtualBoxでUbuntu 12.04.1 LTS x64を実行しています。非常に残念なミスクリック(保存された状態をロードするのではなく、保存された状態をリセットする)の後、非常に厄介な問題が発生しました。

ほぼすべてのアプリケーション (Unity、Synaptic、Gedit など) は起動時に印刷します。

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

再起動後、すべての GUI 設定がリセットされます。

もう一つの症状:

$ 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

しかし/usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so存在します。


私が試したこと(そして役に立たなかったこと):

  • sudo apt-get install -f --reinstall dconf-tools libdconf0 libdconf-dbus-1-0 dconf-service
  • ソースからdconf-0.5をビルドしmake install
  • 空のユーザープロファイルを作成し、そこでプログラムを起動する

現在の Ubuntu インストールを維持する必要があるため、完全な再インストールは選択肢になりません。

どうすれば修正できますか?

答え1

PATHこれは、Anaconda などの Python 環境マネージャーと競合している場合にも発生する可能性があります。

深くなりすぎる前に必ず実行してくださいwhich gsettings。それが印刷されず/usr/bin/gsettings、代わりに次のようなものが表示される場合は、次のような/home/{username}/anaconda3/bin/gsettingsものがある可能性があります。 .profile.bashrc.zshrc

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

次のように変更します:
export PATH=$PATH:$HOME/anaconda3/bin

アプリ終了の代わりにを変数の先頭に追加することでPATH問題は解決しますが、システム内binまたは他のPATH場所にある内容が に優先されることに注意してくださいanaconda3/bin

別のオプションとしては、エイリアスを使用することです/usr/bin/gsettings

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

答え2

/usr/local/lib解決策を見つけました。から「シャドウ」されたシステム ライブラリ内に、カスタムビルドされたライブラリがいくつかあったようです/usr/lib/x86_64-linux-gnu/

私は、以下によってロードされた動的ライブラリをチェックすることでこれを発見しましたlibdconfsettings.so:

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

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

これは、動的ライブラリ ( で定義) の検索パスの順序が原因で発生しました/etc/ld.so.conf.d/。順序は次のとおりです。

  1. lib/i386-linux-gnu のライブラリ
  2. lib/i386-linux-gnu のディレクトリ
  3. lib/i686-linux-gnu のライブラリ
  4. libi686-linux-gnu のディレクトリ
  5. ローカル
  6. /lib/x86_64-linux-gnu
  7. /usr/lib/x86_64-linux-gnu

したがって、たとえば に独自のものを配置すると、libc.soのデフォルト/usr/local/libではなく が読み込まれます。libc.so/lib/x86_64-linux-gnu

修正方法:

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

答え3

まず、このコマンドが以下を返すかどうかを確認しますtrue:

gsettings writable com.canonical.Unity.Launcher favorites

そうでない場合は、次のコマンドでバックエンドをインストールします。

sudo apt-get install dconf-gsettings-backend 

それでも問題が解決しない場合は、次の方法でプロファイルをリセットしてください。

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

その後再起動します。

答え4

私は Debian Jessie でも同じことを経験しました。しかし、質問者の解決策 (彼はそれで失敗しました) は私のケースには適切でした:

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

この問題は私を苦しめていましたが、あなたは私の命を救ってくれました。ありがとう :D

関連情報