Debian Upgrade woody -> sarge

Dass ich Debian gut leiden kann, ist ja bekannt, v.a. die Upgrades sind in der Vergangenheit immer sehr gut gelaufen. Gestern habe ich dann mal den 1. Server von woody (Debian 3.0) auf sarge (3.1) aktualisiert, und auch diesmal ging alles (bis auf kleine Details) glatt.

Der betroffene Server ist ein Multi-Talent, d.h. er spielt gleichzeitig Web-, Mail- und Datenbank-Server, d.h. das Setup war eigentlich nicht ganz trivial, ausserdem war es keine reines Debian woody mehr, sondern es wurden auch Pakete aus anderen Quellen und tw. selbst erstellte Pakete verwendet. Die Konfigurationsdateien waren im Allg. nicht mal im Ansatz der Original-woody-Version ähnlich, d.h. für einen Test gerade das richtige System. Natürlich wurde vor dem Upgrade ein aktuelles Backup gemacht, sicher ist sicher. Smile

Nach kurzem Studium der offiziellen Release-Notes zum Thema Upgrade ging es dann los. Zuerst habe ich wie dort beschrieben die installierten Pakete auf Konsistenz überprüft, was kein Problem war. (man hat ja gut gewartete woody-Installationen ;))

Dann habe ich diverse externe (d.h. nicht Debian-eigene) apt-Repositories aus /etc/apt/sources.list entfernt und mit

apt-get update

die Paket-Liste aktualisiert. Danach habe ich mit dselect die Versionen der Pakete kontrolliert, die jetzt als "obsolete" gekennzeichnet waren, das sind jene Pakete die in den externen apt-Repositories vorhanden waren. Sinn und Zweck war zu überprüfen, ob die in sarge befindlichen Versionen eine höhere Versionsnummer haben, dann gibt es nämlich keine Probleme beim Update, da die installierten Pakete ersetzt werden. Bis auf php4 war das der Fall, und das konnte ich immer noch nach dem eigentlichen Upgrade "reparieren".

Nun war es Zeit, wie in den Release-Notes beschrieben, aptitude zu installieren. Das Programm hatte ich noch nie verwendet (mir reicht im Allg. apt-get und dselect), allerdings ist es für große Upgrade besser geeignet, da es die Abhängigkeiten zwischen den Paketen "sicherer" auflöst als apt-get.

Nächster Schritt war das Verändern von /etc/apt/sources.list, um die Download-URLs von woody auf sarge zu ändern. Danach mit

apt-get update

die Paket-Liste erneuert und mit

aptitude install aptitude

das Programm aptitude auf die sarge-Version aktualisiert. Dabei wurden auch schon einige andere Pakete wie libc6 in aktueller Fassung installiert, alles klappte wunderbar.

Beim nächsten Schritt, dem eigentlichen Upgrade mit

aptitude -f --with-recommends dist-upgrade

kam es dann doch zu Problemen. Zuerst wurde mir mitgeteilt, dass ca. 320MB an Paketen heruntergeladen werden müssen, was dank 100MBit-Anbindung gleich erledigt war. Beim Entpacken wurden nach einigen Dutzend Paketen dann Fehlermeldungen ausgegeben ("/usr/bin/perl: relocation error: /usr/lib/perl5/auto/Text/Iconv/Iconv.so: undefined symbol: Perl_Gthr_key_ptr") und das Upgrade blieb stecken. Ok, sowas in der Art kannte ich im Prinzip schon, das Problem ist ein Versions-Chaos der einzelnen Perl-Pakete. Wenn man google mit der Fehlermeldung füttert, bekommt man übrigens auch eine passende Antwort als erstes Suchergebnis serviert. Also, das Paket perl-base manuell heruntergeladen und mit

dpkg -i perl-base_5.8.4-8_i386.deb

installiert, und nochmal aptitude angeworfen.

Leider wurde durch den Abbruch auch die postgresql-Datenbank mitten im Upgrade unterbrochen, dadurch kamen dann auch hier Fehler, die aptitude nicht reparieren konnte. Nach manueller Installation der Pakete postgresql, postgresql-client und libpq3 war aber auch diese Hürde übersprungen.

Danach lief das Upgrade durch, immer wieder wurde ich nach Änderungen in den Konfigurationsdateien gefragt, die ich im Allg. mit "installierte Version beibehalten" beantwortet habe, nachdem ich mir kurz die Differenz angesehen habe (ist bei einem Paket-Upgrade zum Glück eine der Optionen). Bei einigen Paketen, die ich mir später nochmal genauer ansehen wollte, habe ich mir die Namen der Konfigurationsdateien einfach notiert, und da die Debian-eigenen Konfigurationen immer in Dateien mit gleichem Namen und der Endung .dpkg-dist abgelegt werden, war ein späterer Vergleich sehr einfach mit vimdiff möglich.

Zuerst habe ich allerdings mal einen prinzipiellen Funktionscheck gemacht. Webserver inkl. aller Virtuellen Hosts, Datenbanken und Mail-Server mit Viren- und Spam-Filterung liefen einwandfrei, der Zugriff auf postgresql mit phppgadmin war erst nach manueller Änderung in der phppgadmin-Konfiguration wieder möglich.

Ansonsten musste ich noch Konfigurationen, die eigentlich für Debian-fremde Versionen von Paketen geschrieben waren, teilweise bezüglich Pfadangaben usw. anpassen.

Im Prinzip aber hat das Upgrade wieder wunderbar funktioniert (obwohl potato -> woody in meiner Erinnerung noch problemloser war), es wurden keine Konfigurationen ungefragt überschrieben und der Server war nur ca. 20 Minuten nicht funktionstüchtig. In Summe also wieder mal ein großes Lob an die Debian-Entwickler. Smile