Gibt es offizielle Dokumentation zu Verzeichnissen wie ~ / .config und ~ / .cache?

13

Ich habe festgestellt, dass diese Verzeichnisse von vielen Anwendungen verwendet werden, und überlege nun, sie für meine App zu verwenden. 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?

Ich habe gegoogelt und nach etwas Offiziellem aus Ubuntu gesucht, aber ohne Erfolg, vielleicht kennt jemand anderes die richtigen Suchbegriffe oder den Ort dieser Dokumentation. Ist dies etwas, was ich als nicht näher bezeichneten Standardübungsplatz akzeptieren sollte?

Danny A
quelle
„vielleicht jemand anderes der richtigen Suchbegriffe weiß“: Ich bin nicht sicher , dass die offiziellen Dokumentation für ihre Verwendung , aber diese sind dotfiles betrachtet, Punkt genaue Ordner in diesen Beispielen. Sie sind standardmäßig ausgeblendet und werden häufig zum Speichern von Benutzereinstellungen (~ / .config) und anderen "Support" -Dateien wie Cache (~ / .cache) verwendet.
Nmath
2
"Beamter aus Ubuntu" am falschen Ort. Es wird von der Freedesktop-Organisation so -desktop- abhängig definiert. Nicht nur Ubuntu. Oh und das sind RICHTLINIEN.
Rinzwind
1
@SergiyKolodyazhnyy es ist interessant zu diskutieren, wie Dotfiles entstanden sind, aber in der Praxis werden Dotfiles / Dotfolders standardmäßig von Dateimanagern und Bash-Befehlen wie verborgen (nicht sichtbar) dir. Auf diese Weise sind sie ja absolut "versteckt". Das Ausblenden von Dateien auf diese Weise hat einen guten Zweck, um zu verhindern, dass sie vom Endbenutzer versehentlich geändert / gelöscht werden. Deshalb werden sie immer noch so häufig verwendet. Ich bin damit einverstanden, dass Punktedateien nicht für Sicherheitszwecke verwendet werden dürfen, da sie nicht unmöglich zu finden, zu lesen oder zu ändern sind.
Nmath
3
@SergiyKolodyazhnyy wenige Methoden sind 100% effektiv für sich. Die Behauptung, dass Dotfiles "in keiner Weise versteckt" sind, ist nachweislich falsch, da dies der Hauptgrund ist, warum sie verwendet werden, und der einzige Vorteil für das Hinzufügen des Vorhergehenden .. Sind sie völlig unsichtbar? Nein, und das sollten sie nicht sein. Können sie noch gelesen / geschrieben werden? Ja, und das sollten sie. Sind sie in den meisten Fällen unsichtbar (verborgen)? Ja - das ist der Punkt
Nmath
1
@Nmath Nun, lasst uns einfach zustimmen, nicht zuzustimmen :) Außerdem ist der Kommentarbereich nicht für ausführliche Diskussionen gedacht.
Sergiy Kolodyazhnyy

Antworten:

19

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 ~/.configund ~/.cachesind 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, gsettingswo KDE-Benutzer dasselbe Via verwenden können kwriteconfig, aber beide sind dabei auf das ~/.configVerzeichnis 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 /etcoder verwenden sollten /usr/local, aber XDG-Verzeichnisse sollten für benutzerspezifische Konfigurationen verwendet werden - ~/.cacheund ~/.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.confDatei, 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

Sergiy Kolodyazhnyy
quelle
ähm hast du das vor mir gepostet? oder während? > :)
Rinzwind
@ Rinzwind Kurz vor Ihrer Antwort :) Sehen Sie sich die Zeitleiste
Sergiy Kolodyazhnyy
Ich gebe
Ah toll, ich hätte tiefer graben sollen, danke für die Information.
Danny A
In welchem ​​Teil von POSIX geht es um die Verwendung von Verzeichnissen?
Chepner