Mini-Tipp: slapt-get --dist-upgrade
Inhalt
- Einleitung
- Installationsquellen festlegen
- Kern-Pakete installieren
- Der Upgrade
- Nacharbeiten
- Probleme?
1. Einleitung
Wer Debian kennt, lernt den APT als Paketmanager zu schätzen, wenn's darum geht das System aktuell zu halten. Insbesondere lässt sich mit einem einzigen Befehl auch die Debian-Version hochziehen:
# apt-get dist-upgradeDies hat Jason Woodward dazu veranlasst, eine Art APT für Slackware zu entwickeln: slapt-get ¹. Neben den normalen install-,remove- und upgrade-Operationen gibt es auch die erwähnte Operation dist-upgrade :
# slapt-get --dist-upgradeDer Reihe nach:
2. Installationsquellen festlegen
In der Datei /etc/slapt-get/slapt-getrc werden dazu folgende Einträge gemacht. Da wir uns im guten alten Europa befinden, habe ich mich für den österreichischen Mirror (fett hervorgehoben) entschieden:
/etc/slapt-get/slapt-getrc
WORKINGDIR=/var/slapt-get EXCLUDE=kernel-.*,alsa-.*,lilo,.*-[0-9]dl$,devs,aaa_elflibs SOURCE=http://www.slackware.at/data/slackware-10.1/extra/ SOURCE=http://www.slackware.at/data/slackware-10.1/ |
Datenbank aktualisieren:
darkstar# slapt-get --update |
3. Kern-Pakete installieren
Die Manual-Page empfiehlt folgende Pakete vorab zu installieren: glibc-solibs, sed und pkgtools. Zusätzlich installieren wir libidn²
darkstar# slapt-get --install sed glibc-solibs pkgtools libidn |
4. Der Upgrade
Nun bleibt der Upgrade auf 10.1 mit dem oben erwähnten Befehl:
darkstar# slapt-get --upgrade |
Wenn der Upgrade beendet ist, sehen wir in der Datei /etc/slackware-version:
Slackware 10.1.0
5. Nacharbeiten
slapt-get ist kein offizielles Werkzeug von Slackware und hat damit nicht den Status erreicht, den APT unter Debian hat. Dies wird spätestens klar, wenn wir die verschiedenen Systeminitialisierungs- und Konfigurationsdateien sichten: Alle neuen Dateien finden sich auf dem System mit der Endung .new. - es empfiehlt sich also ein find. Bei mir sah der wichtigste Teil so aus:
darkstar# find /etc -name '*.new'> /etc/rc.d/rc.6.new /etc/rc.d/rc.M.new /etc/rc.d/rc.S.new /etc/rc.d/rc.cups.new /etc/rc.d/rc.inet1.new /etc/rc.d/rc.inet1.conf.new /etc/rc.d/rc.mysql.new /etc/rc.d/rc.local.new /etc/inittab . . . /etc/inetd.conf . . . /etc/cups/classes.conf.new /etc/cups/clients.conf.new /etc/cups/cupsd.conf.new /etc/cups/printers.conf.new . . . /etc/ssh/ssh_config.new /etc/ssh/sshd_config.new /etc/slapt-get/slapt-getrc . . . |
Ich habe alle Dateien mit dem diff-Befehl verglichen und bin zu folgendem Schluss gekommen:
- Folgende Dateien können mit der neuen Version überschrieben werden:
/etc/rc.d/rc.6
/etc/rc.d/rc.M
/etc/rc.d/rc.S
/etc/rc.d/rc.cups
/etc/rc.d/rc.inet1
/etc/rc.d/rc.mysqld
.
/etc/cups/classes.conf
/etc/cups/client.conf
/etc/cups/mime.types
/etc/cups/mime.convs - Bei folgenden Dateien konnte ich die alte Version (und damit meine Konfiguration) beibehalten:
/etc/rc.d/rc.inet1.conf
/etc/rc.d/rc.local
/etc/inittab
/etc/inetd.conf
.
/etc/cups/cupsd.conf
/etc/cups/printers.conf
.
/etc/ssh/ssh_config - In zwei Fällen musste ich die neue Version nehmen und die Änderungen nachziehen, die ich mal gemacht hatte:
/etc/sshd/sshd_config
/etc/slapt-get/slapt-getrcª
Bei allen weiteren Konfi-Dateien muss man sehen. Generell gilt: Bei nicht-genutzten Diensten empfiehlt sich ein Ersetzen durch
die neue Version, bei Diensten, an denen man mal rumkonfiguriert hat, muss man vergleichen und danach entscheiden, ob man die
alte Version beibehalten kann oder die neue nimmt und die Änderungen nachzieht.
6. Probleme?
Zum Schluss die Frage: Kann es Probleme geben? Die Antwort lautet: ja. Auf meinem Notebook lief alles durch - am Schluss ging allerdings slapt-get nicht mehr, da die neue Version eine Bibliothek benötigte, die es unter Slachware 10.0 nicht gab - und die damit auch beim Update nicht nachgezogen wurde - deshalb unbedingt libidn vorab installieren (vgl. 3).
Auf meinem PC wollte ich dann alles besser machen und hatte in vorauseilendem Gehorsam schon mal vorab die neueste slapt-get-Version installiert (noch für Slackware 10.0!).
Beim Versuch ein slapt-get --dist-upgrade zu starten, gab's einen schlichten Segmentation Fault -> also slapt-get wieder runtergerissen und die alte Version (0.9.9g) installiert. Nun gab's keinen Segmentation Fault mehr - immerhin! Dafür die deutlich aussagekräftigere Mitteilung, dass /var/slapt-get zu klein ist - dort werden nämlich zunächst einmal ca 600MB (je nach Installationsumfang) gelagert. Also entweder für Platz sorgen oder durch einen Link in einen Bereich umlenken, in dem genug Platz ist!
Ein weiteres Problem betrifft den X-Server:
Nach dem nächsten Reboot startete der X-Server nicht mehr. Es stellte sich heraus, dass das Modul für den Tastaturtreiber nicht gefunden wurde.
Unter
/usr/X11R6/lib/modules/input/keyboard_drv.ofindet sich allerdings durchaus ein entsprechendes Modul. Die Sektion "Input devices" meiner /etc/X11/xorg.conf zeigte folgenden Eintrag:
/etc/X11/xorg.conf (Ausschnitt)
# ********************************************************************** # Input devices # ********************************************************************** # ********************************************************************** # Core keyboard's InputDevice section # ********************************************************************** Section "InputDevice" Identifier "Keyboard1" Driver "Keyboard" |
Nachdem ich den Treiber von "Keyboard" auf "keyboard" umgestellt (kleines k!) hatte, war auch mein X wieder da. Puh!
¹ Beziehen lässt sich «slapt-get» z.B von linuxpackages.net oder jaos.org.
² Ist diese Bibliothek nicht vorhanden, funktioniert «slapt-get» nach dem Upgrade nicht mehr!