SYSTEMD.V(7)

BEZEICHNUNG
systemd.v - Verzeichnis mit versionierten Ressourcen

BESCHREIBUNG

An verschiedenen Stellen akzeptieren Systemd-Komponenten Pfade, deren abschließende Komponenten die Endung ».v/« haben und auf ein Verzeichnis zeigen. Diese Komponenten werden dann automatisch nach geeigneten Dateien innerhalb dieser Verzeichnisse suchen, einen Versionsvergleich durchführen und die neueste gefundene Datei (gemäß Version) öffnen. Verfügbar seit Version v256. Insbesondere werden zwei Ausdrücke unterstützt:

    • Wird nach Dateien mit Endung .ENDUNG geschaut und ein Pfad …PFAD/NAME.ENDUNG.v/ ist angegeben worden, dann werden alle Dateien gemäß …PFAD/NAME.ENDUNG.v/NAME_*.ENDUNG aufgezählt, gefiltert, sortiert und es wird die neueste Datei verwandt. Der primäre Sortierschlüssel ist der variable Anteil, hier mit dem Platzhalter »*« gekennzeichnet.

    • Wenn ein Pfad …PFAD.v/NAME___.ENDUNG angegeben ist (d.h. die vorletzte Komponente des Pfades endet auf ».v« und die abschließende Komponente enthält einen dreifachen Unterstrich), dann werden alle Dateien gemäß …PFAD.v/NAME_*.ENDUNG aufgezählt, gefiltert, sortiert und es wird die neueste Datei verwandt (wieder über den variablen Anteil, hier mit dem Platzhalter »*« gekennzeichnet).

Um dies in einem Beispiel vorzustellen, betrachten Sie ein Verzeichnis /var/lib/machines/mymachine.raw.v/, das mit drei Dateien bestückt ist:

    • mymachine_7.5.13.raw

    • mymachine_7.5.14.raw

    • mymachine_7.6.0.raw

Rufen Sie ein Werkzeug wie systemd-nspawn(1) mit einer Befehlszeile der folgenden Art auf:

    # systemd-nspawn --image=/var/lib/machines/mymachine.raw.v --boot

Dies würde dann automatisch zum Äquivalent von Folgendem aufgelöst:

    # systemd-nspawn --image=/var/lib/machines/mymachine.raw.v/mymachine_7.6.0.raw --boot

Ein Großteil der Funktionalität von Systemd, die einen Pfad zu einem Plattenabbild oder einer Betriebssystemhierarchie erwartet, unterstützt den Mechanismus der versionierten ».v/«-Verzeichnisse, beispielsweise systemd-nspawn(1), systemd-dissect(1) oder die Einstellungen RootDirectory=/RootImage= von Dienstedateien (siehe systemd.exec(5)).

Verwenden Sie das Werkzeug systemd-vpick(1), um ».v/«-Pfade auf der Befehlszeile aufzulösen, beispielsweise zur Verwendung in Shell-Skripten.

FILTERN UND SORTIEREN

Der variable Anteil der Dateinamen in ».v/«-Verzeichnissen wird primär mit einem Versionsvergleich, der die Versionsformatspezifikation[1] implementiert, gefiltert und verglichen. Allerdings gelten die folgenden zusätzlichen Regeln:

    • Falls an den variablen Anteil eine oder zwei Ganzzahlwerte (»verbliebene Versuche« und »erfolgte Versuche«) im Format +VERBLIEBEN oder +VERBLIEBEN-ERFOLGT angehängt sind, dann zeigen diese Anwendungsversuchszähler an. Die Idee besteht darin, dass jedesmal vor dem Versuch der Verwendung einer Datei dessen Zähler »verbliebene Versuche« heruntergezählt wird und der Zähler »erfolgte Versuche« erhöht wird (einfach durch Umbenennung der Datei). Wenn die Datei erfolgreich verwandt wird (das beispielsweise für ein Betriebssystemabbild bedeuten könnte, dass es erfolgreich gestartet wurde), werden die Zähler von dem Dateinamen entfernt, was anzeigt, dass die Datei für die korrekte Funktion validiert wurde. Dieser Mechanismus entspricht dem in Automatische Systemstartbeurteilung[2] definierten Systemstart-Beurteilungszählern. Jeder Dateiname ohne Systemstartzähler oder bei denen »verbliebene Versuche« nicht Null ist, wird vor Dateinamen sortiert, bei denen der Zähler »verbliebene Versuche« Null ist.

    • Vor diesen Zählern (falls sie angegeben sind) kann ein optionaler CPU-Architekturkennzeichner im Dateinamen festgelegt werden (getrennt von der Version durch einen Unterstrich), wie dies im Architekturvokabular der Unit-Dateieinstellung ConditionArchitecture=, dokumentiert in systemd.unit(5), definiert ist. Dateien, deren Namen eine lokal nicht unterstützte Architektur anzeigen, werden herausgefiltert und nicht für den Versionsvergleich betrachtet.

    • Der Rest des variablen Anteils ist die Versionszeichenkette.

Mit anderen Worten, die Dateien in den ».v/«-Verzeichnissen sollten einer dieser Namensstrukturen folgen:

    • NAME_VERSION.ENDUNG

    • NAME_VERSION_ARCHITEKTUR.ENDUNG

    • NAME_VERSION+VERBLIEBEN.ENDUNG

    • NAME_VERSION+VERBLIEBEN-ERFOLGT.ENDUNG

    • NAME_VERSION_ARCHITEKTUR+VERBLIEBEN.ENDUNG

    • NAME_VERSION_ARCHITEKTUR+VERBLIEBEN-ERFOLGT.ENDUNG

BEISPIEL

Es folgt ein umfassenderes Beispiel, das das obige erweitert. Betrachten Sie ein Verzeichnis /var/lib/machines/mymachine.raw.v/, in dem die folgenden Dateien liegen:

    • mymachine_7.5.13.raw

    • mymachine_7.5.14_x86-64.raw

    • mymachine_7.6.0_arm64.raw

    • mymachine_7.7.0_x86-64+0-5.raw

Rufen Sie jetzt auf einer X86-64-Maschine den folgenden Befehl auf:

    $ systemd-vpick --suffix=.raw /var/lib/machines/mymachine.raw.v/

Dies würde den angegebenen Pfad auf /var/lib/machines/mymachine.raw.v/mymachine_7.5.14_x86-64.raw auflösen. Erklärung: Obwohl mymachine_7.7.0_x86-64+0-5.raw die neuste Version hat, wird sie nicht bevorzugt, da ihr Zähler für verbliebene Versuche Null ist. Und obwohl mymachine_7.6.0_arm64.raw die zweitneuste Version hat, wird sie auch nicht betrachtet, diesmal weil auf einem X86_64-System gearbeitet wird und das Abbild für Arm64-CPUs gedacht ist. Schließlich wird das Abbild mymachine_7.5.13.raw nicht betrachtet, da es älter als mymachine_7.5.14_x86-64.raw ist.

SIEHE AUCH

systemd(1), systemd-vpick(1), systemd-nspawn(1), systemd-dissect(1), systemd.exec(5), systemd-sysupdate(8)

ANMERKUNGEN

1.  Versionsformatspezifikation
    https://uapi-group.org/specifications/specs/version_format_specification/

2.  Automatische Systemstartbeurteilung
    https://systemd.io/AUTOMATIC_BOOT_ASSESSMENT/

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer: debian-l10n-german@lists.debian.org.