Gconf, Dconf, Gsettings e la relazione tra loro


65

Sto cercando di capire come funzionano Gconf, Dconf e Gsettings e qual è la relazione tra loro.

Tutto quello che so è:

  • Gconf - Database basato su XML (sistema back-end). Il più vecchio.
  • Dconf : database basato su BLOB (sistema back-end). Il più nuovo.
  • Gsettings - Strumento CLI per modificare le impostazioni. Sembra che funzioni solo con Dconf (anche se ho visto da qualche parte che potrebbe funzionare con Gconf).

So che per Gconf esiste una GUI - Gconf-editor e per Dconf - Dconf-editor.

Così:

  1. Quale sistema di back-end viene utilizzato più spesso: Dconf o Gconf?
  2. Gsettings funziona con entrambi? E perché non mostra tutti gli schemi Dconf?
  3. Dove Dconf salva i suoi dati?

Sarei particolarmente interessato a quali impostazioni sono gestite da quale strumento (dconf o gsettings) e perché ci sono differenze?
Johsm,

Risposte:


39

GConf è obsoleto. È l'API e il sistema di configurazione GNOME 2.x precedenti ed è stato sostituito da DConf / GSettings nelle versioni più recenti. Tuttavia, alcune applicazioni lo usano ancora.

GSettings è un'implementazione GLib di DConf, che archivia i suoi dati in un database binario.

Lo gsettingsstrumento da riga di comando è semplicemente uno strumento per accedere o modificare le impostazioni tramite l'API GSettings, allo stesso modo in cui lo gconftoolstrumento da riga di comando precedente è per GConf.


1
GSettings funziona anche con GConf?
idgar

3
No, GSettings è un'implementazione delle specifiche DConf. Lo strumento da riga di comando non funziona con gconf. Esistono tuttavia alcuni livelli di compatibilità attualmente in uso su Ubuntu, in cui la modifica di un'impostazione in gsettings o gconf comporterà la propagazione della modifica all'altra. Questo non è comune, e non è qualcosa su cui fare affidamento.
Dobey

un'altra cosa, ho visto da qualche parte che GSettings funziona con i file di configurazione. c'è qualcosa al riguardo? e perché GSettings non mostra gli stessi schemi di DConf-editor?
idgar,

1
La parte interessante da sapere sarebbe quali impostazioni sono gestite da quale strumento? Le chiavi presenti quando si usa dconf o dconf-editor sono diverse da quelle accessibili con gsettings, ad esempio c'è una chiave / com / canonical / unity / always-show-menu accessibile tramite dconf ma non esiste una chiave equivalente accessibile tramite gsettings in Ubuntu 15.04.
Johsm,

1
@dobey: grazie per l'aiuto in questo. Quello che sto veramente cercando è però: come funziona la mappatura tra la chiave che devo usare in dconf e la chiave che devo usare con gsettings? Se ne conosco uno, esiste un modo algoritmico per trovare l'altro? Nel mio caso concreto mi è stato dato / com / canonical / unity / always-show-menu - ora come troverei la chiave appropriata per gsettings? Se entrambi utilizzano gli stessi dati sottostanti, non dovrebbe esserci una mappatura logica? O mi manca ancora qualcosa?
Johsm,

43

Dconf è un archivio dati progettato per l'archiviazione della configurazione. È il sostituto di Gconf , utilizzato per lo stesso scopo. Alla fine, nessun programma dovrebbe dipendere più da Gconf.

Gsettings è una libreria di sviluppo utilizzata per leggere e scrivere in un back-end dell'archivio di configurazione. Su Linux, utilizza Dconf, ma su Windows utilizza il registro e su OS X utilizza un archivio di dati nativo.

Si consiglia agli sviluppatori di applicazioni e agli utenti finali di utilizzare Gsettings, non Dconf direttamente.

Guarda anche:

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.