Systemupgrade über yum

Aus Fedorawiki.de

Wechseln zu: Navigation, Suche


Dieser Artikel ist Teil der HOWTO Sammlung

Ein Systemupgrade auf eine neue Fedora-Version ist manchmal nicht unproblematisch. Der offiziell unterstützte Weg geht dabei über Anaconda, also über die CDs bzw. die DVD. Obwohl ein Upgrade über yum oftmals funktioniert, sind Probleme dabei doch nicht ausgeschlossen. In dieser Anleitung soll einmal beispielhaft ein solches Systemupgrade von Fedora 14 auf Fedora 15 vorgeführt werden. Als Architektur wird dabei i386 verwendet. Bei x86_64 oder ppc müssen also die Downloadpfade angepasst werden. Auch sollte vorher auf den Seiten des FedoraProjektes nachgeschaut werden, ob schon Hinweise für die Aktualisierung über yum vorliegen: YumUpgradeFaq

Alle hier aufgezeigten Befehle müssen als root angewendet werden.

Inhaltsverzeichnis

Voraussetzungen

  • Eine bestehende Breitband-Internetverbindung (natürlich funktioniert es auch mit ISDN oder Modem)
  • Alle benötigten Repositories müssen schon Pakete für die neue Fedora-Version bereitstellen (oder abgeschaltet werden)
  • Genügend freier Speicherplatz unter /var/cache/yum/ und / (je nach Umfang mehrere GB)


Vorbereitungen

Zuerst einmal gilt es, das bisherige System aufzuräumen, um mögliche Probleme einzugrenzen.

Aktualisieren

Es sollte generell sichergestellt werden, dass alle Pakete in der aktuellsten Version vorliegen.

[root]# yum update

Das System aufräumen

Mit dem Tool package-cleanup aus dem Paket yum-utils kann das System nach Paketen durchsucht werden, die in keinem konfigurierten Repository existieren, und es meldet auch Probleme in der Paketdatenbank (wie z.B. nicht erfüllte Abhängigkeiten). Dies ist vor einem Systemupgrade sehr nützlich.

[root]# yum install yum-utils

Anschließend wird nach Problemen gesucht:

[root]# package-cleanup --problems

Dort angezeigte Probleme sollten, wenn möglich, behoben werden. Falls das heissen sollte, ein Paket zu deinstallieren, dass eigentlich gebraucht wird, sollte man sich dessen Namen notieren, um es später wieder hinzuzufügen. Falls dabei zuviele Pakete Probleme haben oder bei einer Deinstallation das halbe System entfernt werden soll, bleibt es zu überlegen, ob das Upgrade nicht hier schon abgebrochen werden soll.

Problematisch kann es auch werden, wenn im System Pakete installiert sind, die nicht in den aktiven Repositories verfügbar sind:

[root]# package-cleanup --orphans

Auch diese Pakete sollten evtl. entfernt werden, damit es nicht zu Paketkonflikten kommt. Falls Repositories abgeschaltet werden mussten, da sie noch keine neuen Pakete bereitstellen, kann diese Liste auch etwas umfangreicher ausfallen. Dann sollte das Upgrade evtl. verschoben werden.

Vorhandene Metadaten und Header für yum sollten auch entfernt werden, damit diese von yum komplett neu eingelesen werden und nicht Restbestände Probleme bereiten können:

[root]# yum clean all

Für Fedora 8: beryl ist nicht mehr Bestandteil von Fedora, nachdem es in compiz-fusion aufgegangen ist. Da noch nicht alle Pakete ein Äquivalent haben, sollte beryl vorher von Hand komplett entfernt werden:

[root]# yum remove beryl\*

Neue Release-Dateien installieren

Damit yum "weiß", das es auf eine neue Fedora-Version upgraden (und dementsprechend auch dessen Repositories benutzen) soll, muss das Paket fedora-release von Hand aktualisiert werden. Dies ist nicht mit yum selbst möglich. Öffnet dazu ein Terminal und loggt Euch als root ein. Anschließend müssen die Pakete fedora-release und das davon abhängende fedora-release-notes aktualisiert werden:

wget http://download.fedora.redhat.com/pub/fedora/linux/releases/15/Everything/i386/os/Packages/fedora-release-15-1.noarch.rpm
wget http://download.fedora.redhat.com/pub/fedora/linux/releases/15/Everything/i386/os/Packages/fedora-release-rawhide-15-1.noarch.rpm
wget http://download.fedora.redhat.com/pub/fedora/linux/releases/15/Everything/i386/os/Packages/fedora-release-notes-15.0.0-1.noarch.rpm
wget http://download.fedora.redhat.com/pub/fedora/linux/releases/15/Everything/x86_64/os/Packages/fedora-release-15-1.noarch.rpm
wget http://download.fedora.redhat.com/pub/fedora/linux/releases/15/Everything/x86_64/os/Packages/fedora-release-rawhide-15-1.noarch.rpm
wget http://download.fedora.redhat.com/pub/fedora/linux/releases/15/Everything/x86_64/os/Packages/fedora-release-notes-15.0.0-1.noarch.rpm


[root]# rpm -Uvh fedora-release-15-1.noarch.rpm fedora-release-rawhide-15-1.noarch.rpm fedora-release-notes-15.0.0-1.noarch.rpm

Nicht zwingend nötig, aber auch nicht schädlich, ist es, die Release-RPMs der benutzten Dritt-Repositories ebenfalls händisch zu aktualisieren. Falls das Repository seine Dateistruktur geändert hat, ist dies sogar Voraussetzung. Hier ein Beispiel für das oftmals eingesetzte RPMFUSION:

[root]# rpm -Uvh http://download1.rpmfusion.org/free/fedora/releases/15/Everything/x86_64/os/rpmfusion-free-release-15-1.noarch.rpm


Das System aktualisieren

Nun kann das eigentliche Upgrade beginnen.

Wichtig Wichtig: Achtet unbedingt darauf, dass in der Datei /etc/yum.conf bei keepcache der Wert auf "1" eingestellt ist, damit die heruntergeladenen Pakete nicht gleich gelöscht werden.
[root]# yum upgrade

Je nach Menge der installierten Pakete kann es mehrere Minuten dauern, bis die gewohnte Aktualisierungsübersicht erscheint. Dort steht auch die Gesamtgröße der herunterzuladenen Pakete, so dass ungefähr abgeschätzt werden kann, wie lange das Upgrade dauern wird. Wenn mit y bestätigt wird, kann es losgehen.

Wenn möglich, sollten die Warnungen von yum notiert werden, so dass diese später nachkontrolliert werden können. In der Regel erscheinen diese bei neuen Einstellungsdateien unterhalb von /etc/. Ein Beispiel sieht dabei so aus:

Updating  : openldap         [215/902]warning: /etc/openldap/ldap.conf created as /etc/openldap/ldap.conf.rpmnew

In diesem Fall wurde die neue Version der Einrichtungsdatei für LDAP als ldap.conf.rpmnew erstellt.

Nachdem das Upgrade abgeschlossen ist, sollte vor dem Reboot sicherheitshalber noch kontrolliert werden, ob der Eintrag für den Kernel in der Datei /etc/grub.conf korrekt ist. Ist das der Fall, folgt nun der Reboot in die neue Fedora-Version.


Abschließende Arbeiten in der neuen Version

Die folgenden Arbeiten sollten noch nicht unter einer grafischen Oberfläche erfolgen. Wechselt dazu am besten mit STRG+ALT+F1 auf das erste virtuelle Terminal und meldet Euch als root an.

Falls das System einwandfrei hochgefahren ist, können die alten Kernel entfernt werden.

rpm -qa | grep kernel


[root]# rpm -e kernel-<version>.fc7

Es sollte darauf geachtet werden, nicht aus Versehen den aktuellen Kernel zu deinstallieren.

Anschließend kann noch einmal nach Paketkonflikten gesucht werden:

[root]# package-cleanup --problems

Falls SELinux benutzt wird (Standardeinstellung) kann es evtl. zu Problemen mit den Berechtigungen kommen. Folgendes behebt dieses:

[root]# /sbin/fixfiles relabel

Wenn keine größeren Probleme aufgetreten sind, ist das Upgrade damit abgeschlossen. Nun kann damit begonnen werden, evtl. vorher entfernte Pakete wieder einzuspielen und sich die Dateien mit der Endung .rpmnew (und teilweise auch .rpmsave) in /etc/ und dessen Unterverzeichnisse genauer anzuschauen, damit z.B. die Serverdienste angepasst an die neuere Version laufen. Ein schnelle Übersicht liefert dabei der folgende Befehl:

find /etc/ -name "*.rpm*"

Grafische Programme zum vergleichen sind z.B. meld (Gnome) oder kdiff3/kompare (KDE). Natürlich funktioniert auch das gute alte diff im Terminal.


Siehe auch


Links