Existe-t-il une documentation officielle sur des répertoires comme ~ / .config et ~ / .cache?

13

J'ai vu ces répertoires utilisés par de nombreuses applications et j'envisage maintenant de les utiliser pour mon application. Comment puis-je savoir qu'il s'agit d'un dossier officiellement pris en charge et pas seulement d'un aperçu de l'emplacement du mois pour un cache / configuration par utilisateur?

J'ai cherché sur Google et recherché quelque chose d'officiel d'Ubuntu mais en vain, peut-être que quelqu'un d'autre connaît les termes de recherche appropriés ou l'emplacement de cette documentation. Est-ce quelque chose que je devrais simplement accepter comme un lieu de pratique standard non déclaré?

Danny A
la source
"peut-être que quelqu'un d'autre connaît les termes de recherche appropriés": je ne suis pas sûr de la documentation officielle pour leur utilisation, mais ceux-ci sont considérés comme des fichiers dot, plus spécifiquement des dossiers dot dans ces exemples. Ils sont masqués par défaut et sont couramment utilisés pour enregistrer les préférences de l'utilisateur (~ / .config) et d'autres fichiers de "support" comme le cache (~ / .cache).
Nmath
2
"officiel d'Ubuntu" au mauvais endroit. Il est défini par l'organisation freedesktop, donc dépendante du bureau. Pas seulement Ubuntu. Oh et ce sont des LIGNES DIRECTRICES.
Rinzwind
1
@SergiyKolodyazhnyy, il est intéressant de discuter de l'historique de la création des dotfiles, mais dans la pratique, les dotfiles / dotfolders sont masqués (non visibles) par défaut par les gestionnaires de fichiers et les commandes bash comme dir. De cette façon, oui, ils sont absolument "cachés". Masquer les fichiers de cette manière est un bon objectif pour éviter qu'ils ne soient accidentellement modifiés / supprimés par l'utilisateur final - c'est pourquoi ils sont toujours utilisés de manière omniprésente. J'accepte que les fichiers dot ne soient pas utilisés pour des raisons de sécurité, dans le sens où ils ne sont pas impossibles à trouver / lire / modifier.
Nmath
3
@SergiyKolodyazhnyy peu de méthodes sont efficaces à 100% par elles-mêmes. En ce qui concerne l'affirmation selon laquelle les fichiers dot ne sont «en aucune façon cachés» est manifestement faux, car c'est la principale raison pour laquelle ils sont utilisés et le seul avantage à ajouter les précédents .. Sont-ils totalement invisibles? Non, et ils ne devraient pas l'être. Peuvent-ils encore être lus / écrits? Oui, et ils devraient. Sont-ils invisibles (cachés) dans la plupart des cas? Oui - c'est le point
Nmath
1
@Nmath Eh bien, acceptons simplement d'être en désaccord :) En outre, la section des commentaires n'est pas pour des discussions approfondies.
Sergiy Kolodyazhnyy

Réponses:

19

Oui, il existe une norme: celles-ci sont spécifiées par freedesktop.org et font partie des spécifications du répertoire de base XDG .

config-spec décrit uniquement les exigences de base, mais les détails se trouvent dans les spécifications du répertoire de base. Les répertoires ~/.configet ~/.cachesont par défaut, sauf configuration contraire:

Il existe un ensemble de répertoires de base classés par préférence par rapport aux fichiers de configuration à rechercher. Cet ensemble de répertoires est défini par la variable d'environnement $ XDG_CONFIG_DIRS.

Il existe un répertoire de base unique par rapport auquel les données non essentielles (mises en cache) spécifiques à l'utilisateur doivent être écrites. Ce répertoire est défini par la variable d'environnement $ XDG_CACHE_HOME.

...

$ XDG_CONFIG_HOME définit le répertoire de base par rapport auquel les fichiers de configuration spécifiques à l'utilisateur doivent être stockés. Si $ XDG_CONFIG_HOME n'est pas défini ou vide, une valeur par défaut égale à $ HOME / .config doit être utilisée.

...

$ XDG_CACHE_HOME définit le répertoire de base par rapport auquel les fichiers de données non essentiels spécifiques à l'utilisateur doivent être stockés. Si $ XDG_CACHE_HOME n'est pas défini ou vide, une valeur par défaut égale à $ HOME / .cache doit être utilisée.

Vous pouvez remarquer que ces spécifications indiquent principalement où les données doivent être stockées, quelles variables d'environnement utilisées et de quelle manière (indépendant du bureau, efficace, etc.), mais la plupart des bureaux sont libres d'implémenter la partie "comment". Les bureaux basés sur GNOME utiliseront gsettingsoù les utilisateurs de KDE peuvent utiliser le même via kwriteconfig, mais ils s'appuieront tous les deux sur le ~/.configrépertoire dans le processus


Questionner les points clés

Comment puis-je savoir qu'il s'agit d'un dossier officiellement pris en charge et pas seulement d'un aperçu de l'emplacement du mois pour un cache / configuration par utilisateur?

Ces répertoires apparaissent dans la documentation officielle et Filesystem Hierarchy Standard les mentionne également. Il s'agit d'une documentation officielle, les dossiers sont donc officiellement pris en charge.

Est-ce quelque chose que je devrais simplement accepter comme un lieu de pratique standard non déclaré?

Cela dépend de l'application que vous créez. L'application est-elle censée être configurable par utilisateur ou fonctionner de manière cohérente dans tout le système? FHS nous dit que pour les choses à l'échelle du système, nous devons utiliser /etcou /usr/local, mais les répertoires XDG doivent être utilisés pour les configurations spécifiques à l'utilisateur - ~/.cacheet ~/.config. Bien sûr, si l'application ne dépend pas de paramètres spécifiques à l'utilisateur, / var / cache peut être utilisé à la place du répertoire par utilisateur. Bien sûr, vous pourriez toujours avoir un seul ~/.appname.conffichier, un répertoire ~/.appname.db ou ~/.appname/pour y conserver les configurations et le cache, mais ce ne serait pas standard; pas "mauvais" - juste non standard.

Voir également

Sergiy Kolodyazhnyy
la source
ehm avez-vous posté ceci avant moi? ou pendant? > :)
Rinzwind
@Rinzwind Juste avant votre réponse :) Regardez la chronologie askubuntu.com/posts/1151791/timeline
Sergiy Kolodyazhnyy
Je vous laisse celui-ci: =)
Rinzwind
Ah génial, j'aurais dû creuser plus profondément, merci pour l'information.
Danny A
Quelle partie de POSIX parle de l'utilisation des répertoires?
chepner