Verwalten von SLE Micro mit dem Kommando transactional-update
- WAS?
Mit dem Kommando
transactional-updatekönnen Sie ein schreibgeschütztes Dateisystem ändern. Die Änderungen werden in einem separaten Snapshot durchgeführt und wirken sich erst dann auf das laufende System aus, wenn Sie in den Snapshot booten.- WARUM?
Sie möchten SLE Micro und seine Aktualisierungen verwalten, um das Risiko von Systemausfällen aufgrund von Fehlern bei der Aktualisierung zu minimieren und gleichzeitig einfache Rollbacks zu gewährleisten.
- AUFWAND
Es dauert weniger als 30 Minuten, das Kommando
transactional-updatezu verstehen.- ZIEL
Sie verstehen, wie
transactional-updatefunktioniert und wie Sie es zur Verwaltung Ihres Systems verwenden können.- ANFORDERUNGEN
Eine ausgeführte Instanz von SLE Micro
root-Berechtigungen
1 Transaktionsaktualisierungen #
1.1 Was sind Transaktionsaktualisierungen? #
Um das Basisbetriebssystem stabil und konsistent zu halten, verwendet SLE Micro ein schreibgeschütztes Root-Dateisystem. Daher können Sie keine direkten Änderungen am Root-Dateisystem vornehmen, beispielsweise mit dem Kommando zypper. SLE Micro ermöglicht stattdessen Transaktionsaktualisierungen, mit denen Sie eine oder mehrere Änderungen auf das Root-Dateisystem anwenden können.
Das standardmäßige Verhalten von transactional-update besteht darin, nach jeder Änderung einen neuen Snapshot vom aktuellen Root-Dateisystem zu erstellen. Zum Anwenden der Änderungen müssen Sie den Host neu starten. Sie können das Kommando transactional-update nicht mehrmals ausführen, ohne neu zu starten, um dem Snapshot weitere Änderungen hinzuzufügen. Diese Aktion erstellt separate unabhängige Snapshots, die keine Änderungen gegenüber den vorherigen Snapshots enthalten.
1.2 Wie funktionieren Transaktionsaktualisierungen? #
Jedes Mal, wenn Sie das Kommando transactional-update zum Ändern des Systems aufrufen (ein Paket installieren, eine Aktualisierung ausführen oder einen Patch anwenden), laufen die folgenden Aktionen ab:
Es wird ein neuer Snapshot mit Lese-/Schreibzugriff für das aktuelle Root-Dateisystem oder für einen von Ihnen angegebenen Snapshot erstellt.
Alle Änderungen werden angewendet (Aktualisierungen, Patches oder Paketinstallation).
Der Snapshot wird wieder in den Nur-Lesen-Modus versetzt.
Wenn die Änderungen erfolgreich angewendet wurden, wird der neue Snapshot des Root-Dateisystems als Standard festgelegt.
Nach dem Neustart bootet das System in den neuen Snapshot.
1.3 Vorteile von Transaktionsaktualisierungen #
Sie sind atomar – die Aktualisierung wird nur dann angewendet, wenn sie erfolgreich abgeschlossen wird.
Änderungen werden in einem separaten Snapshot übernommen und haben somit keinen Einfluss auf das laufende System.
Änderungen lassen sich mühelos per Rollback rückgängig machen.
1.4 Umgebung innerhalb des Kommandos transactional-update #
Jedes Mal, wenn Sie das Kommando transactional-update ausführen, werden die Änderungen in einem neuen Snapshot ausgeführt. Die Umgebung im Snapshot kann sich von der Umgebung in der Shell unterscheiden, von der aus Sie das Kommando transactional-update ausführen. Das aktuelle Arbeitsverzeichnis ($PWD) ist beispielsweise nicht auf das Verzeichnis eingestellt, von dem aus Sie das Kommando transactional-update ausführen, sondern auf /.
Aus dem Snapshot heraus können Sie nicht auf das Verzeichnis /var zugreifen. Dieses Verzeichnis ist auch nicht im Snapshot enthalten. Einige Verzeichnisse werden allerdings nicht in den Snapshot aufgenommen, sondern sind innerhalb der Umgebung von transactional-update verfügbar, z. B. das Verzeichnis /root.
2 Verwendung des Kommandos transactional-update #
Mit dem Kommando transactional-update ist eine atomare Installation oder das Entfernen von Aktualisierungen möglich. Aktualisierungen werden nur dann angewendet, wenn alle erfolgreich installiert werden können. transactional-update erstellt einen Snapshot Ihres Systems und verwendet ihn zum Aktualisieren des Systems. Später können Sie diesen Snapshot wiederherstellen. Alle Änderungen werden erst nach dem Reboot aktiv.
Die Syntax für das Kommando transactional-update lautet wie folgt:
transactional-update [option] [general_command] [package_command] standalone_commandtransactional-update ohne Argumente
Wenn Sie beim Ausführen von transactional-update kein Kommando oder keine Option angeben, aktualisiert das System sich selbst.
Mögliche Kommandoparameter werden weiter unten beschrieben.
transactional-update #-
--interactive, -i Kann zusammen mit einem Paketkommando verwendet werden, um den interaktiven Modus zu aktivieren.
-
--non-interactive, -n Kann zusammen mit einem Paketkommando verwendet werden, um den nicht interaktiven Modus zu aktivieren.
-
--continue [number], -c Mit der Option
--continuewerden mehrere Änderungen am Root-Dateisystem vorgenommen, ohne dass neu gebootet werden muss. Weitere Informationen finden Sie in Abschnitt 3, „Anwendung mehrerer Änderungen ohne Neustart“.Als weitere nützliche Funktion der Option
--continuekönnen Sie jeden beliebigen vorhandenen Snapshot als Basis für Ihren neuen Snapshot auswählen. Im folgenden Beispiel wird gezeigt, wietransactional-updateausgeführt wird, um ein neues Paket in einem Snapshot basierend auf Snapshot 13 zu installieren. Danach wird es erneut ausgeführt, um ein weiteres Paket zu installieren:>sudotransactional-update pkg install package_1>sudotransactional-update --continue 13 pkg install package_2-
--no-selfupdate Deaktiviert die Selbstaktualisierung von
transactional-update.-
--drop-if-no-change, -d Verwirft den mit
transactional-updateerstellten Snapshot, wenn keine Änderungen am Root-Dateisystem vorgenommen wurden. Falls das Verzeichnis/etcgeändert wurde, wurden diese Änderungen wieder mit dem aktuellen Dateisystem zusammengeführt.-
--quiet Das Kommando
transactional-updatesendet keine Ausgabe anstdout.-
--help, -h Gibt Hilfe für das Kommando
transactional-updateaus.-
--version Zeigt die Version des Kommandos
transactional-updatean.
2.1 Allgemeine Kommandos #
In diesem Abschnitt werden allgemeine Kommandos von transactional-update aufgeführt.
-
grub.cfg Mit diesem Kommando bauen Sie die GRUB-Bootloader-Konfigurationsdatei neu auf.
-
bootloader Das Kommando installiert den Bootloader neu.
-
initrd Mit diesem Kommando bauen Sie
initrderneut auf.-
kdump Falls Sie Änderungen an der Hardware oder am Speicher vornehmen, müssen Sie Kdump-initrd eventuell neu aufbauen.
-
shell Öffnet eine Shell mit Lese-/Schreibzugriff im neuen Snapshot vor dem Beenden. Dieses Kommando wird in der Regel zur Fehlersuche verwendet.
-
reboot Das System wird neu gestartet, sobald das Kommando
transactional-updateabgeschlossen ist.-
run <command> Führt das angegebene Kommando in einem neuen Snapshot aus.
-
setup-selinux Installiert und aktiviert die gezielte SELinux-Richtlinie.
3 Anwendung mehrerer Änderungen ohne Neustart #
Das Kommando transactional-update wendet Änderungen auf das Root-Dateisystem auf einem Transaktionssystem an. Das Standardverhalten besteht darin, nach jeder Änderung einen neuen Snapshot aus dem aktuellen Root-Dateisystem zu erstellen und neu zu starten, um die Änderungen zu übernehmen.
Sollen mehrere Änderungen am Root-Dateisystem ohne Neustart vorgenommen werden, haben Sie mehrere Möglichkeiten, die in den folgenden Abschnitten beschrieben werden.
3.1 Die Option transactional-update --continue #
Verwenden Sie das Kommando transactional-update zusammen mit der Option --continue, um mehrere Änderungen ohne Neustart vorzunehmen. Bei jeder Ausführung wird ein neuer Snapshot erstellt, der jeweils alle Änderungen des früheren Snapshots sowie die neuen Änderungen enthält. Der endgültige Snapshot umfasst alle Änderungen. Starten Sie das System neu, um sie anzuwenden, und Ihr endgültiger Snapshot wird zum neuen Root-Dateisystem.
3.2 Das Kommando transactional-update run #
Mit dem Kommando transactional-update run wird normalerweise nur ein einziges Kommando ausgeführt. Sie können damit jedoch auch mehrere Kommandos in einer einzigen Transaktionssitzung ausführen, wenn Sie die Kommandos in einer Kommando-Shell wie bash verketten, beispielsweise:
>sudotransactional-update run bash -c 'ls && date; if [ true ]; then echo -n "Hello "; echo '\''world'\''; fi'
Das Kommando transactional-update run unterliegt den gleichen Einschränkungen wie das Kommando transactional-update shell (siehe Abschnitt 3.3, „Die transactional-update-Shell“), mit der Ausnahme, dass die eingegebenen Kommandos in der Datei /var/log/transactional-update.log protokolliert werden.
3.3 Die transactional-update-Shell #
Das Kommando transactional-update shell öffnet eine Shell in der „transactional-update“-Umgebung. In der Shell können Sie nahezu jedes Linux-Kommando eingeben und damit Änderungen am Dateisystem vornehmen, z. B. mehrere Pakete mit dem Kommando zypper installieren oder Änderungen an Dateien vornehmen, die Bestandteil des schreibgeschützten Dateisystems sind. Sie können auch prüfen, ob die Änderungen, die Sie zuvor mit dem Kommando transactional-update ausgeführt haben, korrekt sind.
Die Transaktions-Shell unterliegt verschiedenen Einschränkungen. Sie können beispielsweise keine Dienste mit systemd-Kommandos starten oder stoppen, und es ist nicht möglich, die /var-Partition zu ändern, da sie nicht eingehängt ist. Außerdem werden Befehle, die in einer Shell-Sitzung eingegeben werden, nicht in der Datei /transactional-update.log protokolliert.
Alle Änderungen, die Sie am Dateisystem vornehmen, sind Teil eines einzelnen Snapshots. Nachdem Sie die Änderungen am Dateisystem vorgenommen und die Shell mit dem Kommando exit verlassen haben, müssen Sie den Host neu starten, um die Änderungen zu übernehmen.
4 Snapshot-Bereinigung durchführen #
Sie können mit transactional-update nicht verwendete Dateisystem-Snapshots und nicht referenzierte /etc-Overlay-Verzeichnisse bereinigen.
transactional-update erkennt die folgenden Bereinigungskommandos:
-
cleanup-snapshots Das Kommando markiert alle nicht verwendeten Snapshots zum Entfernen durch Snapper.
-
cleanup-overlays Das Kommando entfernt alle nicht verwendeten Overlay-Layer von
/etcim Verzeichnis/var/lib/overlay.-
cleanup Das Kommando kombiniert die Kommandos
cleanup-snapshotsundcleanup-overlays.
4.1 So funktioniert die Bereinigung #
Wenn Sie das Kommando transactional-update cleanup ausführen, haben alle alten Snapshots ohne Bereinigungsalgorithmus einen Satz. Alle wichtigen Snapshots sind ebenfalls markiert. Das Kommando entfernt auch alle nicht referenzierten (und damit nicht verwendeten) /etc-Overlay-Verzeichnisse in /var/lib/overlay.
Die Snapshots mit dem festgelegten number-Bereinigungsalgorithmus werden gemäß den Regeln gelöscht, die durch die folgenden Parameter in /etc/snapper/configs/root konfiguriert sind:
- NUMBER_MIN_AGE
Definiert das Mindestalter eines Snapshots (in Sekunden), der automatisch entfernt werden kann.
- NUMBER_LIMIT/NUMBER_LIMIT_IMPORTANT
Definiert die maximale Anzahl gespeicherter Snapshots. Die Bereinigungsalgorithmen löschen Snapshots über dem angegebenen Maximalwert, ohne den Snapshot und den Speicherplatz im Dateisystem zu berücksichtigen. Die Algorithmen löschen auch Snapshots über dem Mindestwert, bis die Grenzwerte für den Snapshot und das Dateisystem erreicht sind.
Die Snapshot-Bereinigung wird auch regelmäßig von systemd durchgeführt.
5 Registrierung von Produkten #
Mit dem Kommando transactional-update register können Sie alle Aufgaben im Zusammenhang mit der Produktregistrierung und der Abonnementverwaltung erledigen. Sie können folgende Optionen angeben:
-
--list-extensions Mit dieser Option listet das Kommando die verfügbaren Erweiterungen für das System auf. Anhand der Ausgabe können Sie eine Produktkennung für die Produktaktivierung ermitteln.
-
-p, --product Mit dieser Option geben Sie ein Produkt für die Aktivierung an. Die Produktkennung hat das folgende Format: <Name>/<Version>/<Architektur>, beispielsweise
sle-module-live-patching/15.3/x86_64. Das entsprechende Kommando hat die folgende Form:>sudotransactional-update register -p sle-module-live-patching/15.3/x86_64-
-r, --regcode Registrieren Sie das System mit dem bereitgestellten Registrierungscode. Das Kommando registriert das Abonnement und aktiviert Software-Repositorys.
-
-d, --de-register Die Option hebt die Registrierung des Systems oder (bei Verwendung der Option
-p) die Registrierung einer Erweiterung auf.-
-e, --email Geben Sie eine E-Mail-Adresse an, die im SUSE Customer Center für die Registrierung verwendet wird.
-
--url Geben Sie die URL Ihres Registrierungsservers an. Die URL wird in der Konfiguration gespeichert und in nachfolgenden Kommandosaufrufen verwendet. Beispiel:
>sudotransactional-update register --url https://scc.suse.com-
-s, --status Zeigt den aktuellen Registrierungsstatus im JSON-Format an.
-
--write-config Schreibt den angegebenen Optionswert in die Konfigurationsdatei
/etc/SUSEConnect.-
--cleanup Entfernt alte Systemanmeldedaten.
-
--version Gibt die Version aus.
-
--help Zeigt die Verwendung des Kommandos an.
6 Verwalten von Softwarepaketen #
Sie können mit transactional-update Softwarepakete installieren, aktualisieren oder entfernen.
SLE Micro bezieht Softwarepakete aus Repositorys, die nach der Produktregistrierung verfügbar sind.
transactional-update verwendet die folgenden Kommandos zur Verwaltung von Softwarepaketen.
pkg und Zypper-Optionen
Mit transactional-update pkg-Kommandos können Sie jede Zypper-Option verwenden, die dem verwendeten Unterkommando entspricht. transactional-update pkg install versteht zum Beispiel alle Optionen von zypper install.
-
pkg install Installiert einzelne Paket aus den verfügbaren Kanälen mit dem Kommando
zypper install. Mit diesem Kommando werden auch PTF(Program Temporary Fix)-RPM-Dateien installiert. Die Standardoption für dieses Kommando lautet--interactive.>sudotransactional-update pkg install package_nameoder
>sudotransactional-update pkg install rpm1 rpm2Zur Installation eines Softwareschemas:
>sudotransactional-update pkg install -t pattern pattern_name-
pkg remove Entfernt einzelne Pakete vom aktiven Snapshot mit dem Kommando
zypper remove. Mit diesem Kommando werden auch PTF-RPM-Dateien entfernt. Die Standardoption für dieses Kommando lautet--interactive.>sudotransactional-update pkg remove package_name-
pkg update Aktualisiert einzelne Pakete vom aktiven Snapshot mit dem Kommando
zypper update. Es können nur Pakete aktualisiert werden, die Teil des Snapshots des Basisdateisystems sind. Die Standardoption für dieses Kommando lautet--interactive.>sudotransactional-update pkg update package_name-
patch Sucht nach verfügbaren Patches und installiert diese. Die Standardoption für dieses Kommando lautet
--non-interactive.-
dup Führt ein Upgrade des Systems durch. Die Standardoption für dieses Kommando lautet
--non-interactive.-
up Aktualisiert installierte Pakete auf neuere Versionen. Die Standardoption für dieses Kommando lautet
--non-interactive.-
migration Das Kommando migriert das System an ein ausgewähltes Ziel. In der Regel wird damit das System aufgerüstet, wenn es über das SUSE Customer Center registriert wurde.
7 Durchführen eines System-Rollbacks #
GRUB 2 ermöglicht das Booten von btrfs-Snapshots und ermöglicht es Ihnen somit, jeden älteren funktionalen Snapshot zu verwenden, falls der neue Snapshot nicht korrekt funktioniert.
Beim Booten eines Snapshots werden die Teile des Dateisystems, die sich im Snapshot befinden, schreibgeschützt eingehängt. Alle anderen Dateisysteme und Teile, die aus Snapshots ausgeschlossen sind, werden schreibfähig eingehängt und können bearbeitet werden.
Ein erster bootfähiger Snapshot wird am Ende der ersten Systeminstallation erstellt. Diesen Zustand können Sie jederzeit wiederherstellen; booten Sie hierzu diesen Snapshot. Der Snapshot ist an der Beschreibung first root file system erkennbar.
Es gibt zwei Methoden, um ein System-Rollback durchzuführen.
Von einem laufenden System aus können Sie den Standard-Snapshot festlegen. Weitere Informationen finden Sie unter Prozedur 2, „Rollback von einem laufenden System“.
Insbesondere in Fällen, in denen der aktuelle Snapshot defekt ist, können Sie in den neuen Snapshot booten und ihn als Standard festlegen. Detaillierte Informationen finden Sie in Prozedur 3, „Rollback auf einen funktionierenden Snapshot“.
Wenn Ihr aktueller Snapshot funktionsfähig ist, können Sie das folgende Verfahren für ein System-Rollback verwenden.
Identifizieren Sie den Snapshot, der als Standard festgelegt werden soll, und notieren Sie sich seine Nummer.
>sudosnapper listLegen Sie den Snapshot als Standard fest.
>sudotransactional-update rollback snapshot_numberWenn Sie die snapshot number weglassen, wird der aktuelle Snapshot als Standard festgelegt.
Tipp: Festlegen des letzten funktionierenden SnapshotsWenn Sie den letzten funktionierenden Snapshot als Standard festlegen möchten, führen Sie
rollback lastaus.Starten Sie Ihr System neu, um in den neuen Standard-Snapshot zu booten.
Das folgende Verfahren wird verwendet, falls der aktuelle Snapshot defekt ist und Sie ihn nicht booten können.
Starten Sie Ihr System neu und wählen Sie
Start bootloader from a read-only snapshotaus.Wählen Sie einen Snapshot zum Booten aus. Die Snapshots sind nach dem Erstellungsdatum sortiert, wobei der neueste ganz oben steht.
Melden Sie sich bei Ihrem System an und prüfen Sie, ob alles wie erwartet funktioniert. Die Daten, die in Verzeichnisse geschrieben werden, die von den Momentaufnahmen ausgeschlossen sind, bleiben unberührt.
Wenn der Snapshot, in den Sie gebootet haben, nicht für das Rollback geeignet ist, starten Sie Ihr System neu und wählen Sie ein anderes.
Wenn der Snapshot wie erwartet funktioniert, können Sie das Rollback durchführen, indem Sie das folgende Kommando ausführen:
>sudotransactional-update rollbackBooten Sie anschließend neu.
8 Verwalten von automatischen Transaktionsaktualisierungen #
Automatische Aktualisierungen werden durch systemd.timer gesteuert, das einmal pro Tag ausgeführt wird. Damit werden alle Aktualisierungen angewendet und rebootmgrd wird informiert, dass der Rechner neu gebootet werden muss. Die Uhrzeit für die Ausführung der Aktualisierung kann angepasst werden. Weitere Informationen hierzu finden Sie in der Dokumentation zu systemd.timer(5).
8.1 Deaktivieren von automatischen Aktualisierungen #
Die automatischen Aktualisierungen sind standardmäßig aktiviert. Sie können sie jedoch mit diesem Kommando deaktivieren:
>sudosystemctl --now disable transactional-update.timer
8.2 Konfigurieren von Benachrichtigungen über fehlgeschlagene Aktualisierungen #
Wenn eine automatische transactional-update fehlschlägt, wird der fehlgeschlagene Snapshot gelöscht. In der Zwischenzeit kann das System neu gestartet werden, und Sie können dann nicht feststellen, dass die letzte automatische Aktualisierung fehlgeschlagen ist. Daher können Sie einen systemd-Dienst konfigurieren, der Sie über den Fehler bei der automatischen transactional-update informiert. Die Vorgehensweise kann in den folgenden Schritten zusammengefasst werden:
Installieren Sie die erforderlichen Pakete, wenn sie nicht auf dem System vorhanden sind. Detaillierte Informationen finden Sie in Abschnitt 8.2.1, „Installieren der erforderlichen Pakete“.
Konfigurieren des
systemd-status-mail-Dienstes. Detaillierte Informationen finden Sie in Abschnitt 8.2.2, „Konfigurieren dessystemd-status-mail-Dienstes“.
8.2.1 Installieren der erforderlichen Pakete #
Die Pakete mailx und systemd-status-mail sind erforderlich, um die Benachrichtigungen zu konfigurieren. Sie sind standardmäßig auf dem System vorhanden. Wenn Sie sie noch nicht installiert haben, installieren Sie die Pakete mit dem folgenden Kommando:
>sudotransactional-update pkg in systemd-status-mail mailx
Booten Sie das System neu.
8.2.2 Konfigurieren des systemd-status-mail-Dienstes #
Zum Konfigurieren des systemd-status-mail-Dienstes können Sie eine Konfigurationsdatei erstellen oder das Tool jeos-config verwenden.
8.2.2.1 Konfigurieren des Dienstes mit jeos-config #
E-Mail-Benachrichtigungen können Sie wie unten beschrieben mit den Tools jeos-config konfigurieren.
Führen Sie zum Öffnen des Konfigurationsfensters das folgende Kommando aus:
>sudojeos-config status_mailKonfigurieren Sie im Dialogfeld die Elemente nach Ihren Bedürfnissen.
Bestätigen Sie Ihre Auswahl mit .
8.2.2.2 Konfigurieren des Dienstes durch Bearbeiten einer Konfigurationsdatei #
Die Standardkonfigurationsdatei befindet sich unter /usr/etc/default/systemd-status-mail. Wenn Sie es ändern möchten, erstellen Sie eine Kopie in /etc/default/ und bearbeiten Sie die folgenden Elemente:
- ADDRESS
Ein Pflichteintrag. Geben Sie die E-Mail-Adresse an, an die die Benachrichtigung gesendet wird. Beispiel:
ADDRESS=“tux@example.com”
- FROM
Die E-Mail-Adresse des Absenders der Benachrichtigungs-E-Mail. Stellen Sie sicher, dass die Adresse gültig ist. Beispiel:
FROM=“geeko@example.com”
- MAILER
Die Art der E-Mail-Anwendung zum Senden von Benachrichtigungen. Verwenden Sie den Wert
mailxwie folgt:MAILER=“mailx”
- RELAYHOST
Geben Sie das von mailx verwendete Mail-Relay an.
RELAYHOST=“mail.example.com:587”
- MAILX_OPTIONS
Geben Sie die erforderlichen Optionen an, um sicherzustellen, dass der E-Mail-Anbieter die Benachrichtigungs-E-Mail akzeptiert.
MAILX_OPTIONS="-Sverbose -Ssmtp-use-starttls -Ssmtp-auth=login -Ssmtp-auth-user='tux@example.com' -Ssmtp-auth-password='TopSecret'"
9 Rechtliche Hinweise #
Copyright © 2006–2025 SUSE LLC und Mitwirkende. Alle Rechte vorbehalten.
Es wird die Genehmigung erteilt, dieses Dokument unter den Bedingungen der GNU Free Documentation License, Version 1.2 oder (optional) Version 1.3 zu vervielfältigen, zu verbreiten und/oder zu verändern; die unveränderlichen Abschnitte hierbei sind der Urheberrechtshinweis und die Lizenzbedingungen. Eine Kopie dieser Lizenz (Version 1.2) finden Sie im Abschnitt „GNU Free Documentation License“.
Die SUSE Marken finden Sie im https://www.suse.com/company/legal/. Alle anderen Marken von Drittanbietern sind Besitz ihrer jeweiligen Eigentümer. Markensymbole (®, ™ usw.) kennzeichnen Marken von SUSE und ihren Tochtergesellschaften. Sternchen (*) kennzeichnen Marken von Drittanbietern.
Alle Informationen in diesem Buch wurden mit größter Sorgfalt zusammengestellt. Auch hierdurch kann jedoch keine hundertprozentige Richtigkeit gewährleistet werden. Weder SUSE LLC noch ihre Tochtergesellschaften noch die Autoren noch die Übersetzer können für mögliche Fehler und deren Folgen haftbar gemacht werden.