VirtualBoxでUbuntu 12.04.1 LTS x64を実行しています。非常に不幸なミスクリック(保存された状態をロードする代わりに保存された状態をリセットする)の後、非常に厄介な問題が発生しました。
ほぼすべてのアプリケーション(ユニティ、シナプス、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
make install
it現在のUbuntuのインストールを維持する必要があるため、完全な再インストールは選択肢ではありません。
どうすれば修正できますか?
私は解決策を見つけました。 /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/
で定義)。順序は次のとおりです。
たとえば、独自の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
これは、AnacondaのようなPython環境マネージャーとPATH
の競合がある場合にも発生する可能性があります。
深くなりすぎる前に、必ずwhich gsettings
を実行してください。 /usr/bin/gsettings
が表示されず、代わりに/home/{username}/anaconda3/bin/gsettings
のようなものが表示されない場合は、おそらく.profile
のようなものがあります。
export PATH=$HOME/anaconda3/bin:$PATH
次のように変更します。export PATH=$PATH:$HOME/anaconda3/bin
Appの代わりに終了prePATH
変数にペンディングすると問題が解決しますが、システム内の何かbin
、または他のPATH
場所は、anaconda3/bin
に優先します。
別のオプションは、/usr/bin/gsettings
をエイリアスすることです。
alias sys-gsettings=/usr/bin/gsettings
sys-gsettings get org.gnome.todo view
最初に、このコマンドがtrue
を返すかどうかを確認します。
gsettings writable com.canonical.Unity.Launcher favorites
そうでない場合は、次を使用してバックエンドをインストールします。
Sudo apt-get install dconf-gsettings-backend
これでも解決しない場合は、次を使用してプロファイルをリセットします。
rm -rf ~/.gnome ~/.gnome2 ~/.gconf ~/.gconfd ~/.metacity .config/dconf/*
その後、再起動します。
Ubuntu 16.10でこれに関する個人的な経験を追加したかっただけです。私はしばらくGNOMEデスクトップ環境を使用して動作を停止し、Unityに切り替えて、友人に見た目がいかに悪いか(IMO:D)を表示し、GNOMEに戻りました。その後、「...メモリバックエンドを使用...」の取得を開始しました。
やること
rm -rf ~/.gnome ~/.gnome2 ~/.gconf ~/.gconfd ~/.metacity .config/dconf/*
Sudo ldconfig
Sudo reboot
私のためにそれを修正しました。
Debian Jessieでも同じことを経験しました。しかし、質問者の解決策(彼はそれで失敗しました)は私の場合には適切でした:
Sudo apt-get install -f --reinstall dconf-tools libdconf0 libdconf-dbus-1-0 dconf-service
この問題は私を殺していたが、あなたは私の命を救った、ありがとう:D
これは私にとってはうまくいきました(そして、Dmitryが提起したPython Anacondaの問題と同じように見えます)。
$ export GIO_EXTRA_MODULES=/usr/lib/x86_64-linux-gnu/gio/modules/
(これにより、gsettings-特にGeditのプリンター設定を変更できなくなりました。)
ソース:
保存するモジュールがあることを確認してください(/ usr/lib/x86_64-linux-gnu/gio/modules /または/ usr/lib/gio/modules /のlibdconfsettings.soまたはGIOモジュールを保存する場所)。 Ubuntuでは、このファイルはdconf-gsettings-backendパッケージによって提供されます。再インストールすれば十分です(Sudo aptitude reinstall dconf-gsettings-backend
)。