Homeserver 30: System auf die neue Version upgraden

Gestern, also am 25.04., wurde Debian 8 mit dem Namen Jessie veröffentlicht. Auf meinem Server läuft ja noch Debian 7, also Wheezy. In diesem Artikel soll es also darum gehen, das System zu upgraden.

Der Upgradeprozess ist denkbar einfach, bedarf aber mehrerer Befehle. Mir wäre es, ehrlich gesagt, lieber, wenn es nur ein einziges Programm für diesen Zweck gäbe, aber so geht es auch relativ schmerzfrei.

Wichtiger Hinweis

Es scheint so zu sein, dass das Paket netatalk nicht mehr richtig funktioniert und man es auch nicht neu installieren kann. Aus irgendwelchen Gründen scheint es in den Paketen für Jessie nicht vorhanden zu sein. Vielleicht, aber das bleibt abzuwarten, wird es noch in die Paketliste aufgenommen. Bis dahin, falls ihr die TimeMachine-Funktionalität nicht einbüßen wollt, würde ich mit dem Upgrade warten. Für mich ist das leider zu spät… 🙁

Falls es nicht dazu kommt, also dass netatalk nicht in die offiziellen Quellen aufgenommen wird, werde ich es manuell per Hand installieren. Das ist aber ein derart komplexer Prozess, dass ich dazu einen eigenen Blogeintrag machen werde, falls dies nötig sein sollte.

Vorbereitungen

Bevor ich das Upgrade einspiele, will ich erst mal dafür sorgen, dass das System auf dem neuesten Stand ist, den Wheezy anbietet. Laut der Anleitung zum Upgrade von Debian kann das später Fehler vermeiden helfen. Das kann man ganz einfach mit den folgenden Befehlen erledigen:

sudo apt-get update
sudo apt-get upgrade

Bei mir gab es nur zwei kleinere Updates. Aber weil ich ja schon viele Updates und Pakete installiert, und auch wieder entfernt habe, könnten Reste vorhanden sein, die zu Problemen führen. Diese Paketreste, Init-Scripts und Konfigurationsdateien müssen entfernt werden. Dies geht ganz einfach mit diesen beiden Befehlen:

sudo apt-get autoremove
sudo apt-get purge $(dpkg -l | awk '/^rc/ { print $2 }')

Dies entfernt nicht mehr benötigte Pakete. Dies können Pakete sein, die von anderen Paketen automatisch installiert wurden aber jetzt nicht mehr benötigt werden. Und die Überreste der Pakete, evtl. zurückgelassene Init-Scripts und Konfigurationsdateien werden damit ebenfalls entsorgt.

Da das System schon sehr lange läuft, und ich lieber auf Nummer sicher gehen möchte, starte ich den Server neu:

sudo reboot

Systemupgrade

Das eigentliche Upgrade läuft in zwei Schritten ab. Zunächst muss die Quellenliste angepasst werden, danach müssen die neuen Pakete heruntergeladen und installiert werden. Fangen wir also mit der Quellenliste an.

Quellenliste anpassen

Die Quellenliste legt fest, woher Debian seine Pakete herbekommt. Meine ist natürlich zur Zeit auf Wheezy eingestellt und sieht so aus:

# 

# deb cdrom:[Debian GNU/Linux 7.6.0 _Wheezy_ - Official amd64 NETINST Binary-1 20140712-14:09]/ wheezy main

#deb cdrom:[Debian GNU/Linux 7.6.0 _Wheezy_ - Official amd64 NETINST Binary-1 20140712-14:09]/ wheezy main

deb http://ftp.de.debian.org/debian/ wheezy main non-free contrib
deb-src http://ftp.de.debian.org/debian/ wheezy main non-free contrib

deb http://security.debian.org/ wheezy/updates main contrib non-free
deb-src http://security.debian.org/ wheezy/updates main contrib non-free

# wheezy-updates, previously known as 'volatile'
deb http://ftp.de.debian.org/debian/ wheezy-updates main contrib non-free
deb-src http://ftp.de.debian.org/debian/ wheezy-updates main contrib non-free

# Probosed Updates
deb http://ftp.de.debian.org/debian wheezy-proposed-updates main contrib non-free

Hier müssen wir jetzt einige Änderungen machen, damit Debian die Jessie-Pakete auch finden kann.

sudo nano /etc/apt/sources.list

Damit ist die Quellenliste offen und wir können sie bearbeiten.

Ihr könnt an meiner Quellenliste ganz unten zwei Abschnitte sehen, Proposed Updates und Wheezy-Updates. Diese sollen laut Anleitung vorher deaktiviert werden. Also werden vor diese Zeilen jeweils ein # gestellt.

Bei den vier Zeilen, vor denen kein # steht, muss der Release-Name Wheezy durch Jessie ersetzt werden.

Am Ende sieht meine Quellenliste dann so aus:

# 

# deb cdrom:[Debian GNU/Linux 7.6.0 _Wheezy_ - Official amd64 NETINST Binary-1 20140712-14:09]/ wheezy main

#deb cdrom:[Debian GNU/Linux 7.6.0 _Wheezy_ - Official amd64 NETINST Binary-1 20140712-14:09]/ wheezy main

deb http://ftp.de.debian.org/debian/ jessie main non-free contrib
deb-src http://ftp.de.debian.org/debian/ jessie main non-free contrib

deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free

# wheezy-updates, previously known as 'volatile'
#deb http://ftp.de.debian.org/debian/ wheezy-updates main contrib non-free
#deb-src http://ftp.de.debian.org/debian/ wheezy-updates main contrib non-free

# Probosed Updates
#deb http://ftp.de.debian.org/debian wheezy-proposed-updates main contrib non-free

Nun können wir die Quellenliste speichern und mit dem Upgrade weitermachen.

System upgraden

So, nun geht es an das eigentliche Upgrade. Aber, so sehr unterscheidet es sich gar nicht von einem normalen Systemupdate. Aber schaut selbst:

sudo apt-get update
sudo apt-get dist-upgrade

Dies aktualisiert die Paketliste und führt das Upgrade durch. Dabei werden die Updates vorhandener Pakete installiert und nicht mehr benötigte alte Pakete entfernt. Und da bei mir knapp 800 Pakete aktualisiert werden müssen, dauert das jetzt erst mal…

Während des Upgrade-Prozesses könnte es gut sein, dass ihr diverse Fragen beantworten müsst. Dies ist aber sehr davon abhängig, welche Pakete und Dienste ihr installiert habt. Daher gehe ich jetzt darauf nicht weiter ein. Nur, beobachtet den Bildschirm und beantwortet die anfallenden Fragen.

Aufräumarbeiten

Es kann durchaus sein, dass es an meinem System lag, es kann aber auch sein, dass es auch bei anderen Systemen vorkommt. So genau kenne ich Linux nicht, um das mit Sicherheit sagen zu können. Daher schildere ich mal ein paar Dinge, auf die ich während des Upgrades gestoßen bin. Es sind zum Glück nicht viele.

Die Befehle zum Pakete Aufräumen müssen nach dem Upgrade erneut eingegeben werden:

sudo apt-get autoremove
sudo apt-get purge $(dpkg -l | awk '/^rc/ { print $2 }')

Ich hatte zwar angenommen, der dist-upgrade-Prozess würde sich darum kümmern, dem war aber leider nicht so.

Ich hatte gravierende Probleme mit phpmyadmin. Hier wollte sich die Datenbank einfach nicht updaten lassen. Hier hilft, die Konfiguration abzubrechen und das Paket erneut nach dem Upgrade zu konfigurieren. Hierzu gibt man nach dem Upgradeprozess einfach folgenden Befehl ein und beantwortet danach die Fragen:

sudo dpkg-reconfigure phpmyadmin

Danach funktioniert bei mir wieder alles prima.

Anschließend, wenn alles durchgelaufen ist, muss das System neu gestartet werden:

sudo reboot

Fertig, nun läuft der Server mit Debian 8 Jessie!

Fazit

Zwar sind es für ein Systemupgrrade eine Menge kleiner Einzelschritte, aber es ist nicht wirklich kompliziert. Wie gesagt, mir wäre ein einzelnes Programm lieber, dass diese Schritte automatisch erledigt und prüft, was nötig ist und was nicht. Dennoch, alles lief problemlos und einfach.