Gconf、Dconf、Gsettings以及它们之间的关系

idg*_*gar 85 gconf gsettings dconf

我试图了解 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 在哪里保存它的数据?

Fli*_*imm 58

Dconf是一个专为存储配置而设计的数据存储。它是用于相同目的的Gconf的替代品。最终,没有程序应该再依赖于 Gconf。

Gsettings是一个用于读写配置存储后端的开发库。在 Linux 上,它使用 Dconf,但在 Windows 上,它使用注册表,而在 OS X 上,它使用本机数据存储。

建议应用程序开发人员和最终用户使用 Gsettings,而不是直接使用 Dconf。

也可以看看:


dob*_*bey 45

GConf 已过时。它是较旧的 GNOME 2.x 配置 API 和系统,在较新版本中已被 DConf/GSettings 取代。但是,某些应用程序仍在使用它。

GSettings 是 DConf 的 GLib 实现,它将其数据存储在二进制数据库中。

gsettings命令行工具是一个简单的工具,通过GSettings API访问或修改设置,以同样的方式,旧的gconftool命令行工具是GConf信息。

  • 不,GSettings 是 DConf 规范的实现。命令行工具不适用于 gconf。但是,目前在 Ubuntu 上使用了一些兼容层,其中更改 gsettings 或 gconf 中的设置将导致更改传播到另一个。但这并不常见,也不是可以依赖的东西。 (3认同)
  • 有趣的是,哪些设置由哪个工具管理?使用 dconf 或 dconf-editor 时出现的键与通过 gsettings 访问的键不同,例如,可以通过 dconf 访问键 /com/canonical/unity/always-show-menus 但没有通过 gsettings 访问的等效键在 Ubuntu 15.04 中。 (2认同)