GästebuchIhr Eintrag in unser Gästebuch KontaktNehmen Sie Kontakt mit den Autoren auf ArchivAlle Unixwerk- Artikel seit 2003
8. Juli 2003

Wie kann ich von einer älteren Slackware-Version auf 9.0 upgraden?

Inhalt

  1. Umbenennen aller installierten Pakete
  2. Das System in den Single-User-Mode bringen
  3. Neue »glibc« installieren
  4. Neue »pkgtools« installieren
  5. Alle gewünschten Pakete neu installieren
  6. Alte Pakete deinstallieren
  7. Alle gewünschten Pakete noch einmal installieren
  8. Anpassen der Start-Skripts
  9. Warum das ganze?

 

Seit Version 8.1 verwendet Patrick Volkerding für seine Linux-Distribution eine andere Namenskonvention für Pakete. Dies war Anlass für Patrick ein Verfahren zum Upgrade von 8.0 (oder einer älteren Version) auf 8.1 zu veröffentlichen, das auf den ersten Blick zwar gruselig aussah, jedoch in der Praxis überzeugen konnte.

Möchte man nun sein System aber von 8.1 auf 9.0 hochziehen, kann man nicht auf dieses Verfahren zurückgreifen, da die Namenskonvention für Pakete beibehalten wurde.

Dieses Dokument beschreibt einen Weg, dieses Verfahren in abgewandelter Form dennoch anzuwenden.

 

I. Umbenennen aller installierten Pakete

 darkstar# cd /var/adm/packages
 darkstar# for i in * ; do mv $i _remove_$i ; done
 darkstar# cd /var/adm/scripts
 darkstar# for i in * ; do mv $i _remove_$i ; done

Pakete, die Sie beibehalten möchten, weil sie aus anderen Quellen kommen (z.B. von www.LinuxPackages.net), benennen Sie einfach wieder um.

 

II. Das System in den Single-User-Mode bringen

 darkstar# telinit 1

 

III. Neue »glibc« installieren

Angenommen die Slackware-CD ist unter /cdrom in den Verzeichnisbaum eingehängt:

 darkstar# installpkg /cdrom/slackware/a/glibc-solibs-*.tgz

 

IV. Neue »pkgtools« installieren

 darkstar# installpkg /cdrom/slackware/a/pkgtools-*.tgz

 

V. Alle gewünschten Pakete neu installieren

Dies kann auf mehrere Arten geschehen. Paketserien, die komplett installiert werden sollen, werden wie folgt installiert. Im Beispiel werden die wichtigsten Paketserien a, ap und n komplett installiert:

 darkstar# installpkg /cdrom/slackware/a/*.tgz
 darkstar# installpkg /cdrom/slackware/ap/*.tgz
 darkstar# installpkg /cdrom/slackware/n/*.tgz

Weitere Paketserien müssen an dieser Stelle nicht unbedingt schon installiert werden; es reicht wenn diese unter VII. einmal installiert werden. Das spart Zeit.

Möchten Sie die genannten Serien nicht komplett installieren, können Sie die Skripts install-packages verwenden, die für alle Paketserien zur Verfügung stehen, also z.B.

 darkstar# cd /cdrom/slackware/n/
 darkstar# ./install-packages

Aus interaktiven Menüs können die gewünschten Pakete ausgewählt werden.

 

VI. Alte Pakete deinstallieren

Nun können die alten Pakete, die wir unter I. umbenannt hatten, deinstalliert werden:

 darkstar# cd /var/adm/packages
 darkstar# removepkg _remove_*

Jetzt ist Kaffeetrinken angesagt, da der Inhalt jedes einzelnen zu löschenden Paketes gegen den Inhalt aller anderen Pakete gecheckt wird, bevor es gelöscht wird. Das kann gut und gerne ein paar Stunden dauern.

 

VII. Alle gewünschten Pakete noch einmal installieren

Zu diesem Zeitpunkt kann endlich alles installiert werden, was gewünscht wird. Dies umschließt zwingend auch alle unter VI. bereits installierten Pakete.

Wie unter VI. bereits beschrieben, kann für die Installation ganzer Paketserien installpkg verwendet werden; ansonsten bietet sich das Skript install-packages an.

 

VIII. Anpassen der Start-Skripts

Die alten Start-Skripts im Verzeichnis /etc/rc.d wurden durch diesen Upgrade-Prozess nicht überschrieben. Dies hat den Vorteil, dass beispielsweise die IP-Konfiguration des Systems ebenso erhalten geblieben ist wie die Einträge in /etc/rc.d/rc.local.

Der Nachteil ist, dass Änderungen im Boot-Prozess, die Bestandteil der neuen Slackware-Version sind, nicht nachgezogen wurden. Die zur Version 9.0 passenden Skripts liegen im Verzeichnis /etc/rc.d/ mit der Endung .new. Die meisten können einfach über die alten kopiert werden.

Ausnahmen sind:

a) In der Datei rc.inet1 sollten die Werte für

oder

angepasst werden. Gegebenenfalls ebenfalls die Werte für die zweite Netzwerkkarte.

b) In der Datei rc.modules muss das Kommentarzeichen ('#') vor den Modulen, die bereits beim Systemstart geladen werden sollen, entfernt werden. Ersatzweise kann -- wenn keine neue Hardware vorhanden ist -- die alte Datei beibehalten werden.

c) Die Datei rc.local muss nicht durch die neue Version ersetzt werden.

 

IX. Warum das ganze?

Bleibt die Frage, was das ganze soll. Wäre eine Neuinstallation nicht der einfachere und sauberere Weg?

Der Vorteil des beschriebenen Upgrades gegenüber einer Neuinstallation ist, dass wichtige Verzeichnisse wie /home oder nicht über die Paketverwaltung nachinstallierte Software unter /opt bestehen bleiben und das zeitaufwendige Rücksichern solcher Bereiche entfällt.

Auf diese Weise lassen sich auch Systeme, die über kein (bootfähiges) CDROM-Laufwerk verfügen über Netz updaten.

Darüberhinaus bleiben die Einträge in den vielen Konfigurationsdateien unter /etc bestehen.