Debian vermeidet nach Möglichkeit Änderungen an Upstream Paketen, daher werden solche Änderungen auch in Debian GNU/Linux erscheinen.
IM Debian GNU/Linux 2.2 'Potato' Release benutzte tar die
-I
Option um mit bzip zu komprimieren, mittlerweile wird dafür
die Option
-j
benutzt. Sie müssen Ihre Scripte entsprechend anpassen.
Bevor Sie Ihr System aktualisieren, ist es empfehlenswert ein Backup Ihrer Daten oder zumindest jener Daten die nicht verlorengehen dürfen zu erstellen. Die Upgrade-Tools sind sehr verläßlich, dennoch könnte ein Hardware-Fehler während des Upgrades Ihr System beschädigen.
Die wichtigsten Sachen die Sie sichern sollten, ist der Inhalt von
/etc, /var/lib/dpkg und der Output von dpkg
--get-selections.
Es sollten alle Nutzer von der geplanten Aktualisierung in Kenntniss gesetzt
werden, auch wenn Nutzer die Ihr System über ssh nutzen davon
nicht viel mitbekommen sollten und eventuell weiterarbeiten wollen. Sollten
Sie zusätzliche Sicherungsmassnahmen ergreifen wollen, sichern (oder
unmounten) sie die Home-Partition (/home) vor der Aktualisierung.
Ein Reboot ist normalerweise nicht notwendig.
Ein Upgrade einer Distribution sollten Sie am besten am lokalen Rechner
über die Textkonsole ausführen (bzw. über ein serielles
Terminal) oder remote über eine ssh Verbindung.
Wichtig: Sie sollten für die Aktualisierung nicht die
Programme telnet, rlogin oder rsh
benutzen. Ausserdem sollten Sie es auch aus keiner X Sitzung starten die von
xdm verwaltet wird. Diese Dienste können bei einer
Aktualisierung neugestartet oder gar abgeschaltet werden, was zu einem
unbenutzbaren, nur halb aktualisiertem System führen kann.
Unabhängig von der Methode, die Sie für Ihr Upgrade verwenden, ist es empfehlenswert, als erstes den Status der Pakete zu prüfen um sicherzugehen dass alle Pakete in einem update-fähigem Status sind. Der folgende Befehl gibt alle Pakete mit dem Status "Half-Installed", "Failed-Config" oder mit Error-Status aus.
# dpkg --audit
Sie könnten auch den Status aller Pakete auf dem System inspizieren, in
dem Sie das Kommando dselect aufrufen - oder andere Kommandos wie:
# dpkg -l | pager
oder
# dpkg --get-selections > ~/curr-pkgs.txt
Es ist wünschenswert alle Holds vor der Aktualisierung zu entfernen. Sollte eines der Pakete das für das Upgrade wichtig ist auf Hold sein, würde die Aktualisierung nicht funktionieren. Auf die folgende Art und Weise können Sie herausfinden, ob Pakete auf Hold sind:
# dpkg --audit
Wenn Sie ein Paket lokal verändert und neukompiliert haben und es nicht
umnannten oder die Versionsnummer drastisch erhöhten müssen Sie es
auf Hold setzen um eine Aktualisierung zu verhindern. Den Status `hold' kann
man im dselect Programm durch drücken der Taste H einstellen,
oder durch folgende Aktionen erreichen:
dpkg --get-selections > ~/curr-sels.txt
Ändern Sie nun in dieser Datei den Status von "hold" auf "install" (oder umgekehrt) und führen Sie danach mit Root-Rechten, folgendes Kommando aus:
dpkg --set-selections < ~/curr-sels.txt
Die kommerzielle SSH Version aus dem Paket ssh (vor Release 2.2)
oder im Paket ssh-nonfree (Release 2.2) wurde durch die DFSG freie
OpenSSH Variante im Paket ssh ersetzt. Die kommerzielle Variante
ist nicht mehr verfügbar. Das Paket ssh enthält eine
Debconf Frage ob Sie die SSH Konfiguration in eine OpenSSH kompatible wandeln
wollen.
Bitte beachten Sie dass ssh in dieser Release root logins per
default zulässt (Diese waren in 2.2 abgestellt). Wenn sie dieses Feature
nicht benötigen stellen Sie sicher dass die PermitRootLogin
option in /etc/ssh/sshd_config auf no gestellt ist.
Um sicherzustellen dass dpkg diese Datei niemals verändert editieren Sie
sie einfach. Das zufügen einer Leerzeile ist genug.
Es ist wichtig, dass das /etc/rcS.d-Verzeichnis existiert. Dies
ist in erster Linie für das Upgrade wichtig, da die Installation des
libc6 Paketes sonst fehlschlagen würde.
Das /usr/share/doc Verzeichnis (wenn es bereits existiert) sollte
kein Symlink (zB auf /usr/doc) sein, da dadurch die Installation
einiger Pakete fehlschlagen könnte. Sie können /usr/doc
aber auf /usr/share/doc symlinken. Bitte beachten Sie, dass Sie,
wenn Sie einen solchen Symlink verwenden, eine Vielzahl von Meldungen über
nicht verschiebbare Dateien in /usr/doc erhalten werden. Dies ist
normal. Sie können diese Meldungen ignorieren.
Die empfohlene Methode das System zu aktualisieren ist die Nutzung von
apt-get durch dselect wie es im folgenden beschrieben
wird. Die eingebaute Abhängigkeitsanalyse erlaubt saubere und einfache
Aktualisierungen/Installationen.
Sie sollten keine größeren Paket-Aktualisierungen mit
anderen "Access"-Methoden als apt in
dselect durchführen, da diese, anders als die
apt Methode, keine logische Paketordnung durchführen und
deswegen nicht so verläßlich bei der Aktualisierung sind. Obendrein
sind solche Aktualisierungen nicht gut getestet und werden von Debian nicht
unterstützt wenn Fehler auftreten.
Alle Paket-Installations-Operationen müssen mit Superuser-Rechten
ausgeführt werden, entweder als root oder mit sudo um zu den
notwendigen Rechten zukommen
Bevor Sie die Aktualisierung starten, müssen Sie zunächsts die
apt-Konfiguration für die Paketliste anpassen.
/etc/apt/sources.list.
apt verwendet alle Pakete, die über jede
"deb" Zeile gefunden werden können und installiert
die Pakete mit der höchsten Versionsnummer, wobei die Priorität in
den ersten angeführten Zeilen liegt. So können Sie z.b. erst ihr
Paketverzeichnis auf der Festplatte, dann CD-ROMs und dann HTTP/FTP Server
angeben.
Die standardmäßige Konfiguration ist für die Installation von
den Haupt-Debian-Internet-Servern ausgerichtet, Sie können jedoch nach
Belieben in der Datei /etc/apt/sources.list andere Mirror
eintragen. Am besten sind Mirror geeignet, die Ihrem Netzwerk am nächsten
sind.
Die Adressen der HTTP oder FTP Mirror finden Sie unter http://www.debian.org/distrib/ftplist
(Sie finden sie im Abschnitt "Full list of mirrors"). HTTP Mirror
sind für gewöhnlich schneller als FTP Mirror.
Nehmen wir zum Beispiel an, Ihr nächstgelegener Debian Mirror ist http://mirrors.kernel.org/debian/. Wenn Sie sich diesen Spiegel mit einem Browser oder einem FTP-Programm genauer ansehen, werden Sie feststellen, dass die Hauptverzeichnisse auf die folgende Art und Weise angeordnet sind:
http://mirrors.kernel.org/debian/dists/woody/main/binary-arm/...
http://mirrors.kernel.org/debian/dists/woody/contrib/binary-arm/...
Um diesen Mirror mit apt zu verwenden, ergänzen Sie die Datei
sources.list file mit der folgenden Zeile:
deb http://mirrors.kernel.org/debian woody main contrib
Beachten Sie, dass `dists' implizit dazugegeben wird und die Argumente die nach der Release folgen, verwendet werden um Pfade in mehrere Verzeichnisse zu erstrecken.
Wenn der Spiegel auch non-US Abschnitte unter http://mirrors.kernel.org/debian/debian-non-US enthält, so fügen Sie zusätzlich folgende Zeile hinzu:
deb http://mirrors.kernel.org/debian/debian-non-US woody/non-US main contrib
Nachdem Sie die neuen Quellen angegeben haben, deaktivieren Sie die vorherigen
"deb" Zeilen in sources.list, in dem Sie
eine Raute (#) am Beginn der Zeile setzen.
Jedes Paket, dass für die Installation benötigt wird und über
das Netz geladen wird, wird im Unterverzeichnis
/var/cache/apt/archives während des Downloads gespeichert.
Vergewissern Sie sich daher vor der Aktualisierung dass Ihnen genügend
Platz zur Verfügung steht. Bei einer durchschnittlichen Installation von
Debian müssen Sie mit zirka 300 MB Downloadvolumen rechnen.
Beachten Sie, wenn Sie die statische Version von apt und
dpkg verwenden, dass das hostname-lookup kaputt ist (dies ist ein
Grund warum man auch das normale apt verwenden sollte, wenn man
über das Netz aktualisiert. Die Lösung ist einfach. Schreiben Sie
die IP-Adresse des Mirrors in in die "deb" Zeile. (Die
IP-Adresse finden Sie mit nslookup: nslookup Servername)
Anstatt HTTP oder FTP Paket-Mirror, können Sie, wenn Sie möchten,
auch /etc/apt/sources.list ändern um einen Spiegel auf der
lokalen Festplatte (evtl. NFS-mounted) zu verwenden.
Nehmen wir an Ihr Paket-Mirror liegt auf /var/ftp/debian/, und hat
viele Hauptverzeichnisse die wie folgt aussehen:
/var/ftp/debian/dists/woody/main/binary-arm/...
/var/ftp/debian/dists/woody/contrib/binary-arm/...
Um dies mit apt zu verwenden, fügen Sie folgende Zeile zu
sources.list:
deb file:/var/ftp/debian woody main contrib
Beachten Sie dass `dists' implizit hinzugefügt wird, und dass die Argumente die nach der Release stehen dazu verwendet werden um den Pfad in mehrere Verzeichnisse zu erweitern.
Wenn Ihr lokaler Mirror non-US/*-Abschnitte unter
/var/ftp/debian-non-US enthält, so fügen Sie die
folgende Zeile hinzu:
deb file:/var/ftp/debian-non-US woody/non-US main contrib
Nachdem Sie neue Quellen hinzugefügt haben, deaktivieren Sie die vorgehenden "deb" Zeilen in dem Sie eine Raute (#) an den Beginn der Zeile setzen.
Installieren Sie bitte, wie oben beschrieben, zuerst die aktuelle Version von
apt und dpkg.
Wenn Sie ausschließlich CDs verwenden möchten, kommentieren
Sie die bestehenden "deb" Zeilen in
/etc/apt/sources.list aus, in dem Sie eine Raute (#)
an den Beginn der Zeile setzen.
Vergewissern Sie sich, dass es eine Zeile in der Datei /etc/fstab
gibt, die das mounten Ihres CD-ROM-Laufwerks in /cdrom
ermöglicht (der exakte /cdrom-Mountpoint wird für
apt-cdrom benötigt). Nehmen wir an, Ihr
/dev/hdc sei das CD-ROM-Laufwerk, dann sollte
/etc/fstab folgende Zeile beinhalten:
/dev/hdc /cdrom auto defaults,noauto,ro0 0
Beachten Sie, hier darf kein Leerzeichen zwischen den Wörtern defaults,noauto,ro im vierten Feld sein.
Um sicher zu gehen, dass es funktioniert, legen Sie eine CD ein und versuchen Sie diese zu mounten.
mount /cdrom (dies mountet die CD am Mount-Point)
ls -alF /cdrom (dies sollte das Root-Verzeichnis der CD anzeigen)
umount /cdrom (unmountet die CD)
und führen Sie danach den folgenden Befehl
apt-cdrom add
für jede weitere binäre Debian CD-ROM aus, um die Daten über die CD in APT's Datenbank einzufügen.
Die empfohlene Methode auf Debian GNU/Linux 3.0 zu aktualisieren ist die
Benutzung von dselect. Dieses Tool trifft sicherere und bessere
Entscheidungen über Pakete als apt-get.
Wenn dselect nicht installiert ist installieren Sie es bitte
jetzt.
Die Methode um auf das Debian Archive zuzugreifen (unter Nutzung von APT) wurde bereits konfiguriert, aber Sie können diese im "[A]ccess" menu von dselect umstellen. Wenn Sie mit Ihren Einstellungen zufrieden sind starten Sie den nächsten Schritt mit der Auswahl von "[U]pdate". Dies wird die Paketdatenbank aktualisieren.
Wenn dabei keine Probleme auftraten wählen Sie nun "[S]elect" im
Menü und dslect wird die verfügbaren Paketlisten lesen
und intelligent entscheiden welche Pakete eine Aktualisierung benötigen,
sowie welche Pakete neuinstalliert werden müssen um die Aktualisierung zu
vervollständigen. Es wird ausserdem Pakete anbieten die gelöscht
werden sollten. Durch Betätigen der Return-Taste in der Paketauswahl
bekommen Sie entweder einen Bildschirm zur Lösung von
Abhängigkeitsproblemen (wo Sie Änderungen vornehmen können und
erneut Return drücken) oder Sie landen direkt wieder im Menu. Hilfe in
der Paketauswahl bekommen Sie durch Drücken der Taste "?".
Nachdem die Paketauswahl getroffen wurde ist es notwendig die neuen
Paketversionen zu installieren. Um dies zu tun wählen Sie
"[I]nstall" aus dem Menu. Dies wird alle Pakete herunterladen und
installieren, mit Hilfe von apt. In der Zwischenzeit ist genug
Zeit für eine Tasse Tee oder Kaffee.
Die beiden letzten Schritte sind "[C]onfig" und "[R]emove" welche den Aktualisierungsprozess vervollständigen indem neue Pakete konfiguriert und redundante Pakete gelöscht werden.
Vergessen Sie nicht alle benötigten Partitionen (zB die Root- und die
/usr-Partitions) read-write zu mounten. Dies geht zum Beispiel
mit folgendem Kommando:
mount -o remount,rw /mountpoint
Angenommen Sie haben bereits apt's sources.list wie
oben beschrieben konfiguriert. Führen Sie nun folgendes aus (als root):
apt-get update
Dies synchronisiert die Paketlisten aus Ihren Quellen und aktualisiert die Informationen über neue und aktualisierte Pakete.
Es wird dringend empfohlen das Programm /usr/bin/script für
die Aufzeichnung eines transcripts der Aktualisierung zu benutzen. Sollten
irgendwelche Probleme dabei auftreten haben Sie ein Log der durchgeführten
Aktionen und können, so benötigt, detaillierte Informationen in einem
Bug-Report geben. Führen Sie dafür folgendes Kommando aus
script -a ~/upgrade-to-woody.typescript
Lassen Sie das Transcript nicht in ein temporäres Verzeichnis wie
/tmp oder /var/tmp schreiben, da diese bei der
Aktualisierung oder bei einem Neuboot gelöscht werden können.
Es ist wichtig die Pakete apt, dpkg und debconf zu aktualisieren bevor sie den eigentlich Aktualisierungsprozess starten. Apt wurde entscheidend weiterentwickelt seit dem letzten Release. Debconf ist ein wesentliches tool welches extensiv von den Paketen benutzt wird.
apt-get install dpkg apt debconf
Dies installiert die neuesten Versionen von dpkg, apt
und debconf, welche für den Rest der Aktualisierung
benötigt werden. Es aktualisiert ausserdem einige notwendige
Systembibliotheken zu den neuesten Versionen.
Wenn debconf nachfragt welchen Typ Fragen es stellen soll, wählen Sie nicht 'critical' oder sie werden wichtige Fragen verpassen.
Einige Leute bevorzugen es zuerst auszuprobieren was bei der Aktualisierung passiert. Benutzen Sie dazu
apt-get --fix-broken --show-upgraded --simulate dist-upgrade | pager
Dies dauert zwar eine Weile, es kann Sie allerdings vor bösen Überraschungen bewahren. Es teilt Ihnen mit was mit Ihrem System nicht in Ordnung ist, und wie Sie dieses Problem lösen können. Es teilt Ihnen auch mit, was während des Upgrades passiert. Schenken Sie besonders den Paketen, die "REMOVED" werden grosse Aufmerksamkeit. Keine wichtigen Pakete sollten hier aufgelistet werden.
Nachdem Sie sichergestellt haben, dass apt-get gut funktioniert
starten Sie
apt-get --fix-broken --show-upgraded dist-upgrade
Dies führt eine komplette Aktualisierung Ihres Systems durch. Es installiert zB die neueste Version aller Pakete und löst mögliche Abhängigkeitsänderungen zwischen Paketen in verschiedenen Releases. Wenn es notwendig ist, installiert es einige neue Pakete (zu meist neue Library-Versionen, oder es benennt Pakete um) und entfernt obsolete Pakete die Konflikte verursachen.
Wenn Sie von CD-ROMs aktualisieren, werden Sie an bestimmten Punkten dazu aufgefordert eine bestimmte CD einzulegen. Eventuell müssen Sie dieselbe CD mehrere Male einlegen; da die Pakete inter-related und über die gesamten CDs verstreut sind.
Neue Versionen von derzeit installierten Paketen, die nicht aktualisiert werden
können ohne den Installations-Status eines anderen Pakets zu
verändern, bleiben unverändert (angezeigt als "held back",
also als zurückgehalten). Dadurch kann es notwendig werden mit
dselect oder dpkg einige Pakete zu löschen und
neuzuinstallieren um alle Abhängigkeiten aufzulösen. Alternativ kann
apt-get dselect-upgrade nach einem apt-get -f
dist-upgrade probiert werden. (Siehe auch apt-get(8)
manpage).
Die --fix-broken (oder nur -f) Option lässt
apt versuchen ein System mit kaputten Abhängigkeiten zu
reparieren. apt versucht kaputte Abhängigkeiten im System zu
vermeiden.
Manchmal ist es notwendig die APT::Force-LoopBreak-Option in APT zu aktivieren,
damit man bei eventuell auftretenden Conflicts/Pre-Depends-Schleifen
temporär wichtige Pakete entfernen kann. apt-get wird sie
darüber informieren und die Aktualisierung abbrechen. Sie können
dass umgehen indem Sie die -o APT::Force-LoopBreak=1 Option
für apt-get benutzen.
Es ist auch möglich, dass die Abhängigkeitsstruktur des Systemes so
kaputt ist, dass ein manueller Eingriff notwendig wird. Für
gewöhnlich bedeutet dies dass dselect verwendet werden muss
oder
dpkg --remove packagename
um einige der kaputten Pakete zu löschen, oder
apt-get --fix-broken --show-upgraded install
dpkg --configure --pending
Im Extremfall können Sie mit dem folgenden Befehl eine Re-Installation einleiten:
dpkg --install /path/to/packagename.deb
Nachdem dies geklärt ist, sollten Sie das Upgrade fertigstellen können, indem Sie das vorhin beschriebene dist-upgrade wiederholen.
Während der Aktualisierung werden Sie einige Fragen zur Konfiguration oder
erneuten Konfiguration von Paketen gestellt bekommen. Wenn Sie gefragt werden
ob eine Datei in den Verzeichnissen /etc/init.d oder
/etc/terminfo, oder die Datei /etc/manpath.config
durch die Datei des Paket-Maintainers ersetzt werden soll, so ist es
normalerweise notwendig mit `yes' zu antworten um sicherzustellen dass dass
System in einem konsistenten Zustand ist. Sie können die alte Version
immer wiederherstellen, da sie mit der Erweiterung .dpkg-old
gesichert wird.
Wenn 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 immer noch in der Transcript-Datei nach der Meldung suchen, die am Bildschirm während des Upgrades ausgegeben wurde.
Wenn apt-get dist-upgrade beendet wurde, ist das "formelle" Upgrade fertig, aber es gibt noch ein paar Kleinigkeiten die man vor dem nächstem Neustart beachten sollte.
Am wichtigsten ist, dass die Pakete locales und
util-linux eventuell noch installiert werden müssen. Dies
kann mit folgendem Befehl erledigt werden.
apt-get install locales util-linux
Wenn Sie von Debian version 2.0 oder früher kommen, entfernt dieser
Schritt das getty-Paket, da sich getty nun im
util-linux-Paket befindet.
Es müssen wahrscheinlich mehr Pakete installiert werden als
apt-get vorschlägt, da apt-get nicht automatisch
die Pakete auswählt die von anderen abhängen (z.B. alle Pakete in
Recommends: and Suggests: fields). Diese sind aber sehr einfach zu finden.
Verwenden Sie dafür dselect oder ein anderes graphisches
Frontend. Wählen Sie unter dselect die `apt' Method mit
[A]ccess (wenn Sie dies noch nicht getan haben) und erneuern Sie die Datenbank
mit den Paketinformationen indem Sie [U]pdate aufrufen. Danach drücken
Sie `o', `o', `v' und Shift-d in [S]elect und suchen Sie nach der
--- Obsolete and local packages present on system ---
header. In diesen Abschnitt werden alle solchen Pakete angezeigt. Zum
Beispiel wurde das alte Paket gimp durch gimp1.2
ersetzt. Sie können entweder neue Pakete mit dselect
installieren (welches dann in Auflösung des Konfliktes das alte Paket
entfernt) oder mit folgendem Befehl
apt-get install gimp1.2
die ältere Version ersetzen (Sie müssen nur bestätigen).
Ein anderes Beispiel das oft nicht gezeigt wird - nicht einmal unter
dselect, sind telnet/talk Clients und Server, sowie die
NFS-Server, die von dem alten netstd-Paket getrennt wurden. Sie
können diese durch den folgenden Befehl installieren:
apt-get install telnet telnetd talk talkd nfs-server
Das selbe gilt für manpages-dev, das von
manpages getrennt wurde.
Wenn Sie mehr über die Aufsplittung in Pakete erfahren möchten, lesen Sie bitte im vorherigen Release-Notes-Dokument nach. Sie finden dort unter Umbenannte Pakete, Abschnitt 6.1 und Aufgeteilte Pakete, Abschnitt 6.2 eine Liste der geteilten Pakete.
Wenn Sie von Debian Version 2.0 oder früher aktualisieren und Sie X Window installiert haben, so geben Sie bitte die folgenden Befehle ein:
apt-get remove xbase
apt-get install xfonts-base xfonts-75dpi xfonts-100dpi xfonts-scalable
Wenn Sie xdm nicht während des boot-Vorganges starten
möchten ("X autostart"), führen Sie bitte folgenden Befehl
aus:
apt-get remove xdm
Weitere Informatitonen finden Sie unter
/usr/share/doc/xfree86-common/README.Debian-upgrade aber das waren
an und für sich die notwendigen Schritte.
Das Konfigurations-System für die Kernel-Module hat sich seit Debian
GNU/Linux release 2.0 verändert. Wenn Sie von Debian 2.0 oder früher
kommen, so müssen Sie Ihr System vor dem nächsten Reboot
konvertieren. Normalerweise sollte das ausführen von update-modules
force ausreichend sein; es wird Ihnen dennoch nahegelegt die Manual
Pages update-modules(8) durchzulesen.
Beachten Sie, dass der Linux-Kernel nicht durch diese Schritte
aktualisiert wird, Sie können nun, wenn Sie möchten, das
kernel-image-*-Paket selbst installieren oder einen
benutzerdefinierten Kernel kompilieren
Genießen Sie Ihr neues Debian GNU/Linux 3.0-System! :-)
Release Notes für Debian GNU/Linux 3.0 (`woody'), ARM
$Id: release-notes.de.sgml,v 1.1 2003/01/04 00:37:57 joy Exp $debian-doc@lists.debian.org