Quelle est la relation entre .gconf, .gnome2, .cache, .local et d'autres hiérarchies de fichiers à points dans mon répertoire personnel?


14

Selon cette réponse , .local .cacheet .configsont, par convention, des emplacements de stockage de configuration adoptés par Gnome et Ubuntu.

Sont .gnome .gnome2et .gconfdonc des répertoires de configuration existants, ou sont - ils censés coexister?
Et l'adoption de dconf modifie-t-elle ces conventions de configuration des applications point-file?

Enfin, quelle est la relation entre les paramètres de données de gconf-editor et ces répertoires? Les fichiers .gnome / .gconf contiennent-ils les mêmes informations auxquelles accède l'éditeur gconf?

Mises à jour: XDG a été désigné comme la raison de .cache, .local et .config.

Cette question sur dconf indique que dconf sera le remplacement de gconf, comme documenté sur Gnome.org . En outre, João dit que dconf est le

Technologie GNOME utilisée pour stocker les paramètres d'application. [...] dconf est le remplacement GNOME3 de gconf qui n'a pas été maintenu depuis un certain temps. dconf devrait également apporter des améliorations de performances par rapport à gconf (pertinent pour le démarrage des applications).

Je m'attends à ce qu'il y ait un chemin de migration quelque peu anarchique des paramètres gconf vers dconf. J'aimerais entendre des perspectives supplémentaires.

Réponses:


16

.local, .cacheEt .configfont partie de la FreeDesktop base Spécification d' annuaire . Ils ne devraient pas en fait être codés en dur mais utiliser à la place les variables d'environnement (c'est $XDG_DATA_HOME-à- dire $XDG_CACHE_HOME, et $XDG_CONFIG_HOME). Il existe des wrappers GLib et Python pour la spécification qui peuvent également être utiles. Voici un exemple en 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

.gnomeet .gnome2sont en effet obsolètes et ne doivent pas être utilisés. Ceux-ci ont été utilisés par le module gnome-config de libgnome .

.gconfcontient en effet les paramètres qui gconf-editoraccèdent en tant que fichiers xml. Par exemple, comparez la sortie des commandes suivantes:

gconftool -a /desktop/gnome/applications/browser

cat ~/.gconf/desktop/gnome/applications/browser/%gconf.xml

Je suis tombé sur votre réponse en essayant de trouver comment trouver le répertoire de configuration à partir d'une application gtk. Pour les autres programmeurs qui viennent après moi, il existe un wrapper gtk (glib) qui utilise XDG sur Linux et gère également MS Windows. Informations spécifiques ici: developer.gnome.org/glib/2.30/…
teambob

Tu as raison. J'étais surtout juste descriptif dans cette réponse, ne fournissant pas d'exemples pratiques pour un programmeur. Je mettrai à jour la réponse pour ajouter un peu plus d'informations à ceux qui tomberont dessus.
andrewsomething

5

La formulation appropriée doit être que .local, .cache, etc. font partie de la spécification de répertoire de base XDG de FreeDesktop, http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html .

La spécification de répertoire de base XDG est une norme et est suivie par KDE et d'autres environnements conformes.


Que signifie être conforme? Existe-t-il un mandat pour convertir des applications utilisant une spécification différente de celle de XDG, ou sinon pour les laisser hors de l'installation de base de Gnome / KDE? Si oui, le mandat est-il respecté? Est-ce que des applications tierces non conformes sont signalées par quelqu'un, ou l'existence de différentes conventions / répertoires de configuration est-elle supposée être une donnée, c'est-à-dire quelque chose qui continuera jusqu'à ce qu'elle soit volontairement abandonnée par tous les développeurs d'écosystème? Je n'ai pas installé KDE, mais la base Ubuntu / Gnome pour mon système 10.10 a les répertoires XDG que vous mentionnez. Peut-être s'agit-il d'une conformité volontaire?
belacqua

2
Dans la plupart des cas, il s'agit de conformité volontaire, mais il a été question dans le passé de faire de la conformité XDG un «objectif» pour toutes les applications dans l'installation par défaut.
andrewsomething

1
Il s'agit d'une conformité volontaire, mais les utilisateurs peuvent (et beaucoup le font) remplir des rapports de bogues sur les applications non conformes en leur demandant d'adhérer à la norme. Désencombrer leur dossier $ HOME est l'un des plus grands avantages de la norme XDG, donc la pression des utilisateurs est généralement assez élevée sur les applications héritées.
MestreLion
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.