apraxostux

Author: Dr. med Claudia Neumann
© 2020 Dr. Claudia Neumann

Update: 01.11.2020

Ein Upgrade von Debian 9 stretch auf Debian 10 buster ist in aller Regel durchführbar; allerdings sollte man sich mit der Kommandozeile und den Bash-Befehlen auskennen. Eine ausführliche Anleitung finden Sie unter https://www.debian.org/releases/stable/i386/release-notes/ch-upgrading.de.html.

Vorbereitung

Zunächst sollte das Debian 9 stretch-System auf den neusten Stand upgedatet werden, z.B. auf der Kommandozeile als root:

apt update
apt upgrade

Mit

apt -f install

kann kontrolliert werden, ob noch Pakete upgedatet werden müssen, ob nicht mehr benötigte Pakete entfernt werden können oder ob Probleme in der Paketverwaltung bestehen.

Entweder auf der Kommandozeile oder mit Synaptic sollte die Installation auf nicht oder nicht mehr notwendige Pakete kontrolliert werden, die dann deinstalliert werden sollten, z.B. die fcitx-Pakete, mocz-Pakete, nicht benötigte Sprachpakete, nicht benötigte tasks.

Nun sollte eine Sicherung des aktuellen Installationsstands durchgeführt werden, damit man im Notfall dorthin zurückkehren kann. Es sollten die Verzeichnisses /etc und /var/lib/dpkg, die Datei _/var/lib/apt/extended_states und die Ausgabe des Befehls

dpkg --get-selections "*"

gesichert werden, entweder in das root-Verzeichnis oder auf eine externe Festplatte oder einen USB-Stick.

Anschließend booten Sie nochmal. Statt sich als User einzuloggen, wechseln Sie mit Strg-Alt-F1 auf die Konsole und loggen sich als root ein. Wenn Sie das /home-Verzeichnis auf eine eigene Partition eingerichtet haben, sollte diese Partition ausgehängt werden. Dann sind Sie sicher, dass dort beim Update nichts passieren kann.

Kontrollieren Sie, ob Sie genügend Speicherplatz auf der root-Partition haben. Es werden ca. 1400 Pakete ausgetauscht.

Sollten Sie noch alte Netzwerk-Schnittstellen konfiguriert haben, lesen Sie https://www.debian.org/releases/stable/i386/release-notes/ch-information.de.html#migrate-interface-names. Sonst könnte das Update abbrechen, da keine Netzwerk-Verbindung mehr vorhanden ist. Natürlich muss während des Updates eine stabile Internet-Verbindung bestehen. Von einem Update mit WLAN wird abgeraten.

Anschließend sollten alle Nicht-Debian-Quellen in der Paketverwaltung entfernt, auskommentiert und diese Pakete gelöscht werden, da sie evtl. zu Komplikationen beim Upgrade führen können. Wenn also z.B. x2go installiert ist und in der Datei /etc/apt/sources.list die x2go-Adresse aufgeführt ist, sollte diese Adresse mindestens auskommentiert werden, indem an den Anfang der Zeile ein # gesetzt wird. Die x2go-Pakete sollten entfernt werden; sie können nach dem Upgrade wieder installiert werden, in Debian 10 buster sogar direkt aus den Debian-Paketquellen.

Die proprietären NVidia-Grafikkartentreiber sind immer gut für Komplikationen und sollten, da wir ja auf der Kommandozeile unterwegs sind, entfernt werden mit

apt remove --purge nvidia*

Bei allen Updates, die ich bisher durchgeführt habe, kam es während des Updates zu folgenden Fehlermeldung:

E: Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; then appstreamcli refresh-cache > /dev/null; fi'
E: Sub-process returned an error code

Daher sollte man bereits vor dem Update in der Datei /etc/apt/apt.conf.d/50appstream die letzten 3 Zeilen auskommentieren, wenn diese Datei existiert:

#APT::Update::Post-Invoke-Success {
#    "if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; then appstreamcli refresh-cache > /dev/null | true; fi";
#};

Ein weiterer Fehler trat häufig auf:

Die folgenden Pakete haben unerfüllte Abhängigkeiten:
	inetutils-ping : Kollidiert mit: ping
E: Beschädigte Pakete

Deshalb sollte schon vor dem Update das Paket inetutils-ping entfernt werden:

dpkg -P inetutils-ping

Hat man eine verschlüsselte HOME-Partition eingerichtet, sollte in /etc/fstab und in /etc/crypttab die Zeile für diese Partition auskommentiert werden. Dann erneut booten. Diese Partition wird dann beim Boot-Vorgang nicht nachgefragt und nicht gemountet. Nach dem Update müssen die Auskommentierung wieder rückgängig gemacht werden.

Beim Entfernen der x2go-Pakete konnte es zu einem Fehler kommen, weil das Paket x2goserver-fmbindings nicht richtig entfernt werden konnte. Dies liegt an einer fehlerhaften postrm-Datei. Dann muss man als root die Datei /var/lib/dpkg/info/x2goserver-fmbindings.postrm folgendermaßen editieren:

#!/bin/sh
# postrm script for x2goserver-fmbindings
#
# see: dh_installdeb(1)

set -e

# summary of how this script can be called:
#        * <postrm> `remove'
#        * <postrm> `purge'
#        * <old-postrm> `upgrade' <new-version>
#        * <new-postrm> `failed-upgrade' <old-version>
#        * <new-postrm> `abort-install'
#        * <new-postrm> `abort-install' <old-version>
#        * <new-postrm> `abort-upgrade' <old-version>
#        * <disappearer's-postrm> `disappear' <overwriter>
#          <overwriter-version>
# for details, see https://www.debian.org/doc/debian-policy/ or
# the debian-policy package

case "${1}" in
        'purge'|'remove'|'upgrade'|'failed-upgrade'|'abort-install'|'abort-upgrade'|'disappear')
#               update-desktop-database
#               update-mime-database '/usr/share/mime'
               ;;
        *)
#               echo "postrm called with unknown argument '${1}'" >&2
                exit '0'
                ;;
esac

# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.

exit '0'

Dabei werden die den Fehler auslösenden Zeilen auskommentiert. Danach läßt sich x2goserver-fmbindings sauber entfernen mit

dpkg -P x2goserver-fmbindings

Ein

apt -f install

zeigt, ob noch Probleme bezüglich der Paketverwaltung bestehen, die gelöst werden müssen.

Es können auch andere Pakete ähnliche Fehler in der postrm-Datei enthalten, die dann entsprechend zu korrigieren sind.

APT-Sources vorbereiten

Nun müssen die Paketquellen auf Buster umgestellt werden.

Hierzu editiert man auf der Kommandozeile (wir hatten uns als root auf der Kommandozeile eingeloggt und die /home-Partition ungemounted) die Datei /etc/apt/sources.list und ersetzen in allen Paketquellen stretch mit buster.

Das Upgrade sollte in mehreren Schritten durchgeführt. Es wird zunächst ein minimales Upgrade durchgeführt und erst später das vollständige Upgrade sämtlicher Pakete. Daher sollte in den Paketquellen zunächst nur "main" angegeben werden. "contrib" und "non-free" sollten nur aus wichtigem Grund in den Paketquellen belassen werden, da diese Paketquellen Schwierigkeiten mit Abhängigkeiten hervorrufen könnten. Wir arbeiten während des Updates sowieso nur auf der Kommandozeile, also müssen Grafiktreiber zunächst nicht berücksichtigt werden.

Es wird empfohlen, ein Log während des Updates mitlaufen zu lassen, um bei Problemen ergründen zu können, was schiefgelaufen ist. Hierzu geben Sie folgenden Befehl ein:

script -t 2>~/upgrade-busterschritt1.time -a ~/upgrade-busterschritt1.script

Dabei werden alle Eingaben und Ausgaben der Kommandozeile in eine Datei /root/upgrade-busterschritt1.script abgelegt. Wird das Update unterbrochen, verlassen Sie die spezielle Shell mit "exit". Beginnen Sie danach wieder, indem Sie eine neue Log-Datei anlegen, bei der Sie die Zahl "schritt2" usw. eingeben.

Update

Lesen Sie die geänderten Paketquellen mit

apt update

ein und danach

apt upgrade

Die Nachfragen müssen mit "Y" oder "J" bestätigt werden. Danach werden eine ganze Menge Pakete heruntergeladen und installiert. Sie können das Upgrade weitgehend alleine laufen lassen, müssen allerdings gelegentlich nachsehen, da Fragen zu Einstellungen und Konfigurationen kommen können, die das Upgrade zunächst stoppen.

Bei diesem Schritt wurden bei mir z.B.: 1490 Pakete aktualisiert, 309 neu installiert, 0 zu entfernen und 657 nicht aktualisiert

Treten Fehlermeldung auf, sollte man zunächst mit

exit

das Logging beenden und dann die Fehler bearbeiten, z.B. wenn störende Pakete vorhanden sind, diese löschen. Sie können nach dem Update erneut installiert werden, wenn sie noch in Buster vorhanden sind.

Dann wieder das Logging einschalten:

script -t 2>~/upgrade-busterschritt2.time -a ~/upgrade-busterschritt2.script

Sollte das Upgrade durchgelaufen sein, setzt man in der Datei /etc/apt/sources.list wieder die zusätzlichen Paketquellen "contrib" und "non-free" ein.

Dann erneut:

apt update

und jetzt

apt dist-upgrade

Bei diesem Schritt wurden bei mir z.B.: 678 Pakete aktualisiert, 397 neu installiert, 50 zu entfernen und 0 nicht aktualisiert

Ist das Upgrade durchgelaufen, die Script-Shell (s. oben) mit exit verlassen und booten und Daumen drücken. Wenn Alles gut gegangen ist, kommen Sie wieder am Login-Bildschirm an. Nach dem Einloggen können Sie auf der Kommandozeile kontrollieren, welche Version Sie jetzt benutzen:

cat /etc/debian_version
10.5

Jetzt können Sie über den Paketmanager die Pakete, die Sie vielleicht vor dem Upgrade gelöscht haben, nachinstallieren. Z.B. kann x2go jetzt direkt aus den Debian-Paketquellen installiert werden.

Für virtualbox muss die Paketquelle hinzugefügt oder verändert werden:

deb http://download.virtualbox.org/virtualbox/debian buster contrib

Der Schlüssel muss nicht neu eingespielt werden. Nach einem

apt update

kann virtualbox mit

apt install virtualbox-6.1

installiert werden.

Oracle-Java muss nicht mehr für das KVDT-Prüfmodul installiert werden. Es läuft auch mit OpenJDK-11, was in der Regel installiert ist.

Probleme und Lösungen

Sollte nach dem Update die Tastatur auf englische Tastatur umgestellt worden sein, hilft

apt install keyboard-configuration
apt install console-setup

Ältere NVidia-Grafikkarten werden in Debian 10 Buster nicht mehr unterstützt. Dann kann man versuchen, die proprietären NVidia-Treiber zu installieren. Diese gibt es nicht mehr für 32-Bit-Rechner. Eine Umstellung der 32-Bit-Installation auf eine 64-Bit-Installation, wenn der NVidia-Treiber für die Grafikkarte fehlt, ist eine echte Herausforderung. Es ist dann nerven- und zeitsparender, direkt eine Neuinstallation des Betriebssystems durchführen, wenn es sich um einen Client handelt, evtl. auch mit Linux Mint 20.

Für den Blankoformulardruck wird imagemagick zum Umwandeln der PDF-Dokumente in PNG-Bilder als Hintergrund zum Ausfüllen der Formulare benutzt. In Debian 10 Buster gibt es eine (veraltete) Vorschrift, dass PDF-Dateien nicht in PNGs umgewandelt werden dürfen, da es eine Sicherheitslücke in ghostscript gab, die dabei ausgenutzt werden konnte. Diese Sicherheitspolicy stört nun die Umwandlung. Indem Sie als root die Datei /ect/Imagemagick-6/policy.xml in /etc/Imagemagick-6/policy.xml.out umbenennen, funktioniert es wieder.

Das Programm rename wird offfensichtlich nicht automatisch upgedatet bzw. wird gelöscht. Also:

apt install rename

Weitere Lösungen für Updateprobleme folgen.