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 ~/.config
et ~/.cache
sont 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 gsettings
où les utilisateurs de KDE peuvent utiliser le même via kwriteconfig
, mais ils s'appuieront tous les deux sur le ~/.config
ré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 /etc
ou /usr/local
, mais les répertoires XDG doivent être utilisés pour les configurations spécifiques à l'utilisateur - ~/.cache
et ~/.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.conf
fichier, 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