Durch den Paketmanager ist die Installation der neuen Version recht einfach. Man hat die Wahl entweder mit der ganzen Distribution auf einen unstabilen Zweig zu wechseln oder wahlweise die glibc (inkl. Abhängigkeiten) zu aktualisieren. Sollte es sich um ein Produktivsystem handeln1) ist von einem Update abzuraten. Wir übernehmen keine Garantie, dass alles Reibungslos klappt. Zusätzlich gibt es noch die Möglichkeit für Debian einfach eine Chroot-Umgebung
einzurichten. Die Vorgehensweise wird im Artikel Chroot mit Debian beschrieben.
Zuerst muss die Datei /etc/apt/sources.list
bearbeitet werden. Da lenny
jetzt stable ist, entfällt bei den meisten diese nötige Änderung. Sollte noch etch
drin stehen, kann das durch stable
oder lenny
ersetzt werden. Beide Varianten haben ihre Vor- und Nachteile.
nano -w /etc/apt/sources.list
Danach muss ein Update der Paketliste gezogen werden. Hier werden noch keine Updates installiert:
apt-get update
Jetzt wird ein Upgrade der Pakete und der Distribution gestartet:
apt-get upgrade && apt-get dist-upgrade
Es ist auch möglich ein gemischtes System aus stable, testing und unstable zu verwalten. Dieser Weg ist etwas eleganter als die beiden anderen Methoden. Mit dem Pinning von Apt-Get besteht die Möglichkeit Pakete unterschiedlicher Zweige zu installieren. Abhängigkeiten werden weiterhin erfüllt. Zuerst muss die Datei /etc/apt/apt.conf.d/70debconf
erweitert werden oder wahlweise kann auch die Datei /etc/apt/apt.conf
erstellt werden. Folgender Inhalt muss hinzugefügt werden:
APT::Default-Release "stable"; APT::Cache-Limit "18388608";
Als Standard wird bei dieser Einstellung für apt-get
der stabile Zweig2) verwendet. Der Cache-Limit ist erhöht worden, da beide Paketlisten der Zweige lenny
und etch
zu groß für die Standardeinstellung sind.
Danach muss ein weiterer Debian-Mirror für Debian Lenny
zur Datei /etc/apt/sources.list hinzugefügt:
deb ftp://ftp.debian.org/debian lenny main
Mittels apt-get update
können die Paketlisten neu geladen werden und zuletzt wird dann glibc installiert:
apt-get -t testing install libc6
Zuvor kann mit dem Befehl
apt-get -s -t testing install libc6
überprüft werden, welche Pakete durch Abhängigkeiten betroffen sind und aktualisiert würden.
Dieser Weg sollte nicht angewandt werden, da es ansonsten Probleme mit anderen Paketen geben wird, die im Nachhinein installiert werden sollen.
Zuerst muss die Datei /etc/apt/sources.list
bearbeitet werden. Bei den meisten steht entweder stable oder etch drin. Das muss durch lenny ersetzt werden.
nano -w /etc/apt/sources.list
Danach muss ein Update der Paketliste gezogen werden. Hier werden noch keine Updates installiert:
apt-get update
Ist man sich nicht sicher, kann man noch mit folgendem Befehl die Änderungen der Pakete vorher anzeigen lassen:
apt-get -s install libc6
Meistens sind auch andere Pakete betroffen, die ein neues Update bekommen. Bei dem Update kommen Abfragen um bestimmte Dateien zu ersetzen, meist ist es besser die Originaldateien zu belassen. Wenn man sich wirklich sicher ist, kann man aber auch die neue Konfigurationsdateien aus dem neuen betroffenen Paket installieren (Apache ist auch dabei). Um das Paket libc6
zu aktualisieren führt man folgenden Befehl aus:
apt-get install libc6
Es wird abgefragt werden, ob die Pakete heruntergeladen werden sollen. Es muss mit Y oder J bestätigt werden. Nach dem Update kann mittels /lib/libc.so.6
kann die aktuelle Version der Glibc nochmals abgefragt werden.
Der letzte, eigentlich wichtigste Schritt, ist es die Quellen im Paket /etc/apt/sources.list
wieder auf etch zu setzen. Dadurch werden bei zukünftigen Updates andere Paket nicht betroffen sein. Man kann dann zur Kontrolle nochmals ein mittels apt-get update
die Paketlisten vom stabilen Zweig etch
herunterladen. Führt man ein Upgrade mittels apt-get upgrade
durch, bleiben libc6 und die anderen betroffenen Pakete unberührt, bis es entweder in diesem Zweig eine neuere Version als im Unstable-Zweig gibt (unwahrscheinlich) oder wenn manuell nochmals die Quellen gewechselt worden sind und ein Paket mit einer neueren Version vorhanden ist.