dconfとは何ですか、その機能は何ですか、どのように使用しますか?


78

Mark Shuttleworth は最近 Jot Bacon からフォローアップで、11.10リリースにQtライブラリを含めるという決定についてブログを書きました。Markは、Qtで書かれたアプリをより大きなUbuntuシステムに統合するための最大の課題は、Qtの現在のdconfとの非互換性だと述べています。

dconfとは何ですか、またUbuntuで果たす役割は何ですか?


回答:


88

前書き

このサイト上の他の回答について議論したようgconfdconf一緒に、私は、コマンドラインのようなツールが議論に集中しますgsettingsと、GUI dconf-editorにアクセスするために使用されているdconfデータベースを。

で、GNOMEの公式サイトのことが注目されます

dconfは低レベルの構成システムです。その主な目的は、構成ストレージシステムをまだ持っていないプラットフォームでGSettingsにバックエンドを提供することです。

dconfは、単純なキーベースの構成システムです。キーは非構造化データベースに存在します(ただし、論理的に一緒に属するキーはグループ化されることを意図しています)。

すべてのキーを単一のコンパクトなバイナリ形式にすることで、tree-of-directories-of-xml-filesアプローチで現在発生している激しい断片化の問題も回避できます。

dconfは読み取り用に最適化されています。通常、dconfからキーを読み取るには、ゼロのシステムコールとゼロのコンテキストスイッチが必要です。書き込みはあまり最適化されていません。バスを通過し、通常の方法で「ライター」(DBusサービス)によって処理されます。

を使用gsettingsして設定を表示および変更する

ひとたびわかるgsettingsと、GUIと同じくらい簡単になりdconf-editorます。オプションはman gsettingsUbuntuのマンページをオンラインで入力または表示することで一覧表示できます

注:誰のシステムにもさまざまなプログラムがインストールされているため、XUbuntu XFceを非常に多くのGNOMEプログラムで使用しているため、自分で実験するときに、選択した特定の項目を別のものに置き換える必要があります。

使用可能なすべてのスキーマをリストするには、次を入力します

gsettings list-schemas

すべてのキーも含めるには、次を入力します

gsettings list-recursively

ただし、通常は、たとえば、

gsettings list-schemas | grep -i shotwell

これは長いリストを返します。私はそれを短くしました:

org.yorba.shotwell
org.yorba.shotwell.preferences.ui
org.yorba.shotwell.preferences.slideshow
org.yorba.shotwell.plugins.enable-state
org.yorba.shotwell.printing
org.yorba.shotwell.preferences.editing
org.yorba.shotwell.preferences.files

興味のあるスキーマが見つかったら、キーをリストします

gsettings list-keys org.yorba.shotwell.preferences.ui

これによりリストが返されます(再び短縮しました)。

background-color
display-basic-properties
display-extended-properties
display-photo-ratings
display-photo-tags
display-photo-titles
event-photos-sort-ascending
event-photos-sort-by

いずれかを選択して、現在の値が何であるかを確認します

gsettings get org.yorba.shotwell.preferences.ui display-photo-tags

これは値trueを返すので、それを逆にするには、

gsettings set org.yorba.shotwell.preferences.ui display-photo-tags false

これらは簡単な例ですが、基本的にキーと値がどのように識別され変更されるかを示していますgsettings

dconf-editorを使用して設定を変更する

GUIプログラムは、ここをクリックするdconf-editor次のコマンド実行して、dconf-toolsパッケージとともにインストールされます。

sudo apt-get install dconf-tools

次に、ターミナルまたはクイック起動メニューに入力して実行しますdconf-editor

スクリーンショットを見るとわかるように、左側ですべてのさまざまなスキーマを展開し、適切なキーを選択できます。必要な値(この場合はgnome-mplayer設定)に移動するのは非常に簡単です。チェックボックスをクリックして、値をアクティブにするか、他のボックスのいずれかに数値を追加できます。Ctrl+ Fキーボードショートカットでdconfエディター内を検索することもできます。

ここに画像の説明を入力してください

log-viewer次のスクリーンショットに['/var/log/auth.log'、var .... ']の形式でパスを追加して、別のログを追加することもできます。

ここに画像の説明を入力してください

結論

両方gsettingsで設定を微調整できる便利な方法は他にもたくさんありdconf-editor、それらは簡単に使用できます。プログラムを好みに合わせてカスタマイズできるため、プログラムの設定にないオプションがあるかどうかを確認する価値があります。fossfreedomが最近この質問で示したように

使用方法を知っているgsettingsか、dconf-editor非常に貴重です。こちらもご覧ください:


5
プログラムgsettingsとデータベースのdconf-editor両方で動作するdconfため、同じ情報が表示されないのはなぜですか?gsetting12.04には、スキーマcom.canonical.Unity.Launcherとキーの値が表示されていますfavoritesが、完全なスキーマまたはキーdconf-editorはもちろん提供com.canonical.Unityされていません。
AH

@AH:いい質問です。ここで質問しました:askubuntu.com/q/243409/2355
Flimm

@AHあなたのコメントに回答し忘れて申し訳ありません。Xubuntuに参加しているためUnityにコメントできませんが、Flimmはいくつかの良い回答を得るために別の質問をしました。

4
しかし、一体何がdconfをGUIツールキットであるQtと互換性がないのでしょうか?
サルマンフォンアッバス14

RHEL / CentOSではyum install dconf-editor、GUIツールのインストールに使用します。
マークエディントン

26

単純な応答を必要とするWindowsからのユーザーの場合、dconfはWindowsレジストリに相当するgnomeです。つまり、任意のプログラムが構成を保存および共有できる大きなバイナリツリーです。

最初に、従来のUNIX構成(アプリごとに1つのテキストファイル、それぞれ独自の形式)からgconfによって管理されるXMLファイルの標準ツリーに移行しました。最近では、これらのXMLファイルを直接編集する人はほとんどいないため、多くのファイルの読み取りと解析のパフォーマンスの問題が発生したため、gconfからdconfに移行することでバイナリ形式に移行しました。

Windowsレジストリとは異なり、dconfには、デフォルト値に設定されている場合でも、すべての構成エントリがリストされている必要があります。そのため、非表示のエントリはありません。その後、変更したり、デフォルトに簡単にリセットしたりできます。


10

dconfはUbuntu固有のものではなく、アプリケーション設定の保存に使用されるGNOMEテクノロジーです。詳細については、http://live.gnome.org/dconfをご覧 ください。


dconfとgconfの関係は何ですか?
プソイ

10
dconfはgconfのGNOME3の代替品であり、しばらくの間メンテナンスされていません。dconfは、gconf(アプリケーションの起動に関連)よりもパフォーマンスが向上することも期待されています。
ジョアンピント

1
質問psusiのコメントは、上記の部分的質問『への回答で答えているのはなぜdconfとはgconf?についての論争』。質問にコメントしたことで、psusiはそれを認識していると思いますが、他の誰かがもっと知りたい場合は、それがあります。
ファイアフェザー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.