Gconf, Dconf, Gsettings i relacje między nimi


65

Próbuję zrozumieć, jak działają Gconf, Dconf i Gsettings i jaki jest związek między nimi.

Wiem tylko:

  • Gconf - baza danych oparta na XML (system backend). Starszy.
  • Dconf - baza danych oparta na BLOB (system backend). Nowszy.
  • Gsettings - narzędzie CLI do edycji ustawień. Wygląda na to, że działa tylko z Dconfem (chociaż widziałem gdzieś, że może współpracować z Gconfem).

Wiem, że dla Gconf istnieje GUI - edytor Gconf, a dla Dconf - edytor Dconf.

Więc:

  1. Który system zaplecza jest częściej używany - Dconf lub Gconf?
  2. Gsettings współpracuje z oboma? I dlaczego nie pokazuje wszystkich schematów Dconf?
  3. Gdzie Dconf zapisuje swoje dane?

Byłbym szczególnie zainteresowany, jakie ustawienia są obsługiwane przez które narzędzie (dconf lub gsettings) i dlaczego występują różnice?
Johsm

Odpowiedzi:


38

GConf jest przestarzały. Jest to starszy interfejs API i system konfiguracji GNOME 2.xi został zastąpiony przez DConf / GSettings w nowszych wersjach. Jednak niektóre aplikacje nadal go używają.

GSettings to implementacja GLon DConf, która przechowuje swoje dane w binarnej bazie danych.

gsettingsNarzędzie linii poleceń jest po prostu narzędziem, aby uzyskać dostęp lub modyfikowania ustawień za pośrednictwem interfejsu API GSettings, w taki sam sposób, że starsze gconftoolnarzędzie wiersza polecenia jest dla GConf.


1
Czy GSettings współpracuje również z GConf?
idgar

3
Nie, GSettings to implementacja specyfikacji DConf. Narzędzie wiersza poleceń nie działa z gconf. Istnieją jednak pewne warstwy zgodności obecnie używane w Ubuntu, gdzie zmiana ustawienia w gsettings lub gconf spowoduje, że zmiana zostanie przeniesiona na drugą. Nie jest to jednak powszechne i nie można na nim polegać.
dobey

Inną rzeczą, widziałem gdzieś, że GSettings działa z plikami konfiguracyjnymi. czy coś w tym jest? i dlaczego GSettings nie wyświetla tych samych schematów co edytor DConf?
idgar

1
Interesującą częścią byłoby wiedzieć, które ustawienia są zarządzane przez które narzędzie? Klucze, które są obecne podczas korzystania z dconf lub edytora dconf, różnią się od klawiszy dostępnych w ustawieniach gset, na przykład menu klucza / com / canonical / unity / always-show dostępne za pośrednictwem dconf, ale nie ma równoważnego klucza dostępnego za pomocą gsettings w Ubuntu 15.04.
Johsm

1
@dobey: dziękuję za pomoc w tym. Tak naprawdę to po co: jak działa mapowanie między kluczem, którego muszę użyć w dconf, a kluczem, którego muszę użyć w ustawieniach? Jeśli znam jedno, czy istnieje algorytmiczny sposób na znalezienie drugiego? W moim konkretnym przypadku otrzymałem / com / canonical / unity / always-show-menu - teraz jak znaleźć odpowiedni klucz do ustawień? Jeśli oba wykorzystują te same dane podstawowe, czy nie powinno być logicznego mapowania? A może wciąż czegoś brakuje?
Johsm

43

Dconf to magazyn danych przeznaczony do przechowywania konfiguracji. Jest to zamiennik Gconf , który został użyty w tym samym celu. W końcu żaden program nie powinien już zależeć od Gconf.

Gsettings to biblioteka programistyczna służąca do odczytu i zapisu do zaplecza sklepu konfiguracji. W systemie Linux używa Dconf, ale w systemie Windows korzysta z rejestru, a w systemie OS X używa macierzystego magazynu danych.

Zaleca się, aby twórcy aplikacji i użytkownicy końcowi korzystali z Gsettings, a nie bezpośrednio z Dconf.

Zobacz też:

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.