SYSTEMD.V(7) systemd.v SYSTEMD.V(7) BEZEICHNUNG systemd.v - Verzeichnis mit versionierten Ressourcen BESCHREIBUNG An verschiedenen Stellen akzeptieren Systemd-Komponenten Pfade, deren abschliessende Komponenten die Endung >>.v/<< haben und auf ein Verzeichnis zeigen. Diese Komponenten werden dann automatisch nach geeigneten Dateien innerhalb dieser Verzeichnisse suchen, einen Versionsvergleich durchfuhren und die neueste gefundene Datei (gemass Version) offnen. Verfugbar seit Version v256. Insbesondere werden zwei Ausdrucke unterstutzt: o Wird nach Dateien mit Endung .ENDUNG geschaut und ein Pfad PFAD/NAME.ENDUNG.v/ ist angegeben worden, dann werden alle Dateien gemass PFAD/NAME.ENDUNG.v/NAME_*.ENDUNG aufgezahlt, gefiltert, sortiert und es wird die neueste Datei verwandt. Der primare Sortierschlussel ist der variable Anteil, hier mit dem Platzhalter >>*<< gekennzeichnet. o Wenn ein Pfad PFAD.v/NAME___.ENDUNG angegeben ist (d.h. die vorletzte Komponente des Pfades endet auf >>.v<< und die abschliessende Komponente enthalt einen dreifachen Unterstrich), dann werden alle Dateien gemass PFAD.v/NAME_*.ENDUNG aufgezahlt, gefiltert, sortiert und es wird die neueste Datei verwandt (wieder uber 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 bestuckt ist: o mymachine_7.5.13.raw o mymachine_7.5.14.raw o 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 wurde dann automatisch zum Aquivalent von Folgendem aufgelost: # systemd-nspawn --image=/var/lib/machines/mymachine.raw.v/mymachine_7.6.0.raw --boot Ein Grossteil der Funktionalitat von Systemd, die einen Pfad zu einem Plattenabbild oder einer Betriebssystemhierarchie erwartet, unterstutzt 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 aufzulosen, beispielsweise zur Verwendung in Shell-Skripten. FILTERN UND SORTIEREN Der variable Anteil der Dateinamen in >>.v/<<-Verzeichnissen wird primar mit einem Versionsvergleich, der die Versionsformatspezifikation[1] implementiert, gefiltert und verglichen. Allerdings gelten die folgenden zusatzlichen Regeln: o Falls an den variablen Anteil eine oder zwei Ganzzahlwerte (>>verbliebene Versuche<< und >>erfolgte Versuche<<) im Format +VERBLIEBEN oder +VERBLIEBEN-ERFOLGT angehangt sind, dann zeigen diese Anwendungsversuchszahler an. Die Idee besteht darin, dass jedesmal vor dem Versuch der Verwendung einer Datei dessen Zahler >>verbliebene Versuche<< heruntergezahlt wird und der Zahler >>erfolgte Versuche<< erhoht wird (einfach durch Umbenennung der Datei). Wenn die Datei erfolgreich verwandt wird (das beispielsweise fur ein Betriebssystemabbild bedeuten konnte, dass es erfolgreich gestartet wurde), werden die Zahler von dem Dateinamen entfernt, was anzeigt, dass die Datei fur die korrekte Funktion validiert wurde. Dieser Mechanismus entspricht dem in Automatische Systemstartbeurteilung[2] definierten Systemstart-Beurteilungszahlern. Jeder Dateiname ohne Systemstartzahler oder bei denen >>verbliebene Versuche<< nicht Null ist, wird vor Dateinamen sortiert, bei denen der Zahler >>verbliebene Versuche<< Null ist. o Vor diesen Zahlern (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 unterstutzte Architektur anzeigen, werden herausgefiltert und nicht fur den Versionsvergleich betrachtet. o Der Rest des variablen Anteils ist die Versionszeichenkette. Mit anderen Worten, die Dateien in den >>.v/<<-Verzeichnissen sollten einer dieser Namensstrukturen folgen: o NAME_VERSION.ENDUNG o NAME_VERSION_ARCHITEKTUR.ENDUNG o NAME_VERSION+VERBLIEBEN.ENDUNG o NAME_VERSION+VERBLIEBEN-ERFOLGT.ENDUNG o NAME_VERSION_ARCHITEKTUR+VERBLIEBEN.ENDUNG o 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: o mymachine_7.5.13.raw o mymachine_7.5.14_x86-64.raw o mymachine_7.6.0_arm64.raw o 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 wurde den angegebenen Pfad auf /var/lib/machines/mymachine.raw.v/mymachine_7.5.14_x86-64.raw auflosen. Erklarung: Obwohl mymachine_7.7.0_x86-64+0-5.raw die neuste Version hat, wird sie nicht bevorzugt, da ihr Zahler fur 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 fur Arm64-CPUs gedacht ist. Schliesslich wird das Abbild mymachine_7.5.13.raw nicht betrachtet, da es alter 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(1) ANMERKUNGEN 1. Versionsformatspezifikation https://uapi-group.org/specifications/specs/version_format_specification/ 2. Automatische Systemstartbeurteilung https://systemd.io/AUTOMATIC_BOOT_ASSESSMENT/ UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Helge Kreutzmann erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . systemd 256.5 SYSTEMD.V(7)