Kapitel 2. Update des Systems und Paketverwaltung

Inhaltsverzeichnis

2.1. SUSE LINUX aktualisieren
2.2. Softwareänderungen von Version zu Version
2.3. RPM – Der Paket-Manager der Distribution

Zusammenfassung

SUSE LINUX bietet die Möglichkeit, ein bestehendes System ohne Neuinstallation zu aktualisieren. Dabei muss unterschieden werden zwischen der Aktualisierung einzelner Softwarepakete und einem Update des gesamten Systems.

Einzelne Pakete können auch von Hand mit dem Paketmanager rpm installiert werden.

2.1. SUSE LINUX aktualisieren

Es ist ein bekanntes Phänomen, dass Software von Version zu Version wächst. Deshalb empfiehlt es sich vor dem Update mit df nachzuschauen, wie sehr die einzelnen Partitionen bereits ausgelastet sind. Wenn Sie den Eindruck haben, es könnte knapp werden, dann führen Sie bitte vor dem Update ein Datenbackup durch und partitionieren Sie das System neu. Es kann kein genereller Tipp gegeben werden, wie viel Platz jeweils im Einzelnen benötigt wird – der Platzbedarf ist abhängig von der Art der bestehenden Partitionierung, von der ausgewählten Software und von der Versionsnummer des bestehenden Systems auf die aktuelle SUSE LINUX Distribution.

[Important]Wichtig

Es ist empfehlenswert, auf der CD die Datei LIESMICH README bzw. unter DOS/Windows die Datei LIESMICH.DOS README.DOS zu lesen; dort notieren wir zusätzliche Änderungen, die nach der Drucklegung des Handbuchs erfolgt sind!

2.1.1. Vorbereitungen

Vor Beginn eines Updates sollten sicherheitshalber die alten Konfigurationsdateien auf ein separates Medium (Streamer, Wechselplatte, ZIP-Laufwerk, CD-ROM etc.) kopiert werden. In erster Linie handelt es sich um die Dateien, die in /etc gespeichert sind; weiterhin sind die Konfigurationsdateien unter /var/lib zu kontrollieren. Zudem kann es nichts schaden, die aktuellen Benutzerdaten unter /home (die HOME-Verzeichnisse) auf ein Backup-Medium zu schreiben. Das Sichern der Daten ist als Systemadministrator root durchzuführen; nur root hat die Rechte, alle lokalen Dateien zu lesen. Bevor Sie den Update-Vorgang einleiten, notieren Sie sich die Rootpartition; mit dem Kommando df / können Sie den Gerätenamen der Rootpartition herausfinden; in dem Fall der Ausgabe 2.1. “Überblick mit df -h” ist /dev/hda2 die zu notierende Root-Partition.

Beispiel 2.1. Überblick mit df -h

Dateisystem Größe Benut Verf  Ben% montiert auf
/dev/hda1   1,9G  189M  1.7G  10%  /dos
/dev/hda2   8,9G  7,1G  1,4G  84%  /
/dev/hda5   9,5G  8,3G  829M  92%  /home

Die Ausgabe zeigt, dass die Partition /dev/hda2 unter / in das Dateisystem eingehängt (gemountet) ist.

2.1.1.1. Mögliche Probleme

PostgreSQL

Vor einem PostgreSQL™-Update (postgres) empfiehlt es sich in der Regel, die Datenbanken zu dumpen; vgl. die Manualpage von pg_dump. Dies ist natürlich nur dann erforderlich, wenn Sie PostgreSQL vor dem Update tatsächlich benutzt haben.

Promise-Controller

Die Festplatten-Controller der Firma Promise finden sich inzwischen auf hochwertigen Mainboards in verschiedenen Rechnern. Manchmal als reine IDE-Controller (für UDMA 100), manchmal als IDE-RAID-Controller. Seit SUSE LINUX 8.0 werden diese Controller direkt vom Kernel unterstützt und als normale Controller für IDE-Festplatten behandelt. Erst das zusätzlich Kernel-Modul pdcraid ermöglicht die RAID-Funktionalität.

In manchen Fällen kann es beim Update passieren, dass Festplatten am Promise-Controller vor den Festplatten am normalen IDE-Controller erkannt werden. Das System wird dann nach einem Kernel-Update nicht mehr booten und sich typischerweise mit Kernel panic: VFS: unable to mount root fs verabschieden. In diesem Fall muss beim Booten der Kernel-Parameter ide=reverse angegeben werden, um die Reihenfolge der Plattenerkennung umzudrehen ; vgl. Abschnitt 1.1.2. “Der Startbildschirm” . Dieser Parameter muss für dauerhafte Verwendung mit YaST in die Bootkonfiguration eingetragen werden ; vgl. das Kapitel Benutzerdefinierte Installation, Booten (Bootloader-Installation) im Handbuch [userguide02].

[Warning]Warnung

Nur die im BIOS eingeschalteten Controller werden gefunden. Insbesondere hat das nachträgliche Ein- oder Ausschalten von Controllern im BIOS direkte Auswirkungen auf die Devicenamen. Bei unbedachtem Vorgehen ist unter Umständen das Booten nicht mehr möglich!

Technische Erklärung Die Reihenfolge der Controller hängt vom Mainboard ab, jeder Hersteller hat seine eigene Strategie, Zusatzcontroller zu verdrahten. Mit dem Befehl lspci wird diese Reihenfolge sichtbar. Wenn der Promise-Controller vor dem normalen IDE-Controller aufgeführt wird, ist der Kernel-Parameter ide=reverse nach einem Update notwendig. Mit dem alten Kernel (ohne direkte Promise Unterstützung) wurde der Controller ignoriert und der normale IDE-Controller zuerst erkannt. Die erste Platte war dann /dev/hda. Mit dem neuen Kernel wird der Promise-Controller direkt gefunden und seine (bis zu vier) Platten als /dev/hda, /dev/hdb, /dev/hdc und /dev/hdd gemeldet. Die bisherige /dev/hda-Platte wird plötzlich zu /dev/hde und daher beim Bootvorgang nicht mehr gefunden.

2.1.2. Update mit YaST

Nach den in Abschnitt 2.1.1. “Vorbereitungen” genannten Vorarbeiten leiten Sie den Bootvorgang ein.

  1. Starten Sie das System wie zur Installation (vgl. Benutzerhandbuch) und wählen Sie dann in YaST — nach Festlegung der Sprache — nicht Neuinstallation, sondern Update des bestehenden Systems.

  2. YaST wird ermitteln, ob mehr als eine Rootpartition vorhanden ist; falls nein, geht es weiter mit dem Systembackup. Falls mehrere Partitionen vorhanden sind, müssen Sie die richtige Partition auswählen und mit Weiter bestätigen (beim Beispiel in Abschnitt 2.1.1. “Vorbereitungen” hatten Sie /dev/hda2 notiert).

    YaST wird alte fstab einlesen, die sich auf dieser Partition befindet, um dann die dort eingetragenen Dateisysteme zu analysieren und schließlich zu mounten.

  3. Danach besteht die Möglichkeit, eine Sicherungskopie der Systemdateien während des Updates erstellen zu lassen. Diese Option verlangsamt den Update-Vorgang, sollte aber gewählt werden, wenn Sie kein aktuelles Systembackup haben.

  4. Entweder kann im folgenden Dialog festgelegt werden, dass nur die bereits installierte Software erneuert wird oder dass dem System wichtige neue Softwarekomponenten hinzugesellt werden (Upgrade-Modus). Es ist empfehlenswert, die vorgegebene Zusammenstellung zu akzeptieren (zum Beispiel Standard-System). Etwaige Unstimmigkeiten können Sie mit YaST später beseitigen.

    Abbildung 2.1. Update der Software

    Update der Software

2.1.3. Manuell gesteuertes Update

2.1.3.1. Das Basissystem erneuern

Da beim Aktualisieren des Grundsystems die zentralen Bestandteile des Systems (wie zum Beispiel Bibliotheken) ausgetauscht werden müssen, kann diese Aufgabe nicht im normalen Betrieb, das heisst aus dem bereits laufenden Linuxsystem heraus, erledigt werden.

Sie müssen also die Update-Umgebung starten. Dies geschieht im Normalfall mit der CD bzw. DVD oder mit der selbst erstellten Diskette zum Booten (Bootdisk). Wenn Sie manuelle Eingriffe während des Updates vornehmen oder das gesamte Update mit der ncurses-ui von YaST (Textmodus) durchführen wollen, sind im Wesentlichen die Schritte notwendig, die bereits in Abschnitt 1.1. “Textbasierte Installation mit YaST” ff. ausführlich beschrieben sind:

  1. Direkt im Anschluss an das Booten des Kernels von der Bootdisk oder der CD bzw. DVD wird automatisch linuxrc gestartet.

  2. Im linuxrc sind im Hauptmenü unter dem Menüpunkt Einstellungen Sprache und Tastatur festzulegen und jeweils mit Ok zu bestätigen.

  3. Über den Menüpunkt Kernel-Module müssen ggf. die notwendigen Hardware- und Software-Treiber geladen werden; zum genauen Vorgehen vgl. Abschnitt 1.1.3. “Die Grundlage: linuxrc” und die linuxrc-Beschreibung 12.4.4. “Laden von Modulen”.

  4. Es kann über die Menüpunkte Installation / System starten -> Installation/Update starten zur Auswahl des Quellmediums übergegangen werden (vgl. 12.4.6. “System / Installation starten”).

  5. Von linuxrc wird die Installationsumgebung geladen und es wird YaST gestartet.

Im Eingangsmenü von YaST wählen Sie — nach Kontrolle der Sprache und Überprüfung der Hardware durch YaST — den Punkt Update des bestehenden Systems.

Im Anschluss versucht YaST, die Root-Partition herauszufinden und bietet das Ergebnis zur Auswahl bzw. Bestätigung an; in der angezeigten Liste geben Sie Ihre Root-Partition an, wie oben notiert (Beispiel: /dev/hda2). So beauftragen Sie YaST, die alte fstab einzulesen, die sich auf dieser Partition befindet; YaST wird die dort eingetragenen Dateisysteme analysieren und dann mounten.

Danach besteht die Möglichkeit, eine Sicherungskopie der Systemdateien während des Updates erstellen zu lassen.

Entweder kann im folgenden Dialog festgelegt werden, dass nur die bereits installierte Software erneuert wird oder dass dem System wichtige neue Softwarekomponenten hinzugesellt werden (Upgrade-Modus). Es ist empfehlenswert, die vorgegebene Zusammenstellung zu akzeptieren (zum Beispiel Standard-System). Etwaige Unstimmigkeiten können Sie mit YaST beseitigen.

Warndialog: Ja, damit das Übertragen der neuen Software von dem Quellmedium auf die Festplatte des Systems geschehen kann. Es folgt die Überprüfung der RPM-Datenbank.

Anschließend werden zunächst die zentralen Bestandteile des Systems aktualisiert, wobei YaST automatisch Sicherungen von Dateien anlegt, die seit der letzten Installation während des Betriebs verändert wurden; weiterhin werden alte Konfigurationsdateien ggf. mit der Endung .rpmorig bzw. .rpmsave gesichert; der Vorgang der Installation bzw. des Updates wird in /var/adm/inst-log/installation-* protokolliert und ist jederzeit nachlesbar.

2.1.3.2. Update des restlichen Systems

Ist das Basissystem aktualisiert, gelangen Sie in einen speziellen Update-Modus von YaST. Dort können Sie nach Ihren Wünschen den Rest des Systems updaten.

Nachdem diese Aufgabe erledigt ist, müssen Sie den Vorgang wie eine Erstinstallation abschließen. Unter anderem sollten Sie einen neuen Kernel auswählen; YaST wird diese Option anbieten.

2.1.3.3. Mögliche Probleme

Falls sich nach dem Update bestimmte Shell-Umgebungen nicht mehr so verhalten wie gewohnt, kontrollieren Sie bitte unbedingt, ob die aktuellen Punkt-Dateien im Homeverzeichnis noch zum System passen. Ist dies nicht der Fall, übernehmen Sie bitte die aktuellen Versionen von /etc/skel; zum Beispiel: cp /etc/skel/.profile ~/.profile.

2.1.4. Aktualisieren einzelner Pakete

Unabhängig von einem Gesamt-Update können Sie jederzeit einzelne Pakete aktualisieren; dabei müssen Sie selbst freilich darauf achten, dass das System konsistent bleibt: Update-Empfehlungen finden Sie unter http://www.suse.de/de/support/download/updates/ aufgelistet.

In der Paketauswahl von YaST können Sie nach Herzenslust schalten und walten. Wählen Sie ein Paket zum Update aus, das für den Betrieb des Systems eine zentrale Rolle spielt, werden Sie von YaST gewarnt. Derartige Pakete sollten im speziellen Update-Modus aktualisiert werden. Beispielsweise enthalten etliche Pakete shared libraries, die möglicherweise zum Zeitpunkt des Updates von laufenden Prozessen verwendet werden. Ein Update im laufenden System würde daher dazu führen, dass diese Programme nicht mehr korrekt funktionieren können.