Unterschiede zwischen den Revisionen 1 und 15 (über 14 Versionen hinweg)
Revision 1 vom 2009-05-17 20:05:47
Größe: 660
Autor: BodoBellut
Kommentar:
Revision 15 vom 2015-09-03 16:17:28
Größe: 5917
Autor: BodoBellut
Kommentar:
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 3: Zeile 3:
/!\ Work in progress /!\ Es ist empfehlenswert, vor der Benutzung dieser Anleitung diese einmal vollständig zu lesen.
Zeile 5: Zeile 5:
/!\ Diese Anleitung wurde an Beispiel eines dist-upgrades von etch auf lenny erstellt /!\ Diese Anleitung wurde an Beispiel eines dist-upgrades von lenny auf squeeze erstellt
Zeile 7: Zeile 7:
== Schritt 0 ==

Vor dem eigentlichen Upgrade ist es sinnvoll, die Herkunft der aktuell installierten Paketen zu prüfen. Evtl. kann es vorkommen, daß zusätzliche Repositories (noch= nicht in der neuen Version zur Verfügung stehen.

Alle Paketquellen (Origins) lassen sich mit diesem Kommando ermitteln:
Zeile 8: Zeile 13:
# edit /etc/apt/sources.lst and /etc/apt/sources.list.d/*.list
        etch -> lenny
# make sure only the codenames are used, not "stable", "testing", etc.
apt-cache policy | sed -n 's/.*o=\([^,]\+\).*/\1/p' | sort -u
}}}
Zeile 12: Zeile 16:
Alle installierten Pakete aus einer spezifischen Quelle können mittels aptitude angezeigt werden:
{{{
aptitude search "?narrow(?installed,?origin(Debian Backports))"
}}}

Alternativ können auch alle installierten Pakete angezeigt werden, die '''nicht''' aus einer bestimmten Quelle stammen:
{{{
aptitude search "?narrow(?installed,?not(?origin(Debian)))"
}}}

Es sind vielfältige weitere Optionen der Suche möglich, ebenso kann nach unterschiedlichen Parametern (z.b. "archive == stable") gesucht werden.

Praktisch sind die Formatoptionen zu aptitude, z.B. kann die Version statt der Paketbeschreibung angezeigt werden:
{{{
aptitude search -F "%p %V %v" "?narrow(?installed,?not(?origin(Debian)))"
}}}

== Schritt 1 ==

Die Datei ''/etc/apt/sources.lst'' und die Dateien unterhalb von ''/etc/apt/sources.d/'' müssen angepasst werden. Es sollte sicher gestellt werden, dass in diesen nur Codenamen (''lenny'', ''squeeze'', etc.) verwendet werden, nicht die symbolischen Namen (''stable'', ''testing'', etc.).

In den Dateien muss der Codename der aktuellen Version durch den der neuen ersetzt werden.

/!\ Ein Upgrade über mehr als einen Versionssprung wird offiziell nicht unterstützt, das kann gut gehen, muss es aber nicht. Im Zweifel einen Sprung nach dem anderen ausführen bis man bei der aktuellen Version angekommen ist.

Vor dem eigentlichen Upgrade ist es sinnvoll, nach Überbleibseln eines alten Upgrades zu suchen:
{{{
Zeile 13: Zeile 44:
find / -iname \*.ucf-\* -print
}}}
Zeile 14: Zeile 47:
Im Normalfall sollte dabei keine Datei gefunden werden, sollten doch Datein gefunden werden sollten diese gesichtet und archiviert oder gelöscht werden. Auf jeden Fall sollte vor dem nächsten Schritt obiger Befehl keine Dateien mehr finden.

== Schritt 2 ==

Jetzt wird das Upgrade gestartet:
{{{
Zeile 17: Zeile 56:
apt-get install rsyslog munin-plugins-extra }}}

Dabei werden evtl. Fragen gestellt, wenn Konfigurationsdatein modifiziert worden sind. Die Änderungen sollten aufmerksam verglichen und die Fragen entsprechend beantwortet werden.

== Schritt 3 ==

Es kann vorkommen, dass in einer neuen Version einige Pakete zwar noch vorhanden sind, aber nicht mehr der Standardinstallation entsprechen. Ausserdem ist es sehr wahrscheinlich, dass es einige interessante neue Pakete gibt. Diese sollten nun installiert werden.

=== pygrub vs. grub2 ===

pygrub (wird in Xen DomUs verwendet) funktioniert nicht mit dem neuen grub2, es ist daher notwendig, die alte Version von grub wieder zu installieren
{{{
apt-get install grub-legacy
}}}

== Schritt 4 ==

Nun ist es an der Zeit, ein wenig aufzuräumen. Zunächst werden Pakete entfernt, die in der neuen Version nicht mehr existieren aber nicht durch einen Konflikt zu anderen Paketen automatisch entfernt wurden.
Dieser Schritt ist interaktiv möglich, dabei sollte darauf geachtet werden, den alten, zur Zeit laufenden Kernel sowie seine Module (falls diese sich in getrennten Paketen befinden) noch nicht zu entfernen.
{{{
Zeile 20: Zeile 78:
                select all                 select packages with '_' (underscore)
Zeile 24: Zeile 82:
}}}
Alternativ kann man sich mittels
{{{
aptitude search ~o
}}}
eine Liste der nicht mehr existierenden Pakete anzeigen lassen und nicht mehr benötigte dann mittels apt-get entfernen.

Handelt es sich um ein Upgrader einer Xen-DomU sollte man verifizieren, dass in ''/etc/inittab'' bereits ''hvc0'' statt ''tty1'' verwendet wird:
{{{
Zeile 26: Zeile 93:
}}}
Zeile 27: Zeile 95:
Zum Abschluss wird wieder nach alten/neuen Konfigurationsdateien gesucht
{{{
Zeile 28: Zeile 98:
find / -iname \*.ucf-\* -print
Zeile 29: Zeile 100:
und diese mit den neuen/alten verglichen, archiviert bzw. gelöscht.

== Schritt 5 ==

Nun ist es Zeit für den Reboot mit dem neuen Kernel. Wenn alles gut geht kann anschliessend der alte Kernel wie in Schritt 4 gezeigt ebenfalls entfernt werden.

== Schritt 6 ==

Damit ist das Upgrade abgeschlossen. In den nächsten Tagen (und Wochen) sollte intensiv auf die diversen Logfiles gesehen werden.

== mögliche Probleme ==
 * pam_env(su:session): Unable to open env file: /etc/default/locale: No such file or directory
   * Die Datei wird durch den Aufruf von ''update-locale'' erzeugt.
 * apticron vs. mailx
   * apticron ruft mailx mit einem Parameter auf, den nur bsd-mailx kennt. Sind weitere mailx-Pakete (z.B. hairloom-mailx) installiert, sollte mit ''update-alternatives --config mailx'' bsd-mailx als Standard ausgewählt werden.
 * postgresql
   * vorhandene Datenbanken werden nicht automatisch migriert, http://www.hadanite-marasek.de/624.htm erklärt die Vorgehensweise. das DB-Upgrade benötigt sehr viel Zeit
{{{
  pg_dropcluster 8.4 main --stop
  pg_upgradecluster 8.3 main
  pg_dropcluster 8.3 main
}}}
 * mysql
   * sollte der mysql-Server nicht starten, sollte '''/etc/mysql/my.cnf''' auf die Zeile ''' skip-bdb''' überprüft werden, welche in squeeze nicht mehr unterstützt wird. siehe auch http://www.linuxquestions.org/questions/linux-server-73/after-debian-upgrade-from-lenny-to-squeeze-mysql-will-not-start-869846/
   * mysql-server-5.1 wird u.U. nicht automatisch installiert und muss manuell nachinstalliert werden

Dist-Upgrade

/!\ Es ist empfehlenswert, vor der Benutzung dieser Anleitung diese einmal vollständig zu lesen.

/!\ Diese Anleitung wurde an Beispiel eines dist-upgrades von lenny auf squeeze erstellt

Schritt 0

Vor dem eigentlichen Upgrade ist es sinnvoll, die Herkunft der aktuell installierten Paketen zu prüfen. Evtl. kann es vorkommen, daß zusätzliche Repositories (noch= nicht in der neuen Version zur Verfügung stehen.

Alle Paketquellen (Origins) lassen sich mit diesem Kommando ermitteln:

apt-cache policy | sed -n 's/.*o=\([^,]\+\).*/\1/p' | sort -u

Alle installierten Pakete aus einer spezifischen Quelle können mittels aptitude angezeigt werden:

aptitude search "?narrow(?installed,?origin(Debian Backports))"

Alternativ können auch alle installierten Pakete angezeigt werden, die nicht aus einer bestimmten Quelle stammen:

aptitude search "?narrow(?installed,?not(?origin(Debian)))"

Es sind vielfältige weitere Optionen der Suche möglich, ebenso kann nach unterschiedlichen Parametern (z.b. "archive == stable") gesucht werden.

Praktisch sind die Formatoptionen zu aptitude, z.B. kann die Version statt der Paketbeschreibung angezeigt werden:

aptitude search -F "%p %V %v" "?narrow(?installed,?not(?origin(Debian)))"

Schritt 1

Die Datei /etc/apt/sources.lst und die Dateien unterhalb von /etc/apt/sources.d/ müssen angepasst werden. Es sollte sicher gestellt werden, dass in diesen nur Codenamen (lenny, squeeze, etc.) verwendet werden, nicht die symbolischen Namen (stable, testing, etc.).

In den Dateien muss der Codename der aktuellen Version durch den der neuen ersetzt werden.

/!\ Ein Upgrade über mehr als einen Versionssprung wird offiziell nicht unterstützt, das kann gut gehen, muss es aber nicht. Im Zweifel einen Sprung nach dem anderen ausführen bis man bei der aktuellen Version angekommen ist.

Vor dem eigentlichen Upgrade ist es sinnvoll, nach Überbleibseln eines alten Upgrades zu suchen:

find / -iname \*.dpkg\* -print
find / -iname \*.ucf-\* -print

Im Normalfall sollte dabei keine Datei gefunden werden, sollten doch Datein gefunden werden sollten diese gesichtet und archiviert oder gelöscht werden. Auf jeden Fall sollte vor dem nächsten Schritt obiger Befehl keine Dateien mehr finden.

Schritt 2

Jetzt wird das Upgrade gestartet:

apt-get update
apt-get dist-upgrade --purge
apt-get clean

Dabei werden evtl. Fragen gestellt, wenn Konfigurationsdatein modifiziert worden sind. Die Änderungen sollten aufmerksam verglichen und die Fragen entsprechend beantwortet werden.

Schritt 3

Es kann vorkommen, dass in einer neuen Version einige Pakete zwar noch vorhanden sind, aber nicht mehr der Standardinstallation entsprechen. Ausserdem ist es sehr wahrscheinlich, dass es einige interessante neue Pakete gibt. Diese sollten nun installiert werden.

pygrub vs. grub2

pygrub (wird in Xen DomUs verwendet) funktioniert nicht mit dem neuen grub2, es ist daher notwendig, die alte Version von grub wieder zu installieren

apt-get install grub-legacy

Schritt 4

Nun ist es an der Zeit, ein wenig aufzuräumen. Zunächst werden Pakete entfernt, die in der neuen Version nicht mehr existieren aber nicht durch einen Konflikt zu anderen Paketen automatisch entfernt wurden. Dieser Schritt ist interaktiv möglich, dabei sollte darauf geachtet werden, den alten, zur Zeit laufenden Kernel sowie seine Module (falls diese sich in getrennten Paketen befinden) noch nicht zu entfernen.

aptitude
        Obsolete and Locally Created Packages
                select packages with '_' (underscore)
        g
        g
        q

Alternativ kann man sich mittels

aptitude search ~o

eine Liste der nicht mehr existierenden Pakete anzeigen lassen und nicht mehr benötigte dann mittels apt-get entfernen.

Handelt es sich um ein Upgrader einer Xen-DomU sollte man verifizieren, dass in /etc/inittab bereits hvc0 statt tty1 verwendet wird:

vi /etc/inittab
        1:2345:respawn:/sbin/getty 38400 hvc0

Zum Abschluss wird wieder nach alten/neuen Konfigurationsdateien gesucht

find / -iname \*.dpkg\* -print
find / -iname \*.ucf-\* -print

und diese mit den neuen/alten verglichen, archiviert bzw. gelöscht.

Schritt 5

Nun ist es Zeit für den Reboot mit dem neuen Kernel. Wenn alles gut geht kann anschliessend der alte Kernel wie in Schritt 4 gezeigt ebenfalls entfernt werden.

Schritt 6

Damit ist das Upgrade abgeschlossen. In den nächsten Tagen (und Wochen) sollte intensiv auf die diversen Logfiles gesehen werden.

mögliche Probleme

  • pam_env(su:session): Unable to open env file: /etc/default/locale: No such file or directory
    • Die Datei wird durch den Aufruf von update-locale erzeugt.

  • apticron vs. mailx
    • apticron ruft mailx mit einem Parameter auf, den nur bsd-mailx kennt. Sind weitere mailx-Pakete (z.B. hairloom-mailx) installiert, sollte mit update-alternatives --config mailx bsd-mailx als Standard ausgewählt werden.

  • postgresql

  pg_dropcluster 8.4 main --stop
  pg_upgradecluster 8.3 main
  pg_dropcluster 8.3 main

Software/Dist-Upgrade (zuletzt geändert am 2018-09-21 10:10:46 durch BodoBellut)