Verwalten von SLE Micro mit dem Kommando transactional-update
- WAS?
Mit dem Kommando
transactional-update
kö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-update
zu verstehen.- ZIEL
Sie verstehen, wie
transactional-update
funktioniert 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_command
transactional-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
--continue
werden 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
--continue
können Sie jeden beliebigen vorhandenen Snapshot als Basis für Ihren neuen Snapshot auswählen. Im folgenden Beispiel wird gezeigt, wietransactional-update
ausgefü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:>
sudo
transactional-update pkg install package_1
>
sudo
transactional-update --continue 13 pkg install package_2
-
--no-selfupdate
Deaktiviert die Selbstaktualisierung von
transactional-update
.-
--drop-if-no-change, -d
Verwirft den mit
transactional-update
erstellten Snapshot, wenn keine Änderungen am Root-Dateisystem vorgenommen wurden. Falls das Verzeichnis/etc
geändert wurde, wurden diese Änderungen wieder mit dem aktuellen Dateisystem zusammengeführt.-
--quiet
Das Kommando
transactional-update
sendet keine Ausgabe anstdout
.-
--help, -h
Gibt Hilfe für das Kommando
transactional-update
aus.-
--version
Zeigt die Version des Kommandos
transactional-update
an.
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
initrd
erneut 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-update
abgeschlossen 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:
>
sudo
transactional-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
/etc
im Verzeichnis/var/lib/overlay
.-
cleanup
Das Kommando kombiniert die Kommandos
cleanup-snapshots
undcleanup-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:>
sudo
transactional-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:
>
sudo
transactional-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
.>
sudo
transactional-update pkg install package_name
oder
>
sudo
transactional-update pkg install rpm1 rpm2
Zur Installation eines Softwareschemas:
>
sudo
transactional-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
.>
sudo
transactional-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
.>
sudo
transactional-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.
>
sudo
snapper listLegen Sie den Snapshot als Standard fest.
>
sudo
transactional-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 last
aus.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 snapshot
aus.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:
>
sudo
transactional-update rollback
Booten 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:
>
sudo
systemctl --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:
>
sudo
transactional-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:
>
sudo
jeos-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
mailx
wie 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–2024 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.