SYSTEMD-SYSUPDATE(8) systemd-sysupdate SYSTEMD-SYSUPDATE(8)

systemd-sysupdate, systemd-sysupdate.service, systemd-sysupdate.timer, systemd-sysupdate-reboot.service, systemd-sysupdate-reboot.timer - Das Betriebssystem oder andere Ressourcen automatisch aktualisieren

ÜBERSICHT

systemd-sysupdate [OPTIONEN…]

systemd-sysupdate.service

systemd-sysupdate aktualisiert atomar das Betriebssystem, Container-Abbilder, portable Diensteabbilder oder andere Quellen, basierend auf den in sysupdate.d(5) beschriebenen Übertragungskonfigurationsdateien.

Dieses Werkzeug implementiert datei-, verzeichnis- oder partitionsbasierte Aktualisierungsschemata, unterstützt mehrere parallel installierte Versionen bestimmter Ressourcen in einer A/B- (oder sogar A/B/C-, A/B/C/DE- …) Art. A/B-Aktualisierung bedeutet, dass bei der aktuellen Verwendung einer Ressource die nächste an einen komplett anderen Ort heruntergeladen, entpackt und vorbereitet werden kann, unabhängig von der ersten und – sobald abgeschlossen – diese aktiviert werden kann. Dabei werden die Rollen vertauscht, so dass die Neue die verwandte Ressource wird und die bisher eingesetzte diejenige wird, die bei der nächsten Aktualisierung ersetzt werden wird und so weiter. Die zu aktualisierenden Ressourcen werden in Übertragungsdateien definiert, eine für jede zu aktualisierende Ressource. Ressourcen, die mit diesem Werkzeug aktualisiert werden können, sind beispielsweise eine Wurzeldateisystempartition, eine zugehörige Verity-Partition sowie ein Kernelabbild. Die Kombination dieser drei kann als komplette Betriebssystemaktualisierung betrachtet werden.

Das Werkzeug aktualisiert Partitionen, Dateien oder Verzeichnisbäume immer als Ganzes und agiert mit mindestens zwei Versionen jeder Ressource: der aktuellen Version sowie der nächsten Version: diejenige, auf die aktualisiert wird und die anfänglich unvollständig ist, während die heruntergeladenen Daten geschrieben werden; sowie optional weiteren Versionen. Sobald das Herunterladen einer neueren Version abgeschlossen ist, wird diese die aktuelle Version und gibt die Version, die bisher als aktuelle Version betrachtet wurde, zum Löschen/Ersetzen/Aktualisieren frei.

Beim Installieren neuer Versionen wird dieses Werkzeug die neue Version herunterladen, entkomprimieren und entpacken und direkt in das Ziel schreiben. Dies erfolgt auf eine robuste Art, so dass ein unvollständiges Herunterladen beim nächsten Aufruf erkannt wird und die Reste beseitigt werden, bevor ein neuer Versuch eingeleitet wird.

Beachten Sie, dass beim Schreiben von Aktualisierungen in eine Partition diese bereits existieren muss, da systemd-sysupdate nicht automatisch Partitionen erstellen wird. Verwenden Sie Werkzeuge wie systemd-repart(8), um automatisch zusätzliche Partitionen beim Systemstart für die Verwendung mit systemd-sysupdate zu erstellen.

Dieses Werkzeug kann sowohl auf dem laufenden Betriebssystem verwandt werden, um das Betriebssystem »im Betriebszustand« aus sich selbst zu aktualisieren und bei »nicht aktiven« Plattenabbildern, um diese von außerhalb, basierend auf der Übertragung von Dateien, die in diese Abbilder eingebettet sind, zu aktualisieren. Für Letzteres siehe die nachfolgende Beschreibung von --image=. Letzteres ist insbesondere für die Aktualisierung von Container-Abbildern oder portierbaren Diensteabildern interessant.

Der Systemdienst systemd-sysupdate.service wird das Betriebssystem automatisch basierend auf den installierten Übertragungsdateien aktualisieren. Er wird regelmäßig über systemd-sysupdate.timer ausgelöst. systemd-sysupdate-reboot.service wird das System automatisch nach der Installation einer neuen Version neu starten. Der Systemneustart wird mittels systemd-sysupdate-reboot.timer ausgelöst. Die zwei Dienste sind voneinander getrennt, da es typischerweise ratsam ist, Aktualisierungen regelmäßig während des Betriebs herunterzuladen, aber Neustarts bis zu einem geeigneten Zeitpunkt zu verzögern (d.h. typischerweise nachts). Die zwei Dienste-/Timer-Unit-Gruppen können separat aktiviert werden.

Für Details über Übertragungsdateien und Beispiele siehe sysupdate.d(5).

Die folgenden Befehle werden verstanden:

list [VERSION]

Beim Aufruf ohne Argumente werden die herunterladbaren und installierbaren Versionen aufgezählt und eine zusammenfassende Tabelle mit den erkannten Versionen und ihren Eigenschaften dargestellt. Dazu gehört, ob es neuere Kandidatenversionen gibt, auf die aktualisiert werden kann. Falls ein Versionsargument angegeben ist, werden Details über die bestimmte Version angezeigt, einschließlich der einzelnen Dateien, die übertragen werden müssen, um die neue Version zu erlangen.

Falls kein Befehl explizit angegeben ist, wird dieser Befehl impliziert.

Hinzugefügt in Version 251.

check-new

Prüft, ob eine neue Version verfügbar ist. Dies zählt intern die herunterladbaren und installierten Versionen auf und liefert einen Exit-Status von 0, falls es eine neue Version gibt, auf die aktualisiert werden kann, und ansonsten einen von Null verschiedenen Wert. Falls es eine neue Version gibt, auf die aktualisiert werden kann, dann wird deren Versionskennzeichnung auf die Standardausgabe geschrieben.

Hinzugefügt in Version 251.

update [VERSION]

Installiert (aktualisiert auf) die angegebene Version oder die neuste Version, falls keine Version angegeben ist. Falls die Version bereits installiert ist oder es keine neuere Version gibt, erfolgt keine Aktion.

Falls eine neue zu installierende/darauf zu aktualisierende Version gefunden wird, werden alte Versionen gelöscht, bis mindestens eine neue Version installiert werden kann. Dies wird mittels InstanceMax= in sysupdate.d(5) oder über die verfügbaren Partitionsplätze vom richtigen Typ konfiguriert. Diese implizite Aktion kann auch explizit über den nachfolgend beschriebenen Befehl vacuum aufgerufen werden.

Hinzugefügt in Version 251.

vacuum

Löscht alte installierte Versionen, bis die mittels InstanceMax= in sysupdate.d(5) konfigurierten Beschränkungen wieder eingehalten werden. Normalerweise sollte es nicht notwendig sein, diesen Befehl explizit aufzurufen, da er implizit aufgerufen wird, wenn eine neue Aktualisierung eingeleitet wird.

Hinzugefügt in Version 251.

pending

Prüft, ob eine neuere Version des Betriebssystems als die aktuell laufende installiert ist. Liefert Null zurück, falls dem so ist und ansonsten einen anderen Wert. Dies vergleicht die Versionskennzeichnung der neusten installierten Version mit der Version des Betriebssystemabbildes, wie es vom Feld IMAGE_VERSION= in /etc/os-release berichtet wird. Falls erstere neuerer als letztere ist, wurde anscheinend eine Aktualisierung abgeschlossen, aber noch nicht aktiviert (d.h. kein Systemneustart hinein durchgeführt).

Hinzugefügt in Version 251.

reboot

Ähnlich wie der Befehl pending, startet aber das System sofort neu, falls eine neuere Version des Betriebssystems installiert wurde, als aktuell läuft. Diese Aktion kann implizit zusammen mit dem Befehl update erfolgen, nach einer abgeschlossenen Aktualisierung mittels des Schalters --reboot, siehe unten. Dieser Befehl wird keine Aktion durchführen (und Erfolg zurückliefern), falls keine Aktualisierung installiert wurde und daher das System nicht neugestartet wurde.

Hinzugefügt in Version 251.

components

Führt zu aktualisierende Komponenten auf. Dies zählt die Verzeichnisse /etc/sysupdate.*.d/, /run/sysupdate.*.d/ und /usr/lib/sysupdate.*.d/ auf, die Übertragungsdateien enthalten. Dieser Befehl ist zum Auflisten möglicher Parameter für --component= nützlich (siehe unten).

Hinzugefügt in Version 251.

-h, --help

Zeigt einen kurzen Hilfetext an und beendet das Programm.

--version

Zeigt eine kurze Versionszeichenkette an und beendet das Programm.

Die folgenden Optionen werden verstanden:

--component=, -C

Wählt die zu aktualisierenden Komponenten aus. Akzeptiert einen Komponentennamen als Argument. Damit wird die Suchlogik für Übertragungsdateien leicht verändert. Falls der Schalter nicht verwandt wird, werden die Übertragungsdateien aus /etc/sysupdate.d/*.conf, /run/sysupdate.d/*.conf und /usr/lib/sysupdate.d/*.conf geladen. Falls dieser Schalter verwandt wird, wird der angegebene Komponentenname verwandt, um die Verzeichnisse, in denen gesucht wird, auf /etc/sysupdate.Komponente.d/*.conf, /run/sysupdate.Komponente.d/*.conf und /usr/lib/sysupdate.Komponente.d/*.conf zu ändern. Dabei wird die Zeichenkette Komponente durch den angegebenen Komponentennamen ersetzt.

Verwenden Sie den Befehl components, um alle zu aktualisierenden Komponenten aufzulisten. Dies zählt die Verzeichnisse auf, die auf diese Bennenungsregel passen.

Komponenten können verwandt werden, um getrennte Gruppen von Übertragungsdateien für verschiedene Komponenten des Betriebssystems zu definieren, die getrennt aktualisiert werden sollen. Verwenden Sie dieses Konzept nicht für Ressourcen, die immer zusammen auf synchrone Art aktualisiert werden sollen. Für diese Fälle definieren Sie einfach mehrere Übertragungsdateien innerhalb des gleichen sysupdate.d/-Verzeichnisses.

Diese Option kann nicht mit --definitions= kombiniert werden.

Hinzugefügt in Version 251.

--definitions=

Ein Pfad zu einem Verzeichnis. Falls angegeben, werden die Übertragungsdateien *.conf aus diesem Verzeichnis statt aus /usr/lib/sysupdate.d/*.conf, /etc/sysupdate.d/*.conf und /run/sysupdate.d/*.conf gelesen.

Diese Option kann nicht mit --component= kombiniert werden.

Hinzugefügt in Version 251.

--root=

Akzeptiert einen Pfad zu einem für das Suchen nach Dateien sysupdate.d/*.conf als Wurzeldateisystem zu verwendenden Verzeichnis.

Hinzugefügt in Version 251.

--image=

Akzeptiert einen Pfad zu einer Abbilddatei oder zu einem einzuhängenden Gerät, das ähnlich wie --root= verwandt werden soll, siehe oben. Falls dies verwandt wird und Partitionsressourcen aktualisiert werden, dann erfolgt dies innerhalb des angegebenen Plattenabbildes.

Hinzugefügt in Version 251.

--image-policy=Richtlinie

Akzeptiert gemäß systemd.image-policy(7) eine Abbildrichtlinienzeichenkette als Argument. Die Richtlinie wird bei Aktionen auf dem mittels --image= angegebenen Plattenabbild durchgesetzt, siehe oben. Falls nicht angegeben ist die Vorgabe die Richtlinie »*«, d.h. alle erkannten Dateisysteme im Abbild werden verwandt.

--instances-max=, -m

Akzeptiert eine dezimale Ganzzahl größer oder gleich 2. Steuert, wie viele Versionen jederzeit behalten werden sollen. Diese Option kann auch innerhalb von Übertragungsdateien über die Einstellung InstancesMax= konfiguriert werden, siehe sysupdate.d(5) für Details.

Hinzugefügt in Version 251.

--sync=

Akzeptiert ein logisches Argument, standardmäßig ja. Dies kann zur Festlegung verwandt werden, ob die frisch aktualisierten Ressourcenversionen bei Bedarf auf Platte synchronisiert werden sollen (d.h. nachdem das Herunterladen vollständig ist, bevor es abgeschlossen wurde und dann nach dem Abschluss). Das sollte nicht ausgeschaltet werden, außer um die Laufzeitleistung in Testumgebungen zu verbessern.

Hinzugefügt in Version 251.

--verify=

Akzeptiert ein logisches Argument, standardmäßig ja. Steuert, ob heruntergeladene Inhalte kryptographisch überprüft werden sollen. Das sollte nicht ausgeschaltet werden, außer in Testumgebungen.

Hinzugefügt in Version 251.

--reboot

Startet das System direkt im Anschluss neu, wenn es in Kombination mit dem Befehl update verwandt wird und eine neue Version installiert wurde.

Hinzugefügt in Version 251.

--no-pager

Leitet die Ausgabe nicht an ein Textanzeigeprogramm weiter.

--no-legend

Gibt die Legende nicht aus, d.h. die Spaltenköpfe und die Fußzeile mit Hinweisen.

--json=MODUS

Zeigt die Ausgabe als JSON formatiert. Erwartet entweder »short« (für die kürzest mögliche Ausgabe ohne unnötigen Leerraum oder Zeilenumbrüche), »pretty« (für eine schönere Version der gleichen Ausgabe, mit Einzügen und Zeilenumbrüchen) oder »off« (um die standardmäßig aktivierte JSON-Ausgabe auszuschalten).

Bei Erfolg wird 0 zurückgegeben, anderenfalls ein Fehlercode ungleich Null.

systemd(1), sysupdate.d(5), systemd-repart(8)

Ü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 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.

systemd 255