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

Mini-Tipp: slapt-get --dist-upgrade

Inhalt

  1.  Einleitung
  2.  Installationsquellen festlegen
  3.  Kern-Pakete installieren
  4.  Der Upgrade
  5.  Nacharbeiten
  6.  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-upgrade

Dies 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-upgrade

Der 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:

  1. 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

  2. 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

  3. 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ª
ª hier muss nur die neue EXCLUDE=-Zeile in die alte Datei übernommen werden.

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.o

findet 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!