Welche Beziehung besteht zwischen .gconf, .gnome2, .cache, .local und anderen Punktdatei-Hierarchien in meinem Ausgangsverzeichnis?

14

Entsprechend dieser Antwort werden .local .cacheund .configwerden gemäß Konvention Konfigurationsspeicherorte von Gnome und Ubuntu verwendet.

Sind .gnome .gnome2und .gconfdaher Legacy Konfiguration Verzeichnisse oder sollen sie koexistieren?
Und ändert die Übernahme von dconf diese Konventionen für die Konfiguration von Punktdateianwendungen?

In welchem ​​Verhältnis stehen die Dateneinstellungen von gconf-editor zu diesen Verzeichnissen? Enthält .gnome / .gconf dieselben Informationen, auf die der gconf-editor zugreift?

Updates: Auf XDG wurde als Grund für .cache, .local und .config hingewiesen.

Diese Frage zu dconf weist darauf hin, dass dconf der Ersatz für gconf sein wird, wie auf Gnome.org dokumentiert . Darüber hinaus sagt João , dass dconf das ist

GNOME-Technologie zum Speichern von Anwendungseinstellungen. [...] dconf ist der GNOME3-Ersatz für gconf, der seit einiger Zeit nicht mehr gepflegt wird. Von dconf wird auch eine Leistungsverbesserung gegenüber gconf erwartet (relevant für den Start von Anwendungen).

Ich gehe davon aus, dass es auf dieser Basis einen etwas anarchischen Migrationspfad von den gconf-Einstellungen zu dconf geben wird. Ich würde gerne weitere Perspektiven hören.

belacqua
quelle

Antworten:

16

.local, .cacheUnd .configist Teil der Freedesktop Basisverzeichnisses Spezifikation . Sie sollten nicht wirklich hart codiert sein , sondern die Umgebungsvariablen verwenden (dh $XDG_DATA_HOME, $XDG_CACHE_HOMEund $XDG_CONFIG_HOME). Es gibt GLib- und Python- Wrapper für die Spezifikation, die ebenfalls hilfreich sein können. Hier ist ein Beispiel in Python:

>>> import xdg.BaseDirectory
>>> print xdg.BaseDirectory.xdg_data_home
/home/andrew/.local/share
>>> print xdg.BaseDirectory.xdg_config_home
/home/andrew/.config
>>> print xdg.BaseDirectory.xdg_cache_home
/home/andrew/.cache

.gnomeund .gnome2sind in der Tat veraltet und sollten nicht verwendet werden. Diese wurden vom gnome-config-Modul von libgnome verwendet .

.gconfenthält in der Tat die Einstellungen, die gconf-editorals XML-Dateien zugreift. Vergleichen Sie beispielsweise die Ausgabe der folgenden Befehle:

gconftool -a /desktop/gnome/applications/browser

cat ~/.gconf/desktop/gnome/applications/browser/%gconf.xml
undetwas
quelle
Ich bin auf Ihre Antwort gestoßen, als ich versucht habe, das Konfigurationsverzeichnis in einer gtk-Anwendung zu finden. Für andere Programmierer, die nach mir kommen, gibt es einen gtk (glib) Wrapper, der XDG unter Linux verwendet und auch MS Windows handhabt. Spezifische Informationen hier: developer.gnome.org/glib/2.30/…
teambob
Du hast Recht. Ich war meist nur beschreibend in dieser Antwort und gab einem Programmierer keine praktischen Beispiele. Ich werde die Antwort aktualisieren, um ein wenig mehr Informationen für diejenigen hinzuzufügen, die darüber stolpern.
Andrewsomething
5

Die korrekte Formulierung sollte sein, dass .local, .cache usw. Teil der XDG Base Directory-Spezifikation von FreeDesktop sind, http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html .

Die XDG-Basisverzeichnisspezifikation ist ein Standard und wird von KDE und anderen kompatiblen Umgebungen gefolgt.

user4124
quelle
Was bedeutet es, konform zu sein? Gibt es ein Mandat, Apps mit einer anderen Spezifikation als der XDG zu konvertieren oder sie auf andere Weise von der Gnome / KDE-Basisinstallation auszuschließen? Wenn ja, wird das Mandat durchgesetzt? Werden nicht konforme Apps von Drittanbietern von jemandem markiert, oder wird die Existenz unterschiedlicher Konfigurationskonventionen / -verzeichnisse als gegeben vorausgesetzt, was so lange andauert, bis alle Ökosystementwickler freiwillig darauf verzichten? Ich habe KDE nicht installiert, aber die Basis von Ubuntu / Gnome für mein 10.10-System enthält die von Ihnen erwähnten XDG-Verzeichnisse. Vielleicht ist das freiwillige Einhaltung?
Belacqua
2
In den meisten Fällen handelt es sich um freiwillige Konformität. In der Vergangenheit wurde jedoch diskutiert, die XDG-Konformität in der Standardinstallation zu einem "Ziel" für alle Anwendungen zu machen.
Andrewsomething
1
Es ist freiwillige Konformität, aber Benutzer können (und viele tun dies) Fehlerberichte für nicht konforme Apps ausfüllen, indem sie aufgefordert werden, den Standard einzuhalten. Das Aufräumen des $ HOME-Ordners ist einer der größten Vorteile des XDG-Standards, sodass der Benutzerdruck bei älteren Apps normalerweise recht hoch ist.
MestreLion