Ja, es gibt einen Standard: Diese sind von freedesktop.org spezifiziert und Teil der XDG Base Directory-Spezifikationen .
Die Konfigurationsspezifikation beschreibt nur die grundlegenden Anforderungen, die Details finden Sie jedoch in den Basisverzeichnisspezifikationen. Die Verzeichnisse ~/.config
und ~/.cache
sind Standard, sofern nicht anders konfiguriert:
Es gibt eine Reihe von bevorzugten Basisverzeichnissen, nach denen die Konfigurationsdateien durchsucht werden sollen. Diese Verzeichnisgruppe wird durch die Umgebungsvariable $ XDG_CONFIG_DIRS definiert.
Es gibt ein einziges Basisverzeichnis, in das benutzerspezifische, nicht wesentliche (zwischengespeicherte) Daten geschrieben werden sollen. Dieses Verzeichnis wird durch die Umgebungsvariable $ XDG_CACHE_HOME definiert.
...
$ XDG_CONFIG_HOME definiert das Basisverzeichnis, in dem benutzerspezifische Konfigurationsdateien gespeichert werden sollen. Wenn $ XDG_CONFIG_HOME entweder nicht festgelegt oder leer ist, sollte ein Standardwert von $ HOME / .config verwendet werden.
...
$ XDG_CACHE_HOME definiert das Basisverzeichnis, in dem benutzerspezifische nicht wesentliche Datendateien gespeichert werden sollen. Wenn $ XDG_CACHE_HOME entweder nicht festgelegt oder leer ist, sollte ein Standardwert von $ HOME / .cache verwendet werden.
Möglicherweise geben diese Spezifikationen vor allem an, wo Daten gespeichert werden sollen, welche Umgebungsvariablen verwendet werden und auf welche Weise (desktopneutral, effizient usw.). Die meisten Desktops können jedoch den "wie" -Teil davon kostenlos implementieren. Die GNOME-basierten Desktops werden dort eingesetzt, gsettings
wo KDE-Benutzer dasselbe Via verwenden können kwriteconfig
, aber beide sind dabei auf das ~/.config
Verzeichnis angewiesen
Wichtige Fragenpunkte
Woher weiß ich, dass dies ein offiziell unterstützter Ordner ist und nicht nur eine Variante des monatlichen Speicherorts für einen benutzerspezifischen Cache / eine Benutzerkonfiguration?
Diese Verzeichnisse erscheinen in der offiziellen Dokumentation und werden auch von Filesystem Hierarchy Standard erwähnt. Dies ist eine offizielle Dokumentation, daher werden die Ordner offiziell unterstützt.
Ist dies etwas, was ich als nicht näher bezeichneten Standardübungsplatz akzeptieren sollte?
Hängt von der App ab, die Sie erstellen. Soll die App benutzerspezifisch konfigurierbar sein oder systemweit konsistent funktionieren? FHS sagt uns, dass wir für systemweite Dinge /etc
oder verwenden sollten /usr/local
, aber XDG-Verzeichnisse sollten für benutzerspezifische Konfigurationen verwendet werden - ~/.cache
und ~/.config
. Wenn die Anwendung nicht von benutzerspezifischen Einstellungen abhängig ist, kann natürlich / var / cache anstelle des Benutzerverzeichnisses verwendet werden. Natürlich könnten Sie immer eine einzelne ~/.appname.conf
Datei, ein ~/.appname.db
oder ein ~/.appname/
Verzeichnis haben, um die Konfigurationen und den Cache dort zu speichern , aber das wäre nicht der Standard. nicht "schlecht" - nur nicht standard.
Siehe auch