2012年7月26日木曜日

(GNOME) dconfとgconf

GNOMEは、内部の仕組みなどぜんぜん理解せずに使ってますが…



とあるアプリケーションが、間違ったプロキシーサーバの設定で動いていて、どういうことだ?と思って、GDBでステップ実行しながら調査。



間違ったプロキシーサーバ設定っていうのは、実は昔の設定でして、現在は変更したのに、なぜかそのアプリケーションだけ、昔の設定を使っている、ということで、いったいどこからその設定をひっぱりだしているんだろう? という状況。



で、わかりました。普通、GNOME環境で設定するプロキシーサーバの情報は、gconfの方に格納されるらしいのですが、なぜか、そのおかしな挙動をしめすアプリケーションは、dconfの方から、プロキシーサーバの設定をもってきていました。



う~ん、dconf、gconf、よくわかっていませんが[E:coldsweats01]



dconf-editorを実行すると、こんな感じでした。



Dconf



一方、gconf-editorはこんな感じ。両者の内容は、まったくの別物。





Gconf



というわけで、dconf-editorで、古い設定を直してやればいいのかと思ったけど、なぜか、編集できない。editorと名前がついているのに、編集できない。どういうことだ[E:coldsweats01]





gsettingsというコマンドがあって、こいつを使うと、変更できることがわかった。実際には、$HOME/.config/dconf/user にアクセスしているらしい。



値を見るにはgetを使う

% gsettings get org.gnome.system.proxy.http host
'proxy.example.co.jp'

値を消すにはreset。消すのではなく、デフォルト値に戻すだけかもしれない。



% gsettings reset org.gnome.system.proxy.http host

どんなキーがあるか知りたいときは、list-keysだった。

% gsettings list-keys org.gnome.system.proxy.http
authentication-password
authentication-user
enabled
host
port
use-authentication





ちなみに、gconfの場合は、gconftool-2というコマンドが用意されていることがわかった。こんな感じ。



% gconftool-2 -g /system/http_proxy/host
proxy.example.com





 



0 件のコメント:

コメントを投稿