Kapitel 4. Upgrade von Debian 5.0 (Lenny)

Inhaltsverzeichnis

4.1. Vorbereiten des Upgrades
4.1.1. Sichern aller Daten und Konfigurationsinformationen
4.1.2. Die Benutzer vorab informieren
4.1.3. Vorbereitung auf die Deaktivierung von Diensten
4.1.4. Vorbereitungen für eine Systemwiederherstellung
4.1.5. Vorbereiten einer sicheren Umgebung für das Upgrade
4.1.6. Pakete entfernen, die mit anderen kollidieren
4.2. Den Systemstatus überprüfen
4.2.1. Noch ausstehende Aktionen im Paketmanager prüfen
4.2.2. APT Pinning deaktivieren
4.2.3. Paketstatus überprüfen
4.2.4. Der Bereich für vorgeschlagene Aktualisierungen (proposed-updates)
4.2.5. Inoffizielle Quellen und Backports
4.3. Die Quellen für APT vorbereiten
4.3.1. APT-Internet-Quellen hinzufügen
4.3.2. APT-Quellen für einen lokalen Spiegel hinzufügen
4.3.3. APT-Quellen von CD-ROM oder DVD hinzufügen
4.4. Upgrades von Paketen durchführen
4.4.1. Aufzeichnung der Sitzung
4.4.2. Aktualisieren der Paketliste
4.4.3. Sicherstellen, dass genügend Speicherplatz für das Upgrade zur Verfügung steht
4.4.4. Minimales System-Upgrade
4.4.5. Upgrade von Kernel und udev
4.4.6. Upgrade des Systems
4.5. Mögliche Probleme während des Upgrades
4.5.1. Unterstützung für cryptoloop im Squeeze-Linux-Kernel nicht enthalten
4.5.2. Zu erwartende Paketentfernungen
4.5.3. Fehler beim Ausführen von aptitude oder apt-get
4.5.4. Konflikte oder Pre-Depends-Schleifen
4.5.5. Dateikonflikte
4.5.6. Konfigurationsänderungen
4.5.7. Ändern der aktuellen Sitzung auf die Konsole
4.5.8. Besondere Sorgfalt bei speziellen Paketen
4.6. Upgrade des Kernels und zugehöriger Pakete
4.6.1. Das Kernel-Metapaket installieren
4.6.2. Neuordnung der Gerätenummerierung
4.6.3. Boot timing issues (waiting for root device)
4.7. Vorbereiten auf die nächste Veröffentlichung
4.8. Missbilligte Komponenten
4.9. Veraltete Pakete
4.9.1. Dummy-Pakete

4.1. Vorbereiten des Upgrades

Wir empfehlen, dass Sie vor dem Upgrade auch die Informationen in Kapitel 5, Dinge, die Sie über Squeeze wissen sollten lesen. Das Kapitel behandelt mögliche Probleme, die mit dem Upgrade-Prozess nicht direkt zusammenhängen, aber dennoch vor dem Upgrade für Sie wichtig sein könnten.

4.1.1. Sichern aller Daten und Konfigurationsinformationen

Wir empfehlen Ihnen nachdrücklich, vor dem Upgrade Ihres Systems ein komplettes Backup durchzuführen oder zumindest alle Daten und Konfigurationsinformationen zu sichern, die Sie nicht verlieren möchten. Die Upgrade-Werkzeuge und der zugehörige Prozess sind recht zuverlässig, aber ein Versagen der Hardware während des Upgrades könnte zu einem schwer beschädigten System führen.

Am wichtigsten für das Backup sind die Inhalte von /etc, /var/lib/dpkg, /var/lib/apt/extended_states und die Ausgabe von dpkg --get-selections "*" (die Anführungszeichen sind wichtig). Falls Sie aptitude verwenden, um die Pakete auf Ihrem System zu verwalten, sollten Sie auch /var/lib/aptitude/pkgstates sichern.

Der Upgrade-Prozess ändert nichts im Verzeichnisbaum /home. Allerdings ist bekannt, dass einige Anwendungen (z.B. Teile der Mozilla-Suite und die GNOME- und KDE-Desktop-Umgebungen) existierende Benutzereinstellungen mit neuen Vorgaben überschreiben, wenn eine neue Version der Anwendung das erste Mal von einem Benutzer gestartet wird. Zur Vorsicht sollten Sie überlegen, die versteckten Dateien und Verzeichnisse (Dateien und Verzeichnisse, die mit einem Punkt beginnen, auch dotfiles genannt) in den Home-Verzeichnissen der Benutzer zu sichern. Dieses Backup könnte Ihnen dabei helfen, die alten Einstellungen wiederherzustellen. Auch sollten Sie die Benutzer des Systems darüber informieren.

Jede Paketinstallation muss mit den Rechten des Superusers ausgeführt werden, melden Sie sich daher als root an oder verwenden Sie su oder sudo, um die notwendigen Rechte zu erlangen.

Für das Upgrade gibt es ein paar Voraussetzungen; Sie sollten diese überprüfen, bevor Sie das Upgrade durchführen.

4.1.2. Die Benutzer vorab informieren

Es empfiehlt sich, alle Benutzer vor dem geplanten Upgrade zu informieren, auch wenn Benutzer, die über ssh auf Ihr System zugreifen, wenig von dem Upgrade mitbekommen sollten und es ihnen möglich sein sollte, weiterzuarbeiten.

Falls Sie zusätzliche Vorsichtsmaßnahmen ergreifen möchten, sichern Sie die Partition /home vor dem Upgrade oder hängen Sie diese mit umount aus.

Sie müssen beim Upgrade auf Squeeze auch ein Kernel-Upgrade durchführen, daher wird ein Systemneustart notwendig sein.

4.1.3. Vorbereitung auf die Deaktivierung von Diensten

Es gibt möglicherweise vom System angebotene Dienste, die Paketen, für die ein Upgrade ansteht, zugeordnet sind. Falls das der Fall ist, beachten Sie bitte, dass diese Dienste während des Upgrades gestoppt werden, wenn die ihnen zugeordneten Pakete ersetzt und konfiguriert werden. Während dieser Zeit werden diese Dienste nicht verfügbar sein.

Die exakte Dauer, für die die Dienste abgeschaltet sind, variiert abhängig von der Anzahl der Pakete, die im System aktualisiert werden und enthält auch die Zeit, die der Systemadministrator benötigt, um Konfigurationsfragen von verschiedenen Paket-Upgrades zu beantworten (falls solche auftauchen). Beachten Sie, dass eine hohe Wahrscheinlichkeit für die Nichtverfügbarkeit von Diensten über eine erhebliche Zeitdauer besteht, wenn der Upgrade-Prozess unbeaufsichtigt läuft und das System eine Bedienereingabe während des Prozesses erfordert[4].

Falls das System, welches Sie aktualisieren, kritische Dienste für Ihre Benutzer oder für das Netzwerk bereitstellt[5], können Sie die Zeit, während der der Dienst abgeschaltet ist, reduzieren, indem Sie ein minimales System-Upgrade durchführen (wie in Abschnitt 4.4.4, „Minimales System-Upgrade“ beschrieben), gefolgt von einem Kernel-Upgrade und einem Reboot (siehe Abschnitt 4.4.5, „Upgrade von Kernel und udev“) und schließlich dem Upgrade der Pakete, denen Ihre kritischen Dienste zugeordnet sind. Wenn Sie das Upgrade dieser Pakete so vor dem eigentlichen vollständigen Upgrade durchführen (siehe Abschnitt 4.4.6, „Upgrade des Systems“), stellen Sie auf diese Weise sicher, dass die kritischen Dienste während des ganzen vollständigen Upgrades laufen und verfügbar sind, so dass der Zeitraum, während dem die Dienste abgeschaltet sind, insgesamt reduziert ist.

4.1.4. Vorbereitungen für eine Systemwiederherstellung

Aufgrund der vielen Änderungen im Kernel zwischen Lenny und Squeeze im Hinblick auf Treiber, Hardware-Erkennung und Benennung bzw. Sortierung von Gerätedateien besteht ein reales Risiko, dass beim Systemneustart nach dem Upgrade Probleme auftauchen. Eine ganze Reihe von bekannten, möglichen Problemen sind in diesem und den nächsten Kapiteln dieser Veröffentlichungshinweise dokumentiert.

Aus diesem Grund ist es sinnvoll, sicherzustellen, dass Sie die Möglichkeit haben, Ihr System wieder zum Laufen zu bringen, falls der Start fehlschlagen sollte oder (bei fernverwalteten Systemen) der Aufbau der Netzwerkverbindung nicht erfolgreich sein sollte.

Falls Sie das Upgrade aus der Ferne über eine ssh-Verbindung durchführen, wird dringend empfohlen, dass Sie die nötigen Vorkehrungen treffen, um den Server über eine serielle Terminalverbindung aus der Ferne erreichen zu können. Es besteht die Möglichkeit, dass nach dem Kernel-Upgrade und anschließendem Neustart einige Geräte andere Namen bekommen (wie in Abschnitt 4.6.2, „Neuordnung der Gerätenummerierung“ beschrieben) und Sie die Systemkonfiguration über eine lokale Konsole korrigieren müssen. Auch könnte es sein, dass Sie das System über eine lokale Konsole wiederherstellen müssen, wenn es in der Mitte des Upgrade-Prozesses versehentlich neu gebootet wird.

Am naheliegendsten ist es in einem solchen Fall, zu versuchen, das System mit Ihrem alten Kernel zu starten. Aus verschiedenen Gründen, die an anderer Stelle in diesem Dokument beschrieben sind, kann allerdings nicht garantiert werden, dass dies funktioniert.

Falls dies fehlschlägt, benötigen Sie eine alternative Möglichkeit, Ihr System zu starten und zu reparieren. Eine Möglichkeit ist, ein spezielles Rettungs-Image oder eine Linux-Live-CD zu verwenden. Nachdem Sie davon gebootet haben, sollten Sie die Wurzel Ihres Dateisystems (/) einhängen und ein chroot darauf ausführen, um das Problem zu untersuchen und zu beheben.

Eine andere von uns empfohlene Option ist die Verwendung des Rettungsmodus des Squeeze-Debian-Installers. Der Vorteil der Verwendung des Installers besteht darin, dass Sie aus den vielen Installationsmethoden diejenige aussuchen können, die am besten für Sie passt. Für weitere Informationen lesen Sie bitte den Abschnitt Ein kaputtes System reparieren in Kapitel 8 der Installations-Anleitung und die FAQ des Debian-Installers.

4.1.4.1. Shell zur Fehleranalyse während des Bootens mit Initrd

Die initramfs-tools integrieren eine Shell zur Fehleranalyse (Debug-Shell)[6] in den von ihnen erzeugten Initrds. Falls die Initrd beispielsweise nicht in der Lage ist, die Wurzel Ihres Dateisystems (/) einzuhängen, wird Ihnen diese Debug-Shell präsentiert, in der die grundlegenden Befehle vorhanden sind, um das Problem zu ermitteln und möglicherweise zu beheben.

Folgende wesentliche Dinge sollten Sie prüfen: Vorhandensein der richtigen Gerätedateien in /dev, welche Module geladen sind (cat /proc/modules) und Fehler beim Laden von Treibern in der Ausgabe von dmesg. Die Ausgabe von dmesg wird Ihnen auch zeigen, welche Gerätedateien welchen Festplatten zugeordnet wurden; Sie sollten das mit der Ausgabe von echo $ROOT vergleichen, um sicherzustellen, dass die Wurzel des Dateisystems (/) auf dem erwarteten Gerät liegt.

Falls Sie das Problem beheben können, geben Sie exit ein, um die Debug-Shell zu beenden und mit dem Boot-Vorgang an der Fehlerstelle fortzufahren. Natürlich müssen Sie auch das zu Grunde liegende Problem beheben und die Initrd neu erzeugen, damit der Systemstart nicht beim nächsten Mal wieder fehlschlägt.

4.1.5. Vorbereiten einer sicheren Umgebung für das Upgrade

Das Distributions-Upgrade sollte entweder lokal von einer virtuellen Konsole im Textmodus (oder von einem direkt angebundenen seriellen Terminal) oder aus der Ferne über eine ssh-Verbindung erfolgen.

[Wichtig]Wichtig

Wenn Sie VPN-Dienste (wie zum Beispiel tinc) verwenden, könnten diese während des Upgrades unter Umständen eine Zeit lang nicht verfügbar sein. Bitte lesen Sie Abschnitt 4.1.3, „Vorbereitung auf die Deaktivierung von Diensten“.

Für zusätzliche Sicherheit sollten Sie beim Upgrade aus der Ferne den Upgrade-Prozess in einer virtuellen Konsole des Programms screen durchführen, da damit bei möglichen Verbindungsabbrüchen die Verbindung wieder sicher hergestellt werden kann und der Upgrade-Prozess somit nicht fehlschlägt.

[Wichtig]Wichtig

Sie sollten das Upgrade nicht mit telnet, rlogin, rsh durchführen bzw. bei lokalen Upgrades nicht in einer X-Sitzung, die von xdm, gdm oder kdm verwaltet wird. Da diese Dienste während des Upgrades möglicherweise beendet werden, könnte dies dazu führen, dass auf das System kein Zugriff mehr möglich ist und somit das Upgrade nicht fertiggestellt werden kann. Von der Nutzung der GNOME-Applikation update-manager für Upgrades auf neue Veröffentlichungen wird dringend abgeraten, da dieses Programm darauf angewiesen ist, dass die Desktop-Sitzung währendddessen nicht abgebrochen wird.

4.1.6. Pakete entfernen, die mit anderen kollidieren

Aufgrund des Fehlers #512951 muss das splashy-Paket vor dem Upgrade vollständig entfernt werden (inklusive der Konfigurationsdateien):

	# apt-get purge splashy

4.2. Den Systemstatus überprüfen

Der in diesem Kapitel beschriebene Upgrade-Prozess geht davon aus, dass das zu aktualisierende System ein reines Lenny-System ohne Softwarepakete Dritter ist. Um den Upgrade-Prozess möglichst zuverlässig zu gestalten, sollten Sie überlegen, eventuell installierte Softwarepakete Dritter vor Beginn des Upgrades von Ihrem System zu entfernen.

Direkte Upgrades von Debian-Veröffentlichungen vor Version 5.0 (Lenny) werden nicht unterstützt. Bitte befolgen Sie die Anweisungen in den Hinweisen zur Debian GNU/Linux-Veröffentlichung Version 5.0, um zunächst ein Upgrade auf 5.0 durchzuführen.

Diese Anleitung geht davon aus, dass Ihr System auf die neueste Zwischenveröffentlichung von Lenny aktualisiert wurde. Falls dies nicht der Fall sein sollte oder Sie sich unsicher sind, folgen Sie den Anweisungen in Abschnitt A.1, „Upgrades in Ihrem Lenny-System“.

4.2.1. Noch ausstehende Aktionen im Paketmanager prüfen

Manchmal führt die Verwendung von apt-get statt aptitude für die Paketinstallation dazu, dass aptitude ein Paket für unbenutzt hält und es zur Entfernung einplant. Grundsätzlich sollten Sie sicherstellen, dass Ihr System vollständig aktuell und sauber ist, bevor Sie mit dem Upgrade fortfahren.

Deshalb sollten Sie kontrollieren, ob noch ausstehende Aktionen im Paketmanager aptitude vorhanden sind. Falls ein Paket im Paketmanager zum Entfernen oder Aktualisieren vorgemerkt ist, könnte dies den Upgrade-Prozess negativ beeinflussen. Beachten Sie, dass Sie eine solche Situation nur korrigieren können, falls Ihre sources.list noch auf lenny und nicht auf stable oder squeeze verweist; siehe dazu Abschnitt A.2, „Überprüfen Ihrer Paketquellen“.

Dann sollten Sie aptitude im visuellen Modus starten und g drücken, um diese Begutachtung zu beginnen. Falls irgendwelche Aktionen angezeigt werden, sollten Sie diese kontrollieren und entweder rückgängig machen/beheben oder die empfohlenen Vorgänge ausführen. Sind keine Aktionen vorgesehen, wird folgende Nachricht angezeigt: Es wurden keine Pakete zum Installieren, Entfernen oder Aktualisieren ausgewählt..

4.2.2. APT Pinning deaktivieren

Falls Sie APT so konfiguriert haben, dass bestimmte Pakete aus einer anderen Debian-Suite als Stable (z.B. aus Testing) installiert werden (Pinning), müssen Sie unter Umständen Ihre APT-Pinning-Konfiguration (in /etc/apt/preferences gespeichert) ändern, um das Upgrade der Pakete aus der neuen Stable-Veröffentlichung zu erlauben. Weitere Informationen zu APT Pinning finden Sie in apt_preferences(5).

4.2.3. Paketstatus überprüfen

Unabhängig von der Upgrade-Methode wird empfohlen, dass Sie zuerst überprüfen, ob alle Pakete in einem Status sind, der zum Upgrade geeignet ist. Der folgende Befehl wird Ihnen alle Pakete anzeigen, die im Status halb-installiert oder Konfiguration-fehlgeschlagen sind, und solche mit Fehler-Status:

# dpkg --audit

Sie sollten auch den Status aller Pakete Ihres Systems mittels dselect, aptitude oder Befehlen der folgenden Form überprüfen:

# dpkg -l | pager

oder

# dpkg --get-selections "*" > ~/curr-pkgs.txt

Es ist erstrebenswert, alle hold-Markierungen (halten; Markierung, dass ein Paket in dem Zustand belassen werden soll, in dem es ist; es würde nicht aktualisiert) vor dem Upgrade zu entfernen. Wenn irgendein Paket, das für das Upgrade unverzichtbar ist, auf hold steht, schlägt das Upgrade fehl.

Beachten Sie, dass aptitude verglichen mit apt-get oder dselect eine andere Methode verwendet, um Pakete als auf hold gesetzt zu registrieren. Sie können Pakete, für die die hold-Markierung gesetzt ist, mit aptitude identifizieren, indem Sie diesen Befehl verwenden:

# aptitude search "~ahold" 

Um Pakete, die für apt-get auf hold gesetzt worden waren, zu identifizieren, sollten Sie dies verwenden:

# dpkg --get-selections | grep hold

Falls Sie ein Paket lokal verändert und neu kompiliert haben, und ihm dabei weder einen anderen Namen gegeben noch eine Epoche in die Versionsnummer eingefügt haben, müssen Sie es auf hold setzen, um zu verhindern, dass ein Upgrade für dieses Paket durchgeführt und es damit überschrieben wird.

Der hold-Paketstatus für apt-get kann mit folgenden Befehlen geändert werden: hold-Status setzen:

# echo package_name hold | dpkg --set-selections

hold-Status löschen: ersetzen Sie hold durch install.

Falls etwas korrigiert werden muss, sorgen Sie am besten dafür, dass sources.list noch auf lenny verweist, wie dies in Abschnitt A.2, „Überprüfen Ihrer Paketquellen“ erklärt ist.

4.2.4. Der Bereich für vorgeschlagene Aktualisierungen (proposed-updates)

Wenn Sie proposed-updates in Ihrer /etc/apt/sources.list-Datei aufgeführt haben, sollten Sie das entfernen, bevor Sie versuchen, ein Upgrade Ihres Systems durchzuführen. Dies ist eine Vorsichtsmaßnahme, um die Zahl möglicher Konflikte zu reduzieren.

4.2.5. Inoffizielle Quellen und Backports

Falls auf Ihrem System Debian-fremde Pakete installiert sind, sollten Sie wissen, dass diese während des Upgrades aufgrund von Konflikten in den Abhängigkeiten entfernt werden könnten. Falls diese Pakete installiert wurden, indem ein zusätzliches Paketarchiv in Ihrer /etc/apt/sources.list hinzugefügt wurde, sollten Sie überprüfen, ob das Archiv auch für Squeeze übersetzte Pakete anbietet und die Quellzeile gleichzeitig mit der Quellzeile für die Debian-Pakete ändern.

Einige Benutzer haben inoffizielle rückportierte neuere Versionen von Paketen aus Debian auf ihrem Lenny-System installiert. Diese Pakete werden wahrscheinlich während des Upgrades zu Problemen führen, da Dateikonflikte auftreten können[7]. Abschnitt 4.5, „Mögliche Probleme während des Upgrades“ enthält Informationen, wie mit Dateikonflikten, falls diese auftreten, umgegangen werden kann.

4.3. Die Quellen für APT vorbereiten

Bevor Sie das Upgrade beginnen, müssen Sie die apt-Konfigurationsdatei für die Paketlisten /etc/apt/sources.list einrichten.

apt wird alle Pakete berücksichtigen, die über eine deb-Zeile gefunden werden können und das Paket mit der höchsten Versionsnummer installieren, wobei die Priorität auf die erste Zeile in der Datei gelegt wird (das ermöglicht es, dass bei der Existenz mehrerer Quellen typischerweise zuerst die Festplatte, dann CD-ROMs und schließlich HTTP/FTP-Archivspiegel angegeben werden).

Eine Veröffentlichung kann sowohl mit ihrem Codenamen (z.B. lenny, squeeze) als auch mit ihrem Statusnamen (d.h. oldstable, stable, testing, unstable) benannt werden. Die Verwendung des Codenamens hat den Vorteil, dass Sie nie von neueren Veröffentlichungen überrascht werden, und wird daher hier verwandt. Natürlich bedeutet dies, dass Sie selbst auf Veröffentlichungsankündigungen achten müssen. Falls Sie stattdessen den Statusnamen verwenden, werden Sie nur eine große Menge an Aktualisierungen für Pakete sehen, sobald eine Veröffentlichung stattgefunden hat.

4.3.1. APT-Internet-Quellen hinzufügen

Die Konfiguration ist standardmäßig so eingerichtet, dass Sie von den Haupt-Internetservern von Debian installieren, aber Sie können /etc/apt/sources.list bearbeiten, um andere Spiegel zu verwenden, bevorzugt solche, die netztopologisch nahe bei Ihnen liegen.

Adressen von HTTP- und FTP-Spiegeln können Sie auf http://www.debian.org/distrib/ftplist finden (suchen Sie nach dem Abschnitt Liste von Debian-Spiegeln). HTTP-Spiegel sind im Allgemeinen schneller als FTP-Spiegel.

Im Beispiel nehmen wir an, dass der für Sie am nächsten liegende Spiegel http://mirrors.kernel.org sei. Wenn Sie sich den Spiegel mit einem Web-Browser oder einem FTP-Programm anschauen, werden Sie bemerken, dass die Hauptverzeichnisse wie folgt organisiert sind:

http://mirrors.kernel.org/debian/dists/squeeze/main/binary-armel/...
http://mirrors.kernel.org/debian/dists/squeeze/contrib/binary-armel/...

Um diesen Spiegel mit apt zu verwenden, müssen Sie die folgende Zeile zu Ihrer Datei sources.list hinzufügen:

deb http://mirrors.kernel.org/debian squeeze main contrib

Beachten Sie, dass das dists implizit hinzugefügt wird und dass Argumente nach dem Namen der Veröffentlichung verwendet werden, um den Pfad aufzufächern, so dass er in mehrere unterschiedliche Verzeichnisse verweist.

Nachdem Sie neue Quellen hinzugefügt haben, deaktivieren Sie die bisher existierenden deb-Zeilen in der Datei sources.list, indem Sie eine Raute (#) am Zeilenanfang einfügen.

4.3.2. APT-Quellen für einen lokalen Spiegel hinzufügen

Statt HTTP- oder FTP-Paketspiegel zu verwenden, können Sie auch Ihre /etc/apt/sources.list anpassen, um einen Spiegel auf einer lokalen Platte zu verwenden (die möglicherweise über NFS eingehängt ist).

Beispielsweise könnte Ihr Paketspiegel unter /var/ftp/debian/ liegen und über die folgenden Hauptverzeichnisse verfügen:

/var/ftp/debian/dists/squeeze/main/binary-armel/...
/var/ftp/debian/dists/squeeze/contrib/binary-armel/...

Um diesen Spiegel mit apt zu verwenden, fügen Sie die folgende Zeile zu Ihrer Datei sources.list hinzu:

deb file:/var/ftp/debian squeeze main contrib

Beachten Sie, dass das dists implizit hinzugefügt wird und dass Argumente nach dem Namen der Veröffentlichung verwendet werden, um den Pfad aufzufächern, so dass er in mehrere unterschiedliche Verzeichnisse verweist.

Nachdem Sie neue Quellen hinzugefügt haben, deaktivieren Sie die bisher existierenden deb-Zeilen in der Datei sources.list, indem Sie eine Raute (#) am Zeilenanfang einfügen.

4.3.3. APT-Quellen von CD-ROM oder DVD hinzufügen

Falls Sie ausschließlich die CDs/DVDs verwenden möchten, kommentieren Sie die existierenden deb-Zeilen in der /etc/apt/sources.list aus, indem Sie am Zeilenanfang eine Raute (#) einfügen.

Stellen Sie sicher, dass es eine Zeile in /etc/fstab gibt, die das Einhängen Ihres CD-ROM-Laufwerks unter /cdrom ermöglicht (der Einhängepunkt muss für apt-cdrom exakt /cdrom sein). Falls Ihr CD-ROM-Laufwerk beispielsweise /dev/hdc ist, sollte /etc/fstab eine Zeile der folgenden Art enthalten:

/dev/hdc /cdrom auto defaults,noauto,ro 0 0

Beachten Sie, dass es keine Leerzeichen zwischen den Wörtern defaults,noauto,ro im vierten Feld geben darf.

Um zu überprüfen, ob dies funktioniert, legen Sie eine CD/DVD ein und versuchen Sie, Folgendes auszuführen:

# mount /cdrom    # dies wird die CD/DVD am Einhaengepunkt einhaengen
# ls -alF /cdrom  # dies sollte Ihnen das Wurzelverzeichnis der CD/DVD anzeigen
# umount /cdrom   # dies wird die Einhaengung der CD/DVD wieder aufheben

Führen Sie als nächstes für jede Binär-CD/-DVD, die Sie von Debian haben, den Befehl

# apt-cdrom add

aus, um die Daten der CD/DVD zu der APT-Datenbank hinzuzufügen.

4.4. Upgrades von Paketen durchführen

Die empfohlene Art, ein Upgrade von vorherigen Debian-Veröffentlichungen durchzuführen, ist die Verwendung des Paketverwaltungswerkzeuges apt-get. In früheren Veröffentlichungen wurde aptitude für diesen Zweck empfohlen, jedoch bieten neueste Versionen von apt-get vergleichbare Funktionalitäten und haben zusätzlich gezeigt, dass sie die gewünschten Upgrade-Resultate mit höherer Beständigkeit erreichen.

Vergessen Sie nicht, alle benötigten Partitionen (insbesondere die /- und die /usr-Partition) zum Schreiben einzuhängen. Verwenden Sie hierzu einen Befehl der Art:

# mount -o remount,rw /mountpoint

Als nächstes sollten Sie noch einmal überprüfen, dass die Quelleinträge für APT (in /etc/apt/sources.list) sich entweder auf squeeze oder auf stable beziehen. Es sollte keine Quelleinträge geben, die auf lenny verweisen.

[Anmerkung]Anmerkung

Quellzeilen für eine CD-ROM könnten sich eventuell auf unstable beziehen; dies mag zwar verwirrend erscheinen, Sie sollten dies jedoch nicht ändern.

4.4.1. Aufzeichnung der Sitzung

Es wird nachdrücklich empfohlen, dass Sie das Programm /usr/bin/script verwenden, um einen Mitschnitt der Upgrade-Sitzung zu erstellen. Falls dann ein Problem auftritt, haben Sie ein exaktes Protokoll der Ereignisse und können - falls notwendig - genaue Informationen in einem Fehlerbericht angeben. Um die Aufzeichnung zu beginnen, geben Sie

# script -t 2>~/upgrade-squeezestep.time -a ~/upgrade-squeezestep.script

oder vergleichbares ein. Falls Sie das Script erneut starten müssen (z.B. weil Sie das System neu starten mussten), verwenden Sie einen anderen Wert für step, um darzustellen, welchen Schritt des Upgrades Sie gerade aufzeichnen. Legen Sie die Mitschnittdatei nicht in einem temporären Verzeichnis wie /tmp oder /var/tmp ab (Dateien in diesen Verzeichnissen könnten während des Upgrades oder eines Systemstarts gelöscht werden).

Der Mitschnitt erlaubt es Ihnen auch, die Informationen durchzuschauen, die bereits aus dem Bildschirm herausgelaufen sind. Wenn Sie sich auf der System-Konsole befinden, schalten Sie auf VT2 um (mit Alt+F2) und verwenden Sie nach dem Anmelden less -R ~root/upgrade-squeeze.script, um die Datei durchzuschauen.

Nach Beendigung des Upgrades können Sie script beenden, indem Sie exit an der Eingabeaufforderung eingeben.

Falls Sie den Schalter -t für script verwendet haben, können Sie das Programm scriptreplay zum Abspielen der gesamten Sitzung verwenden:

# scriptreplay ~/upgrade-squeeze.time ~/upgrade-squeeze.script

4.4.2. Aktualisieren der Paketliste

Zuerst muss die Liste der verfügbaren Pakete für die neue Veröffentlichung abgerufen werden. Dies erledigen Sie mit dem folgenden Befehl:

# apt-get update

4.4.3. Sicherstellen, dass genügend Speicherplatz für das Upgrade zur Verfügung steht

Sie müssen vor dem Upgrade sicherstellen, dass Sie genügend Platz auf Ihrer Festplatte verfügbar haben, wenn Sie wie in Abschnitt 4.4.6, „Upgrade des Systems“ beschrieben ein Upgrade des kompletten Systems starten. Als erstes wird jedes Paket, das zur Installation benötigt wird und über das Netz heruntergeladen werden muss, in /var/cache/apt/archives gespeichert (bzw. während des Downloads im Unterverzeichnis partial/). Sie müssen also sicherstellen, dass Sie auf der Partition, die /var/ beinhaltet, genügend Platz haben, um temporär alle Pakete, die installiert werden sollen, herunterladen zu können. Nach dem Download benötigen Sie möglicherweise mehr Platz in anderen Partitionen, sowohl um die zu aktualisierenden Pakete zu installieren (diese könnten größere Binärdateien oder zusätzliche Daten enthalten) als auch um Pakete zu installieren, die neu hinzukommen. Falls Sie nicht genügend freien Speicherplatz bereithalten, bleibt vielleicht ein System mit einem unvollständigen Upgrade zurück, das unter Umständen nur schwer wiederbelebt werden kann.

apt-get kann Ihnen detaillierte Informationen über den Festplattenplatz anzeigen, der für die Installation benötigt wird. Bevor Sie das Upgrade ausführen, können Sie sich die ungefähren Werte durch folgenden Befehl anschauen:

# apt-get -o APT::Get::Trivial-Only=true dist-upgrade
[ ... ]
XXX aktualisiert, XXX neu installiert, XXX zu entfernen und XXX nicht aktualisiert.
Es muessen xxx.xMB an Archiven heruntergeladen werden. 
Nach dieser Operation werden xxxMB Plattenplatz zusaetzlich benutzt.
[Anmerkung]Anmerkung

Das Ausführen dieses Befehls zu Beginn des Upgrade-Prozesses könnte einen Fehler ausgeben (die Gründe sind in den folgenden Abschnitten beschrieben). In diesem Fall müssen Sie mit der Ausführung des Befehls warten, bis Sie das minimale System-Upgrade (wie in Abschnitt 4.4.4, „Minimales System-Upgrade“ beschrieben) und ein Upgrade Ihres Kernels durchgeführt haben, bevor Sie diesen Befehl ausführen können, um den Platzbedarf abzuschätzen.

Falls Sie nicht genügend Platz für das Upgrade haben, wird apt-get Sie mit einer Meldung wie dieser warnen:

F: Sie haben nicht genug Platz in /var/cache/apt/archives/.

In dieser Situation müssen Sie vorher manuell Platz schaffen. Sie können:

  • Pakete löschen, die früher schon einmal für eine Installation heruntergeladen worden sind (in /var/cache/apt/archives). Durch das Leeren des Paket-Caches mit apt-get clean werden alle bereits heruntergeladenen Paketdateien gelöscht.

  • Vergessene Pakete entfernen. Falls Sie das Paket popularity-contest installiert haben, können Sie popcon-largest-unused verwenden, um die Pakete aufzulisten, die Sie nicht verwenden und die dabei den meisten Platz belegen. Sie können auch deborphan oder debfoster benutzen, um veraltete Pakete aufzuspüren (siehe Abschnitt 4.9, „Veraltete Pakete“). Alternativ dazu können Sie auch aptitude im visuellen Modus starten und alle veralteten Pakete unter Veraltete und selbst erstellte Pakete finden.

  • Pakete entfernen, die zu viel Speicherplatz belegen und die derzeit nicht benötigt werden (Sie können sie nach Abschluss des Upgrades jederzeit wieder installieren). Sie können die Pakete, die den meisten Plattenplatz beanspruchen, mit dpigs (verfügbar in dem Paket debian-goodies) oder mit wajig (führen Sie wajig size aus) auflisten.

    Sie können sich mit aptitude die Pakete auflisten lassen, die den meisten Festplattenplatz in Anspruch nehmen. Starten Sie dazu aptitude im visuellen Modus, wählen Sie AnsichtenNeue flache Paketansicht, drücken Sie l und geben Sie ~i ein, drücken Sie dann S und geben Sie ~installsize ein. Nun wird Ihnen eine schöne Liste angezeigt, mit der Sie arbeiten können.

  • Entfernen von Übersetzungen und Standortanpassungsdateien aus dem System, falls diese nicht benötigt werden. Sie können das Paket localepurge installieren und so konfigurieren, dass nur einige ausgewählte Standortdateien (locales) im System verbleiben. Dies wird den unter /usr/share/locale benötigten Plattenplatz reduzieren.

  • System-Protokolldateien (die unter /var/log/ liegen) vorübergehend auf ein anderes System verschieben oder dauerhaft löschen.

  • Ein temporäres /var/cache/apt/archives verwenden: Sie können vorübergehend ein Cache-Verzeichnis auf einem anderen Dateisystem benutzen (USB-Speicher, provisorisch angeschlossene Festplatte, ein bereits anderweitig benutztes Dateisystem ...)

    [Anmerkung]Anmerkung

    Benutzen Sie jedoch kein per NFS eingehängtes Netzlaufwerk, da die Netzwerkverbindung während des Upgrades unterbrochen werden könnte.

    Falls Sie zum Beispiel eine USB-Festplatte haben, die in /media/usbkey eingehängt ist:

    1. entfernen Sie die Pakete, die unter Umständen bereits früher für Installationen heruntergeladen worden sind:

      # apt-get clean

    2. kopieren Sie das Verzeichnis /var/cache/apt/archives auf die USB-Festplatte:

      # cp -ax /var/cache/apt/archives /media/usbkey/

    3. hängen Sie das temporäre Cache-Verzeichnis in dem vorhandenen ein:

      # mount --bind /media/usbkey/archives /var/cache/apt/archives

    4. stellen Sie nach dem Upgrade das ursprüngliche /var/cache/apt/archives-Verzeichnis wieder her:

      # umount /media/usbkey/archives

    5. entfernen Sie das verbleibende /media/usbkey/archives.

    Sie können das temporäre Cache-Verzeichnis auf jedem Dateisystem erstellen, das auf Ihrem System eingehängt ist.

  • Führen Sie ein minimales Upgrade (siehe Abschnitt 4.4.4, „Minimales System-Upgrade“) oder andere Teil-Upgrades des Systems durch, gefolgt von einem vollständigen Upgrade. Dies schafft die Möglichkeit, das System stückweise zu aktualisieren und erlaubt es Ihnen, den Paket-Cache vor dem vollständigen Upgrade nochmals zu leeren.

Beachten Sie, dass es ratsam ist, die sources.list zurück auf lenny zu ändern (wie in Abschnitt A.2, „Überprüfen Ihrer Paketquellen“ beschrieben), um Pakete sicher entfernen zu können.

4.4.4. Minimales System-Upgrade

In einigen Fällen wird durch das direkte Ausführen des vollständigen Upgrades (wie unten beschrieben) eine große Anzahl von Paketen entfernt, die Sie eigentlich behalten möchten. Wir empfehlen deshalb einen zweiteiligen Upgrade-Prozess: als erstes ein minimales Upgrade, um diese Konflikte zu umgehen und anschließend ein vollständiges Upgrade wie in Abschnitt 4.4.6, „Upgrade des Systems“ beschrieben.

Führen Sie dazu dies aus:

# apt-get upgrade

Dies hat den Effekt, dass für diejenigen Pakete ein Upgrade durchgeführt wird, für die dies möglich ist, ohne dass irgendwelche anderen Pakete entfernt oder installiert werden müssen.

Solch ein minimales System-Upgrade kann auch nützlich sein, wenn auf dem System freier Festplattenplatz knapp ist und aus diesem Grund ein komplettes Upgrade nicht durchgeführt werden kann.

4.4.5. Upgrade von Kernel und udev

Die udev-Version in Squeeze erfordert einen Kernel der Version 2.6.26 oder neuer, bei dem die Option CONFIG_SYSFS_DEPRECATED deaktiviert und CONFIG_INOTIFY_USER sowie CONFIG_SIGNALFD aktiviert sind. Da die Standard-Debian-Kernel in Lenny (Version 2.6.26) die Option CONFIG_SYSFS_DEPRECATED aktiviert haben und die udev-Version aus Lenny nicht alle Funktionalitäten unterstützt, die die derzeit aktuellen Kernel erwarten, muss eine besondere Sorgfalt auf das Upgrade dieser Komponenten gelegt werden, um zu vermeiden, dass das System in einen nicht-bootfähigen Zustand gerät.

Einen 2.6.26-Kernel aus Lenny zusammen mit udev aus Squeeze zu starten, könnte dazu führen, dass die Zuweisung der Namen zu den Netzwerkgeräten (-karten) fehlerhaft ist. Außerdem wird die Anwendung von bestimmten zusätzlichen Rechten bei blockorientierten Geräten fehlschlagen (wie zum Beispiel der Zugriff durch die Gruppe disk). Die Software selbst wird scheinbar funktionieren, aber einige Regeln (zum Beispiel netzwerk-basierende Regeln) werden nicht korrekt geladen. Es wird daher dringendst empfohlen, dass Sie den Kernel an dieser Stelle separat aktualisieren, um sicherzustellen, dass ein kompatibler Kernel verfügbar ist, bevor Sie das Upgrade für udev durchführen.

Um mit dem Kernel-Upgrade fortzufahren, führen Sie dies aus:

# apt-get install linux-image-2.6-flavor

Abschnitt 4.6.1, „Das Kernel-Metapaket installieren“ hilft Ihnen herauszufinden, welche Variante (flavor) des Kernel-Pakets Sie installieren sollten.

Das Verschieben von einigen Firmware-Dateien in separate Pakete des non-free-Bereichs unserer Archive (siehe Abschnitt 2.2.2, „Firmware in den non-free-Bereich verschoben“) bedeutet, dass es nötig sein könnte, nach dem Upgrade auf den neuen Kernel zusätzliche Firmware-Pakete zu installieren, um einige Hardware zu unterstützen. Einige Hardware, die vor dem Upgrade korrekt funktionierte, könnte nach dem Upgrade des Kernels nicht mehr funktionieren. Achten Sie auf Warnmeldungen bei der Installation von Kernel oder Scripten zur initramfs-Erzeugung und stellen Sie sicher, dass benötigte Firmware-Pakete installiert werden.

Direkt nach dem Upgrade des Kernels sollten Sie ebenfalls das neue udev installieren, um die Risiken anderer Inkompatibilitäten (verursacht durch die Verwendung des alten udev mit einem neuen Kernel) zu minimieren[8]. Dazu führen Sie dies aus:

# apt-get install udev

Sie sollten das System neu starten [9], sobald Sie sowohl den Kernel wie auch udev aktualisiert haben.

4.4.6. Upgrade des Systems

Wenn Sie die vorherigen Schritte hinter sich gebracht haben, Sie sind bereit für den eigentlichen Hauptteil des Upgrades. Führen Sie aus:

# apt-get dist-upgrade
[Anmerkung]Anmerkung

Für den Upgrade-Prozess früherer Veröffentlichungen wurde die Verwendung von aptitude empfohlen. Dieses Werkzeug wird für Upgrades von Lenny auf Squeeze nicht empfohlen.

Dadurch wird ein vollständiges Upgrade des Systems durchgeführt, also die Installation der neuesten verfügbaren Versionen aller Pakete und die Auflösung aller möglichen Änderungen bei den Abhängigkeiten zwischen Paketen der verschiedenen Veröffentlichungen. Falls nötig werden einige neue Pakete installiert (üblicherweise neue Bibliotheksversionen oder umbenannte Pakete) sowie veraltete Pakete entfernt, die Konflikte verursachen.

Falls Sie ein Upgrade von einem Satz CD-ROMs (oder DVDs) durchführen, werden Sie an verschiedenen Stellen des Upgrade-Prozesses aufgefordert, bestimmte CDs einzulegen. Sie müssen eventuell ein und dieselbe CD mehrmals einlegen; dies liegt daran, dass einige Pakete mit gegenseitiger Wechselbeziehung zueinander über verschiedene CDs verteilt sind.

Neue Versionen von bereits installierten Paketen, die nicht aktualisiert werden können, ohne den Installationsstatus eines anderen Pakets zu ändern, werden in ihrer derzeitigen Version belassen (sie werden als zurückgehalten angezeigt). Dies kann aufgelöst werden, indem Sie entweder aptitude verwenden, um diese Pakete zur Installation vorzumerken, oder indem Sie apt-get -f install paketname versuchen.

4.5. Mögliche Probleme während des Upgrades

Die folgenden Abschnitte beschreiben bekannte Probleme, die während des Upgrades auf Squeeze auftreten können.

4.5.1. Unterstützung für cryptoloop im Squeeze-Linux-Kernel nicht enthalten

Die Unterstützung für cryptoloop wurde bei den in Debian 6.0 enthaltenen Linux-Kernel-Paketen verworfen. Vorhandene Installationen, die cryptoloop verwenden, müssen vor dem Upgrade auf dm-crypt umgestellt werden.

4.5.2. Zu erwartende Paketentfernungen

Der Upgrade-Prozess auf Squeeze könnte auch das Entfernen von Paketen im System bedeuten. Die exakte Liste der zu entfernenden Pakete varriert in Abhängigkeit von den Paketen, die Sie installiert haben. Diese Veröffentlichungshinweise geben grundsätzliche Hinweise über diese Paketentfernungen, falls Sie aber Zweifel haben, wird empfohlen, dass Sie die Liste zu entfernender Pakete, die von den einzelnen Upgrade-Methoden vorgeschlagen werden, kontrollieren, bevor Sie fortfahren.

Einige allgemein häufiger verwendete Pakete, von denen erwartet wird, dass Sie entfernt werden, sind: autofs (ersetzt durch autofs5), dhcp3 (ersetzt durch isc-dhcp), madwifi-source und python2.4 (ersetzt durch python2.6). Mehr Informationen über veraltete Pakete in Squeeze finden Sie in Abschnitt 4.9, „Veraltete Pakete“.

4.5.3. Fehler beim Ausführen von aptitude oder apt-get

Falls eine Operation von aptitude, apt-get oder dpkg mit der Meldung

E: Dynamic MMap ran out of room

bzw.

F: Nicht genuegend Platz fuer Dynamic MMap

fehlschlägt, dann ist der Standardwert für den Cache nicht ausreichend groß. Sie können dieses Problem lösen, indem Sie entweder Zeilen in Ihrer /etc/apt/sources.list entfernen bzw. mit einem Rautezeichen am Anfang auskommentieren oder die Größe des Caches erhöhen. Dies erledigen Sie mit der Einstellung APT::Cache-Limit in /etc/apt/apt.conf. Der folgende Befehl setzt den Cache auf einen Wert, der für dieses Upgrade passend sein sollte:

# echo 'APT::Cache-Limit "12500000";' >> /etc/apt/apt.conf

Dabei wird davon ausgegangen, dass diese Variable in der betreffenden Datei noch nicht gesetzt war.

4.5.4. Konflikte oder Pre-Depends-Schleifen

Manchmal ist es nötig, die Option APT::Force-LoopBreak in APT zu aktivieren, um die Möglichkeit zu haben, ein zwingend nötiges Paket vorübergehend entfernen zu können, falls das Problem einer Konflikt-/Pre-Depends-Schleife besteht. apt-get wird Sie über solch eine Problematik informieren und das Upgrade abbrechen. Sie setzen diese Option, indem Sie -o APT::Force-LoopBreak=1 in den apt-get-Befehl einfügen.

Es ist möglich, dass die Abhängigkeitsstruktur eines Systems so beschädigt ist, dass ein manuelles Eingreifen nötig ist. Dies erfordert üblicherweise die Verwendung von apt-get oder

# dpkg --remove paketname

um einige der beschädigten Pakete zu eliminieren, oder

# apt-get -f install
# dpkg --configure --pending

In extremen Fällen müssen Sie eventuell die Neuinstallation eines Pakets erzwingen; verwenden Sie dazu einen Befehl wie

# dpkg --install /pfad/zu/paketname.deb

4.5.5. Dateikonflikte

Dateikonflikte sollten nicht auftauchen, wenn Sie ein Upgrade auf einem reinen Lenny-System durchführen, können aber vorkommen, wenn Sie inoffizielle Backports installiert haben. Ein Dateikonflikt resultiert in einem Fehler wie:

Entpacke <irgendein-paket1> (aus <irgendein-paket1-dateiname>) ...
dpkg: Fehler beim Bearbeiten von <irgendein-paket1> (--install):
 Versuche, `<name-irgendeiner-datei>' zu ueberschreiben,
 welches auch in Paket <irgendein-paket2> ist
dpkg-deb: Unterprozess paste mit Signal (Broken pipe) getoetet
 Fehler traten auf beim Bearbeiten von:
 <irgendein-paket1>

Sie können versuchen, einen Dateikonflikt zu lösen, indem Sie zwangsweise das Paket entfernen, das in der letzten Zeile der Fehlermeldung genannt wird:

# dpkg -r --force-depends paketname

Nachdem Sie die Probleme behoben haben, sollte es möglich sein, das Upgrade fortzusetzen, indem Sie die oben beschriebenen apt-get-Befehle nochmals ausführen.

4.5.6. Konfigurationsänderungen

Während des Upgrades werden Ihnen Fragen gestellt, die die Konfiguration oder Neukonfiguration von verschiedenen Paketen betreffen. Wenn Sie gefragt werden, ob Dateien in den Verzeichnissen /etc/init.d oder die Datei /etc/manpath.config durch die Version des Paketbetreuers ersetzt werden sollen, ist es für gewöhnlich nötig, mit yes (ja) zu antworten, um die Konsistenz des Systems sicherzustellen. Sie können jederzeit zu den alten Versionen der Konfigurationsdateien zurückkehren, da diese mit der Erweiterung .dpkg-old gesichert werden.

Falls Sie sich nicht sicher sind, was Sie tun sollen, schreiben Sie den Namen des Pakets oder der Datei auf und kümmern Sie sich später darum. Sie können die Mitschnittdatei durchsuchen, um die Informationen erneut zu betrachten, die zum Zeitpunkt des Upgrades auf dem Bildschirm angezeigt wurden.

4.5.7. Ändern der aktuellen Sitzung auf die Konsole

Wenn Sie das Upgrade von der lokalen Systemkonsole aus durchführen, werden Sie vielleicht feststellen, dass in einigen Situationen die Konsole auf eine andere Ansicht umgeschaltet wird, so dass Sie den Status des Upgrade-Prozesses nicht mehr beobachten können. Zum Beispiel passiert dies auf Arbeitsplatz-Systemen, wenn gdm neu gestartet wird.

Um die Konsole wiederherzustellen, auf der der Upgrade-Prozess läuft, müssen Sie Strg+Alt+F1 betätigen, wenn Sie vom grafischen Startbildschirm zur 1. virtuellen Konsole wechseln möchten, oder Alt+F1 wenn Sie sich auf einer virtuellen Text-Konsole befinden. Ersetzen Sie dabei F1 durch die Funktionstaste, die der Konsole zugeordnet ist, auf der der Upgrade-Prozess läuft. Sie können auch Alt+Pfeiltaste-Links oder Alt+Pfeiltaste-Rechts verwenden, um zwischen den verschiedenen Textmodus-Konsolen hin- und herzuschalten.

4.5.8. Besondere Sorgfalt bei speziellen Paketen

In den meisten Fällen sollte ein Paket-Upgrade von Lenny auf Squeeze reibungslos ablaufen. Es gibt jedoch eine geringe Anzahl von Fällen, in denen ein separater Benutzereingriff erforderlich sein könnte, entweder vor oder nach dem Upgrade. Diese sind hier nach Paketen getrennt aufgeführt.

4.5.8.1. Evolution

Evolution (der Mail-Client der GNOME-Arbeitsplatz-Umgebung) wurde von Version 2.22 auf 2.30 aktualisiert. Dies zieht Änderungen am verwendeten Speicherformat nach sich und birgt daher das Risiko eines Datenverlusts, wenn das Upgrade durchgeführt wird, während evolution noch läuft. Das Beenden der Anwendung selbst könnte unter Umständen nicht ausreichend sein, da verschiedene zugehörige Komponenten im Hintergrund eventuell noch weiterlaufen. Um jegliche potentielle Probleme zu vermeiden, wird empfohlen, dass Sie Ihre komplette Arbeitsplatz-Umgebung beenden, bevor Sie mit dem Upgrade auf Squeeze beginnen.

Als Teil des Upgrade-Prozesses wird evolution überprüfen, ob irgendwelche zugehörigen Prozesse noch laufen und in dem Fall empfehlen, diese zu beenden. Es wird dann erneut überprüft, ob noch entsprechende Prozesse laufen; falls nötig, wird dann über einen Dialog die Möglichkeit geboten, die immer noch laufenden Prozesse abzuschießen oder das Upgrade abzubrechen und die Situation von Hand zu lösen.

4.6. Upgrade des Kernels und zugehöriger Pakete

Dieser Abschnitt beschreibt, wie Sie ein Upgrade des Kernels durchführen und weist auf potenzielle Probleme hin, die diesen Vorgang betreffen. Sie können entweder eines der von Debian angebotenen linux-image-*-Pakete installieren oder einen eigenen Kernel aus den Quellen selbst kompilieren.

Beachten Sie, dass viele der Informationen in diesem Abschnitt auf der Annahme basieren, dass Sie einen der modularen Debian-Kernel zusammen mit initramfs-tools und udev verwenden. Falls Sie sich entscheiden, einen eigenen selbst erstellten Kernel zu benutzen, benötigen Sie dabei keine Initrd, oder einige der Informationen über den Initrd-Generator sind für Sie nicht relevant, weil Sie einen anderen Initrd-Generator verwenden.

4.6.1. Das Kernel-Metapaket installieren

Wenn Sie ein Distributions-Upgrade von Lenny auf Squeeze durchführen, wird dringend empfohlen, dass Sie eines der neuen linux-image-2.6-Metapakete installieren. Dieses Paket könnte auch automatisch durch den Upgrade-Prozess installiert werden. Sie können dies verifizieren mit:

# dpkg -l "linux-image*" | grep ^ii

Falls nichts angezeigt wird, müssen Sie ein neues linux-image-Paket von Hand installieren. Eine Liste verfügbarer linux-image-2.6-Metapakete bekommen Sie mit:

# apt-cache search linux-image-2.6- | grep -v transition

Falls Sie bei der Entscheidung, welches Paket Sie wählen sollen, unsicher sind, führen Sie uname -r aus und suchen Sie nach einem Paket mit einem ähnlichen Namen. Falls die Anzeige zum Beispiel 2.6.26-2-686 ist, wird empfohlen, dass Sie linux-image-2.6-686 installieren. Sie können auch apt-cache benutzen, um eine ausführliche Beschreibung jedes Pakets zu bekommen, was Ihnen bei der Auswahl des besten Paketes helfen kann. Zum Beispiel:

# apt-cache show linux-image-2.6-686

Sie sollten dann apt-get install verwenden, um es zu installieren. Sobald dieser neue Kernel installiert ist, sollten Sie sobald wie möglich einen Neustart durchführen, um von der neuen Kernel-Version zu profitieren.

Für die Experimentierfreudigen unter Ihnen gibt es einen einfachen Weg, einen eigenen angepassten Kernel unter Debian GNU/Linux zu kompilieren. Installieren Sie das kernel-package-Paket und lesen Sie die Dokumentation in /usr/share/doc/kernel-package. Alternativ können Sie auch die Kernel-Quelltexte aus dem Paket linux-source-2.6 benutzen. Machen Sie zur Erstellung eines Kernel-Binär-Pakets von dem dep-pkg-Target Gebrauch, das in dem Makefile des Quelltextes bereitgestellt wird. Es gibt einige Unterschiede bei diesen beiden Vorgehensweisen, bitte konsultieren Sie die Dokumentation der entsprechenden Pakete.

Falls möglich, wäre es ein Vorteil, wenn Sie das Kernel-Paket separat vom Rest des Systems aktualisieren, um die Wahrscheinlichkeit eines nicht-bootfähigen Systems zu reduzieren. Beachten Sie, dass Sie dies nur nach dem minimalen System-Upgrade (siehe Abschnitt 4.4.4, „Minimales System-Upgrade“) durchführen sollten.

4.6.2. Neuordnung der Gerätenummerierung

In Lenny oder später könnte ein neuer Kernel-Mechanismus zur Hardware-Erkennung dazu führen, dass sich die Reihenfolge, in der Geräte bei jedem Booten des Systems erkannt werden, ändert. Dies kann sich auf die Vergabe der Gerätenamen auswirken. Falls Sie zum Beispiel zwei Netzwerkkarten in Ihrem System haben, die von verschiedenen Treibern bedient werden, könnten die Bezeichnungen eth0 und eth1 vertauscht werden.

Bei Netzwerkkarten kann diese Neuordnung normalerweise durch die udev-Regeln in /etc/udev/rules.d/70-persistent-net.rules vermieden werden. Da diese Regeln bereits für Lenny vorhanden waren, sollten für ein Upgrade auf Squeeze keine zusätzlichen Aktionen nötig sein, um von den Vorzügen gleichbleibender Netzwerkgerätenamen profitieren zu können.

Bei Speichergeräten können Sie diese Neuordnung möglicherweise vermeiden, indem Sie initramfs-tools benutzen und so konfigurieren, dass die Treibermodule für Speichergeräte in der gleichen Reihenfolge wie bisher geladen werden. Allerdings ist dies aufgrund weiterer Änderungen am Speicher-Subsystem (siehe Abschnitt 5.1.1, „Migration von Laufwerkstreibern vom IDE- zum PATA-Subsystem“) für gewöhnlich den Aufwand nicht wert und es wird stattdessen empfohlen, Gerätenamen zu verwenden, die garantiert dauerhaft gleichbleibend sind, wie zum Beispiel die UUID-Alias-Bezeichnungen[10] im /dev/disk/by-uuid/-Verzeichnis oder LVM-Gerätenamen in /dev/mapper/.

4.6.3. Boot timing issues (waiting for root device)

Falls eine durch initramfs-tools erstellte Initrd benutzt wird, um das System zu starten, könnte die Erzeugung von Gerätedateien durch udev zu spät stattfinden, sodass die Boot-Skripte nicht mehr darauf reagieren können.

The usual symptoms are that the boot will fail because the root file system cannot be mounted and you are dropped into a debug shell:

Gave up waiting for root device.  Common problems:
 - Boot args (cat /proc/cmdline)
   - Check rootdelay= (did the system wait long enough?)
   - Check root= (did the system wait for the right device?)
 - Missing modules (cat /proc/modules; ls /dev)
ALERT!  /dev/something does not exist.  Dropping to a shell!
(initramfs) 

But if you check afterwards, all devices that are needed are present in /dev. This has been observed in cases where the root file system is on a USB disk or on RAID, especially if LILO is used.

Das Problem kann umgangen werden, indem der Boot-Parameter rootdelay=9 verwendet wird. Der Wert für die Zeitüberschreitung (in Sekunden) muss eventuell noch angepasst werden.

4.7. Vorbereiten auf die nächste Veröffentlichung

Nach dem Upgrade gibt es einige Dinge, die Sie tun können, um für die nächste Veröffentlichung vorbereitet zu sein.

  • Entfernen Sie veraltete und nicht benutzte Pakete wie in Abschnitt 4.9, „Veraltete Pakete“ beschrieben. Sie sollten kontrollieren, welche Konfigurationsdateien diese Pakete benutzen und in Betracht ziehen, die Pakete vollständig zu entfernen, um die Konfigurationsdateien loszuwerden.

4.8. Missbilligte Komponenten

Ab der nächsten Veröffentlichung von Debian GNU/Linux (7.0, Codename Wheezy) werden einige Funktionalitäten als veraltet gelten. Benutzer werden auf andere Alternativen umschwenken müssen, um Probleme beim Upgrade auf 7.0 zu vermeiden.

Dazu gehören die folgenden Funktionalitäten:

  • OpenVZ und Linux-Vserver: Debian GNU/Linux 6.0 wird die letzte Veröffentlichung sein, die Virtualisationslösungen für den Linux-Kernel außerhalb des Mainline-Kernels enthält. Das bedeutet, dass die OpenVZ- und Linux-Vserver-Virtualisationslösungen als veraltet angesehen werden sollten und Benutzer auf Lösungen umstellen sollten, die im linux-2.6-Upstream-Kernel enthalten sind, wie zum Beispiel KVM, Linux Containers oder Xen.

  • Das Paket gdm (GNOME Display Manager, Version 2.20) wird als veraltet angesehen und durch gdm3 ersetzt, einer komplett neu geschriebenen Version des GDM. Siehe Abschnitt 5.6, „GNOME-Desktop-Änderungen und -Unterstützung“ bezüglich weiterer Informationen.

4.9. Veraltete Pakete

Mit Squeeze werden mehrere tausend neue Pakete eingeführt, jedoch werden auch mehr als viertausend alte Pakete, die in Lenny noch existierten, ausgelassen oder wegfallen. Es wird keine Möglichkeit eines Upgrades für diese veralteten Pakete geben. Auch wenn nichts Sie davon abhalten kann, ein veraltetes Paket weiter zu benutzen, wenn Sie dies wünschen, wird das Debian-Projekt bei diesen Paketen üblicherweise die Unterstützung für Sicherheitsaktualisierungen ein Jahr nach der Veröffentlichung von Squeeze einstellen[11]. Auch wird es in der Zwischenzeit keine weitere Unterstützung geben. Es wird empfohlen, die Pakete durch verfügbare Alternativen zu ersetzen.

Es gibt viele Gründe, warum Pakete aus der Distribution entfernt worden sein könnten: sie wurden von den Originalautoren nicht mehr betreut; es ist kein Debian-Entwickler mehr daran interessiert, sie zu betreuen; die Funktionalität, die sie bieten, ist durch andere Software (oder eine neuere Version) ersetzt worden, oder sie wurden (aufgrund von Fehlern darin) als nicht mehr passend für Squeeze angesehen. Im letzten Fall könnten sie trotzdem noch in der unstable-Distribution vorhanden sein.

Zu erkennen, welche Pakete in einem aktualisierten System veraltet (obsolete) sind, ist einfach, da die Paketmanagement-Programme sie entsprechend markieren. Wenn Sie aptitude verwenden, werden Sie eine Auflistung dieser Pakete im Abschnitt Veraltete und selbst erstellte Pakete finden. dselect bietet eine ähnliche Sektion an, allerdings könnte sich der Inhalt der Liste unterscheiden.

Wenn Sie aptitude oder apt-get verwendet haben, um Pakete in Lenny manuell zu installieren, werden diese Paketwerkzeuge die Pakete verfolgt haben und können andere Pakete als veraltet markieren, die nur aufgrund von Abhängigkeiten installiert wurden und die nicht mehr benötigt werden, wenn ein Paket entfernt wurde. aptitude und apt werden im Unterschied zu deborphan Pakete, die Sie manuell installiert haben, nicht als veraltet markieren (anders als bei Paketen, die automatisch aufgrund von Abhängigkeiten installiert wurden). Um automatisch installierte und jezt nicht mehr verwendete Pakete zu entfernen, führen Sie dies aus:

# apt-get autoremove

Es gibt zusätzliche Werkzeuge, die Sie verwenden können, um veraltete Pakete aufzuspüren, wie deborphan, debfoster oder cruft. deborphan wird sehr empfohlen, obwohl es (in der Standardeinstellung) nur veraltete Bibliotheken melden wird: Pakete aus den Bereichen libs oder oldlibs, die von keinem anderen Paket benutzt werden. Entfernen Sie nicht blind die Pakete, die von diesen Programmen angezeigt werden, speziell wenn Sie Optionen mit aggressiven Nicht-Standard-Werten verwenden, die dafür bekannt sind, falsch-positive Meldungen zu erzeugen. Es wird dringend empfohlen, dass Sie die Pakete, die zum Entfernen vorgeschlagen werden, kontrollieren (bezüglich Inhalt, Größe und Beschreibung), bevor Sie sie entfernen.

Die Debian-Fehlerdatenbank bietet oft zusätzliche Informationen, warum ein Paket entfernt wurde. Sie sollten sowohl die archivierten Fehlerberichte für das Paket selbst als auch für das Pseudo-Paket ftp.debian.org kontrollieren.

Die Liste der veralteten Pakete enthält:

  • Die Content-Management-Suite plone. Dies geschah aufgrund einer Anfrage der Entwickler, um den Unified Installer für Linux zu verwenden, den sie als die einzige von Ihnen unterstützte Entwicklungsplattform ansehen. Das empfohlene Werkzeug, um Plone auf einem Debian GNU/Linux-System zu installieren, ist der Unified Installer, der auf http://plone.org/ zum Download zur Verfügung steht.

  • nessus, ein Server, der Systeme auf Verwundbarkeiten scannt, sowie die ihm zugeordneten Bibliotheken und weitere Software. Es wird als veraltet angesehen zugunsten der Software, die von OpenVAS angeboten wird, darin enthalten openvas-server und openvas-client. Da es keinen automatischen Weg für ein Upgrade gibt, müssen Sie OpenVAS installieren und Ihre Nessus-Service-Konfiguration (Benutzer, Zertifikate etc.) manuell hinübermigrieren.

  • postgresql-8.3, Nachfolger ist postgresql-8.4.

  • mysql-server-5.0, Nachfolger ist mysql-server-5.1.

  • python2.4, Nachfolger ist python2.6.

  • Java 5-Software inklusive den Paketen sun-java5-jre und sun-java5-bin, Nachfolger ist Java 6: sun-java6-jre und diesem zugeordnete Pakete.

  • apt-proxy wird nicht mehr angeboten; Alternativen zu diesem Werkzeug sind unter anderem apt-cacher-ng, apt-cacher und approx. Obwohl kein automatischer Weg für ein Upgrade existiert, können Benutzer von apt-proxy auf diese Alternativen umsteigen, indem Sie irgendeines dieser Pakete von Hand installieren.

  • Einige von Xorg's Video-Treibern sind in Squeeze nicht mehr verfügbar und gelten als veraltet. Dazu gehören xserver-xorg-video-cyrix, xserver-xorg-video-i810, xserver-xorg-video-imstt, xserver-xorg-video-nsc, xserver-xorg-video-sunbw2 und xserver-xorg-video-vga. Sie könnten durch das Upgrade entfernt werden. Benutzer sollten stattdessen xserver-xorg-video-all installieren.

  • Das Hilfsprogramm usplash, das in Lenny verwendet wurde, um beim Booten einen Splash-Screen (einen grafischen Startbildschirm) anzuzeigen, ist nicht mehr verfügbar. Es wurde durch plymouth ersetzt.

4.9.1. Dummy-Pakete

Einige Pakete aus Lenny sind für Squeeze in mehrere Pakete aufgeteilt worden, oft um die System-Wartungsfähigkeit zu erhöhen. Um in solchen Fällen den Upgrade-Prozess zu erleichtern, bietet Squeeze oft sogenannte Dummy-Pakete an: leere Pakete, die den gleichen Namen haben wie das alte Paket in Lenny und mit entsprechenden Abhängigkeiten, die dazu führen, dass die neuen Pakete installiert werden. Diese Dummy-Pakete werden nach dem Upgrade-Prozess als veraltet angesehen und können problemlos entfernt werden.

Die Paketbeschreibungen der meisten (aber nicht aller) Dummy-Pakete enthalten einen Hinweis auf ihren Zweck. Die Paketbeschreibungen für Dummy-Pakete sind jedoch nicht standardisiert, daher ist vielleicht deborphan mit einer der --guess-*-Optionen (z.B. --guess-dummy) für Sie sinnvoll, um diese Pakete auf Ihrem System zu finden. Beachten Sie, dass einige Dummy-Pakete nicht dazu gedacht sind, nach einem Upgrade entfernt zu werden, sondern stattdessen dazu dienen, die gerade verfügbare Version eines Programms über längere Zeit zu verfolgen.



[4] Wenn die debconf-Priorität auf einen sehr hohen Wert gesetzt ist, können Sie so eventuell Konfigurationsfragen vermeiden, aber Dienste, die auf Standardantworten angewiesen sind, welche jedoch auf Ihrem System nicht zutreffend sind, werden nicht erfolgreich starten.

[5] Zum Beispiel: DNS- oder DHCP-Dienste, besonders wenn keine Redundanz- oder Ersatzsysteme für den Fall eines Ausfalls vorhanden sind. Im Fall von DHCP-Diensten werden die Endbenutzer unter Umständen vom Netzwerk getrennt, wenn die Lease-Zeit niedriger ist als die, die für den Abschluß des Upgrade-Prozesses benötigt wird.

[6] Diese Funktionalität kann deaktiviert werden, indem der Parameter panic=0 zu den Boot-Parametern hinzugefügt wird.

[7] Das Paketverwaltungssystem von Debian erlaubt es normalerweise nicht, dass ein Paket Dateien anderer Pakete entfernt oder ersetzt, es sei denn, es wurde definiert, dass es das andere Paket ersetzt.

[8] Es gibt ebenfalls bekannte Inkompatibilitäten zwischen den alten Kernels und dem neuen udev. Wenn Sie nach dem Systemneustart mit einem neuen Kernel Probleme feststellen, müssen Sie für das udev-Paket ein Downgrade (Installation der alten Version) durchführen, um Ihren alten Kernel wieder verwenden zu können.

[9] Wenn Sie einen Mitschnitt des Upgrades erstellen, wie in Abschnitt 4.4, „Upgrades von Paketen durchführen“ beschrieben, verwenden Sie script erneut, um die weiteren Schritte des Upgrades nach dem Neustart aufzuzeichnen, damit die Ergebnisse der Aktionen aus Abschnitt 4.4.6, „Upgrade des Systems“ ebenfalls protokolliert werden.

[10] Einige Geräte, wie zum Beispiel solche, die von crypt, RAID oder LVM verwendet werden, haben stabile nicht-UUID-Bezeichnungen. In diesen Fällen sollten Sie diese Gerätenamen verwenden, die bereits eindeutig und gleichbleibend sind.

[11] So lange es keine andere Veröffentlichung in diesem Zeitraum gibt. Typischerweise werden zu jeder Zeit nur zwei stabile Veröffentlichungen mit Sicherheitsaktualisierungen unterstützt.