djonasson.xdg_bds
Ansible-Rolle: XDG BDS
Ansible-Rolle zur Konfiguration der XDG Base Directory Specification für Shell-Variablen und Verzeichnisse.
Anforderungen
Keine.
Rollenvariablen
Die Rollenvariablen sind in defaults/main.yml
mit folgenden Standardwerten definiert:
xdg_configure_state: present
Der Zustand, in dem Einstellungen über das blockinfile-Modul geschrieben werden. Mögliche Werte: [present, absent].
xdg_marker: "# {mark} ANSIBLE MANAGED BLOCK (djonasson.xdg_bds)"
Die Vorlage für die Markerzeile.
xdg_data_home: "{{ ansible_user_dir }}/.local/share"
$XDG_DATA_HOME
definiert das Basisverzeichnis, in dem benutzerspezifische Datendateien gespeichert werden sollen. Wenn
$XDG_DATA_HOME
nicht gesetzt oder leer ist, sollte standardmäßig $HOME/.local/share verwendet werden.
xdg_config_home: "{{ ansible_user_dir }}/.config"
$XDG_CONFIG_HOME
definiert das Basisverzeichnis, in dem benutzerspezifische Konfigurationsdateien gespeichert werden sollen. Wenn
$XDG_CONFIG_HOME
nicht gesetzt oder leer ist, sollte standardmäßig $HOME/.config verwendet werden.
xdg_state_home: "{{ ansible_user_dir }}/.local/state"
$XDG_STATE_HOME
definiert das Basisverzeichnis, in dem benutzerspezifische Zustandsdateien gespeichert werden sollen. Wenn
$XDG_STATE_HOME
nicht gesetzt oder leer ist, sollte standardmäßig $HOME/.local/state verwendet werden.
Das $XDG_STATE_HOME
enthält Zustandsdaten, die zwischen (Anwendungs-)Neustarts bestehen bleiben sollten, aber nicht wichtig
oder portabel genug sind, um in $XDG_DATA_HOME
gespeichert zu werden. Es könnte enthalten:
- Aktionshistorie (Protokolle, Verlauf, zuletzt verwendete Dateien, …)
- Aktueller Zustand der Anwendung, der bei einem Neustart wiederverwendet werden kann (Ansicht, Layout, geöffnete Dateien, Rückgängig-Historie, …)
Benutzerspezifische ausführbare Dateien können in $HOME/.local/bin gespeichert werden. Distributionen sollten sicherstellen, dass dieses Verzeichnis im UNIX-$PATH-Umgebungsvariable an einer geeigneten Stelle vorhanden ist.
Da $HOME zwischen Systemen mit unterschiedlichen Architekturen geteilt sein kann, könnte die Installation von kompilierten Binärdateien in $HOME/.local/bin Probleme verursachen, wenn sie auf Systemen mit unterschiedlichen Architekturen verwendet werden. Das ist oft kein Problem, aber die Tatsache, dass $HOME teilweise architekturspezifisch wird, wenn kompilierte Binärdateien darin abgelegt werden, sollte beachtet werden.
xdg_data_dirs: "/usr/local/share/:/usr/share"
$XDG_DATA_DIRS
definiert die Präferenzreihenfolge der Basisverzeichnisse, die zusätzlich zum
$XDG_DATA_HOME
Basisverzeichnis nach Datendateien durchsucht werden sollen. Die Verzeichnisse in $XDG_DATA_DIRS
sollten durch einen Doppelpunkt ':' getrennt sein.
Wenn $XDG_DATA_DIRS
nicht gesetzt oder leer ist, sollte ein Wert gleich /usr/local/share/:/usr/share/ verwendet werden.
xdg_config_dirs: "/etc/xdg"
$XDG_CONFIG_DIRS
definiert die Präferenzreihenfolge der Basisverzeichnisse, die zusätzlich zum
$XDG_CONFIG_HOME
Basisverzeichnis nach Konfigurationsdateien durchsucht werden sollen. Die Verzeichnisse in $XDG_CONFIG_DIRS
sollten durch einen Doppelpunkt ':' getrennt sein.
Wenn $XDG_CONFIG_DIRS
nicht gesetzt oder leer ist, sollte ein Wert gleich /etc/xdg verwendet werden.
Die Reihenfolge der Basisverzeichnisse zeigt ihre Wichtigkeit an; das zuerst aufgeführte Verzeichnis hat die höchste Wichtigkeit. Wenn
die gleichen Informationen an mehreren Stellen definiert sind, hat die Information, die relativ zum wichtigeren Basisverzeichnis definiert ist, Vorrang. Das Basisverzeichnis, das durch $XDG_DATA_HOME
definiert ist, wird als wichtiger angesehen als eines der Basisverzeichnisse, die durch $XDG_DATA_DIRS
definiert sind. Das Basisverzeichnis, das durch $XDG_CONFIG_HOME
definiert ist, wird als wichtiger angesehen als eines der Basisverzeichnisse, die durch $XDG_CONFIG_DIRS
definiert sind.
xdg_cache_home: "{{ ansible_user_dir }}/.cache"
$XDG_CACHE_HOME
definiert das Basisverzeichnis, in dem benutzerspezifische, nicht grundlegende Datendateien gespeichert werden sollen. Wenn $XDG_CACHE_HOME
nicht gesetzt oder leer ist, sollte standardmäßig $HOME/.cache verwendet werden.
$XDG_RUNTIME_DIR
definiert das Basisverzeichnis, in dem benutzerspezifische, nicht grundlegende Laufzeitdateien und andere
Dateiobjekte (wie Sockets, benannte Pipes, ...) gespeichert werden sollen. Das Verzeichnis MUSS dem Benutzer gehören, und er
MUSS der einzige sein, der Lese- und Schreibzugriff darauf hat. Der Unix-Zugriffsmodus MUSS 0700 sein.
Die Lebensdauer des Verzeichnisses MUSS an den Benutzer gebunden sein, der eingeloggt ist. Es MUSS beim ersten Einloggen des Benutzers erstellt werden, und wenn der Benutzer sich vollständig abmeldet, MUSS das Verzeichnis entfernt werden. Wenn der Benutzer sich mehr als einmal anmeldet, sollte er auf dasselbe Verzeichnis verwiesen werden, und es ist zwingend erforderlich, dass das Verzeichnis von seiner ersten Anmeldung bis zu seiner letzten Abmeldung im System weiterhin existiert und nicht dazwischen entfernt wird. Dateien in diesem Verzeichnis DÜRFEN keinen Neustart oder einen vollständigen Anmelde-/Abmeldezyklus überstehen.
Das Verzeichnis MUSS auf einem lokalen Dateisystem sein und darf nicht mit einem anderen System geteilt werden. Das Verzeichnis MUSS den Standards des Betriebssystems vollumfänglich entsprechen. Insbesondere auf Unix-ähnlichen Betriebssystemen müssen AF_UNIX-Sockets, symbolische Links, harte Links, richtige Berechtigungen, Dateisperren, Sparse-Dateien, Speicherabbildung, Benachrichtigungen über Dateiänderungen, eine zuverlässige Anzahl an harten Links unterstützt werden, und es dürfen keine Einschränkungen hinsichtlich des Zeichensatzes der Dateinamen auferlegt werden. Dateien in diesem Verzeichnis KÖNNEN einer regelmäßigen Bereinigung unterzogen werden. Um sicherzustellen, dass Ihre Dateien nicht entfernt werden, sollte der Zugriffszeitstempel mindestens einmal alle 6 Stunden monotone Zeit geändert werden, oder das 'Sticky'-Bit sollte auf der Datei gesetzt sein.
Wenn $XDG_RUNTIME_DIR
nicht gesetzt ist, sollten Anwendungen auf ein Ersatzverzeichnis mit ähnlichen Eigenschaften zurückgreifen und eine Warnmeldung ausgeben. Anwendungen sollten dieses Verzeichnis für Kommunikations- und Synchronisierungszwecke verwenden und keine größeren Dateien darin ablegen, da es möglicherweise im Arbeitsspeicher läuft und nicht unbedingt auf die Festplatte ausgelagert werden kann.
Abhängigkeiten
Keine
Beispiel-Playbook
- hosts: localhost
roles:
- role: djonasson.xdg_bds
Lizenz
MIT
Autor
Diese Ansible-Rolle wurde von Daniel Jonasson erstellt.
Ansible role to configure XDG Base Directory Specification shell variables and directories.
ansible-galaxy install djonasson.xdg_bds