Gconf、Dconf、Gsettingsおよびそれらの関係


65

Gconf、Dconf、Gsettingsの仕組みと、それらの関係を理解し​​ようとしています。

私が知っているのは:

  • Gconf -XMLベースのデータベース(バックエンドシステム)。古いもの。
  • Dconf -BLOBベースのデータベース(バックエンドシステム)。新しいもの。
  • Gsettings-設定を編集するCLIツール。Dconfでのみ動作するように見えます(ただし、Gconfで動作する可能性があることはどこかで見ました)。

GconfにはGUI-Gconf-editorがあり、Dconfには-Dconf-editorがあることを知っています。

そう:

  1. どのバックエンドシステムがより頻繁に使用されますか-DconfまたはGconf?
  2. Gsettingsはそれらの両方で動作しますか?そして、なぜすべてのDconfスキーマが表示されないのですか?
  3. Dconfはデータをどこに保存しますか?

私は、どの設定がどのツール(dconfまたはgsettings)によって処理されるかに特に興味があり、なぜ違いがあるのでしょうか?
ヨズム

回答:


39

GConfは廃止されました。これは古いGNOME 2.x構成APIおよびシステムであり、新しいバージョンではDConf / GSettingsに置き換えられました。ただし、一部のアプリケーションではまだ使用されています。

GSettingsは、DConfのGLib実装であり、バイナリデータベースにデータを保存します。

gsettingsコマンドラインツールは、単に古いのと同じように、GSettings APIを介して設定にアクセスまたは変更するためのツールであるgconftoolコマンドラインツールは、GConfのためのものです。


1
GSettingsはGConfでも動作しますか?
idgar

3
いいえ、GSettingsはDConf仕様の実装です。コマンドラインツールは、gconfでは機能しません。ただし、Ubuntuで現在使用されている互換性レイヤーがいくつかあり、gsettingsまたはgconfの設定を変更すると、変更が他のレイヤーに反映されます。ただし、これは一般的ではなく、依存するものでもありません。
ドビー

もう1つ、GSettingsが構成ファイルで機能することをどこかで見ました。それについて何かありますか?そして、なぜGSettingsはDConf-editorと同じスキーマを表示しないのですか?
idgar

1
知っておくべき興味深い部分は、どの設定がどのツールによって管理されているのでしょうか?dconfまたはdconf-editorを使用するときに存在するキーは、gsettingsでアクセスできるキーとは異なります。たとえば、dconfでアクセスできるキー/ com / canonical / unity / always-show-menusがありますが、gsettingsでアクセスできる同等のキーはありませんUbuntu 15.04で。
ヨズム

1
@dobey:これを手伝ってくれてありがとう。しかし、私が本当に望んでいるのは、dconfで使用しなければならないキーとgsettingsで使用しなければならないキーの間のマッピングはどのように機能するのかということです。一方を知っている場合、もう一方を見つけるアルゴリズム的な方法はありますか?私の具体的なケースでは、/ com / canonical / unity / always-show-menusが与えられました-gsettingsの適切なキーをどのように見つけるのでしょうか?両方が同じ基礎データを使用する場合、論理マッピングはありませんか?それとも私はまだ何かが足りないのですか?
ヨズム

43

Dconfは、構成を保存するために設計されたデータストアです。同じ目的で使用されたGconfの代替品です。最終的には、Gconfに依存するプログラムはもうありません。

Gsettingsは、構成ストアバックエンドの読み取りと書き込みに使用される開発ライブラリです。LinuxではDconfを使用しますが、Windowsではレジストリを使用し、OS Xではネイティブデータストアを使用します。

アプリケーション開発者とエンドユーザーは、Dconfを直接使用するのではなく、Gsettingsを使用することをお勧めします。

こちらもご覧ください:

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.