Installiere einmalig das Paket apt-listbugs. Es informiert während den Aktualisierungen über aktuell gemeldete Fehler.
apt update apt install apt-listbugs
Achtung: Mache neue Paketinstallationen und Systemaktualisierungen in Debian Unstable/Sid niemals in der grafischen Benutzeroberfläche, auch nicht im grafischen Terminal, sondern verwende immer die Textkonsole!
Während Debian Testing sich nach strengen programmiertechnischen Regeln immer neu zusammensetzt, fehlt in Debian Unstable diese Vorauswahl.
Daher unterscheidet sich der Aktualisierungsprozess unter Debian Unstable deutlich von Debian Testing:
apt update apt full-upgrade
… und erst mal die Textausgabe lesen!
Wichtig ist die Zeile mit den statistischen Angaben am Ende der Textausgabe (Beispiel)
... 32 aktualisiert, 5 neu installiert, 8 zu entfernen und 0 nicht aktualisiert. ...
… genauer gesagt interessiert die Anzahl der vorgeschlagenen zu entfernenden Pakete (hier im Beispiel: 8).
Beispiel-Textausgabe:
Paketlisten werden gelesen... Abhängigkeitsbaum wird aufgebaut.... Statusinformationen werden eingelesen.... Paketaktualisierung (Upgrade) wird berechnet... Die folgenden NEUEN Pakete werden installiert: linux-headers-5.9.0-5-amd64 linux-headers-5.9.0-5-common linux-image-5.9.0-5-amd64 Die folgenden Pakete werden aktualisiert (Upgrade): binutils binutils-common binutils-source binutils-x86-64-linux-gnu doc-debian gir1.2-rest-0.7 javascript-common libalgorithm-diff-perl libauthen-sasl-perl libbinutils libboost-filesystem1.74.0 libboost-iostreams1.74.0 libboost-locale1.74.0 libboost-program-options1.74.0 libboost-regex1.74.0 libboost-thread1.74.0 libctf-nobfd0 libctf0 libedit2 libencode-locale-perl libglib2.0-0 libglib2.0-bin libglib2.0-data libglib2.0-doc libgraphicsmagick-q16-3 libhtml-format-perl libio-html-perl libllvm11 liblz4-1 librest-0.7-0 libtie-ixhash-perl libwww-perl libx11-protocol-perl libxaw7 libxext6 linux-headers-amd64 linux-image-amd64 netcat-openbsd python3-cupshelpers python3-debian python3-debianbts sudo system-config-printer system-config-printer-common system-config-printer-udev texlive-bibtex-extra texlive-extra-utils texlive-font-utils texlive-formats-extra texlive-latex-extra texlive-plain-generic texlive-pstricks texlive-science xbitmaps xfonts-encodings 55 aktualisiert, 3 neu installiert, 0 zu entfernen und 0 nicht aktualisiert. Es müssen 316 MB an Archiven heruntergeladen werden. Nach dieser Operation werden 344 MB Plattenplatz zusätzlich benutzt. Möchten Sie fortfahren? [J/n]
… in diesem Fall kann mit der Aktualisierung fortgefahren werden.
Gekürzte Beispiel-Ausgabe
Paketlisten werden gelesen... Abhängigkeitsbaum wird aufgebaut.... Statusinformationen werden eingelesen.... Paketaktualisierung (Upgrade) wird berechnet... Die folgenden Pakete wurden automatisch installiert und werden nicht mehr benötigt: freecad-runtime libclang1-9 libcroco3 libllvm9 linux-headers-5.9.0-3-amd64 linux-headers-5.9.0-3-common linux-image-5.9.0-3-amd64 Verwenden Sie »apt autoremove«, um sie zu entfernen. Die folgenden Pakete werden ENTFERNT: libexo-helpers libfreecad-python3-0.18 libocct-data-exchange-7.4 libocct-foundation-7.4 libocct-modeling-algorithms-7.4 libocct-modeling-data-7.4 libocct-ocaf-7.4 libocct-visualization-7.4 Die folgenden NEUEN Pakete werden installiert: libclang1-11 libfreecad-python3-0.19 libgepub-0.6-0 libgtop-2.0-11 libgtop2-common libocct-data-exchange-7.5 libocct-foundation-7.5 libocct-modeling-algorithms-7.5 libocct-modeling-data-7.5 libocct-ocaf-7.5 libocct-visualization-7.5 libqt5xmlpatterns5 xfce4-helpers Die folgenden Pakete werden aktualisiert (Upgrade): autoconf autoconf-doc autopoint autotools-dev binutils binutils-common binutils-source binutils-x86-64-linux-gnu blt bluetooth bluez bluez-obexd chromium chromium-common chromium-l10n chromium-sandbox cups cups-bsd ... xfdesktop4-data xfonts-scalable xfwm4 xorg-docs xorg-docs-core xorg-sgml-doctools xscreensaver xscreensaver-data xscreensaver-data-extra xscreensaver-gl xscreensaver-gl-extra 330 aktualisiert, 13 neu installiert, 8 zu entfernen und 0 nicht aktualisiert. Es müssen 281 MB an Archiven heruntergeladen werden. Nach dieser Operation werden 62,6 MB Plattenplatz zusätzlich benutzt. Möchten Sie fortfahren? [J/n]
Solche Versionssprünge sind in Rolling Release Distributionen normal, und die Aktualisierung kann im allgemeinen fortgesetzt werden.
Beispiel-Textausgabe:
Paketlisten werden gelesen... Abhängigkeitsbaum wird aufgebaut.... Statusinformationen werden eingelesen.... Paketaktualisierung (Upgrade) wird berechnet... Die folgenden Pakete wurden automatisch installiert und werden nicht mehr benötigt: dnsmasq-base libantlr3c-3.4-0 libbctoolbox1 libbelcard1 libbellesip1 libbelr1 libbluetooth3 libbzrtp0 liblinphone10 libmediastreamer11 libndp0 libnm0 libnma-common libnma0 libortp15 libteamdctl0 linphone-cli linphone-common linphone-nogtk mobile-broadband-provider-info Verwenden Sie »apt autoremove«, um sie zu entfernen. Die folgenden Pakete werden ENTFERNT: libbellesip0 liblinphone9 libmediastreamer-base10 libmediastreamer-voip10 libortp13 linphone network-manager network-manager-gnome Die folgenden NEUEN Pakete werden installiert: libbellesip1 liblinphone10 libmediastreamer11 libortp15 linphone-cli Die folgenden Pakete werden aktualisiert (Upgrade): firebird3.0-common firebird3.0-common-doc firebird3.0-server-core firebird3.0-utils fonts-lmodern fonts-texgyre geoclue-2.0 gir1.2-geoclue-2.0 gir1.2-goa-1.0 libbctoolbox1 libbelcard1 libbelr1 libbzrtp0 libdist-checkconflicts-perl libemail-date-format-perl libfbclient2 libfm-extra4 libgeoclue-2-0 libgoa-1.0-0b libgoa-1.0-common libib-util libzstd1 linphone-common linphone-nogtk lmodern lxmenu-data mobile-broadband-provider-info ppp tex-gyre tipa ttf-bitstream-vera zstd 32 aktualisiert, 5 neu installiert, 8 zu entfernen und 0 nicht aktualisiert. Es müssen 51,1 MB an Archiven heruntergeladen werden. Nach dieser Operation werden 22,5 MB Plattenplatz freigegeben. Möchten Sie fortfahren? [J/n]
Hier sollte die weitere Aktualisierung immer abgebrochen werden.
Man kann möglicherweise zuerst einzelne Pakete aktualisieren, dann ein „kleines Update“ versuchen.
Ein Paket lässt sich einschließlich Abhängigkeiten einzeln aktualisieren, in dem es neu installiert wird. Dabei wird das Paket auf „Manuell installiert“ gesetzt, weshalb dieser Schritt nur bei bereits manuell installierten Sinn macht. Die Suche nach diesen Paketen kann bei mehreren hundert gelisteten ganz schön mühselig sein. Das folgende kleine Programm mit 2 ineinander geschachtelten Schleifen hilft dabei
echo Möglicherweise manuell installiert wurden: apt list --upgradable | while read -r u1 u2; do apt-mark showmanual | while read -r p; do if [ "$u1" == "$p/unstable" ]; then echo gefunden: $p fi done done
Die angezeigte Liste wird so lange abgearbeitet
apt install <paketname>
… bis nur noch die Pakete übrig bleiben, die zum nicht erwünschten Entfernen führen würden. Anschließend kann man noch ein „kleines Update“ machen
apt upgrade
und die nicht aktualisierten Pakete belässt man mindestens bis zum jeweils nächsten Tag zurückgehalten.
Allerdings … wenn nicht gerade wichtige Sicherheitsupdates anliegen lohnt es sich meist einfach nur ein oder mehrere Tage auszusitzen. Die vorherige Beispiel-Textausgabe (hier) nur 1 Tag später zeigt neben etlichen zusätzlichen Updates wieder eine Situation wie oben unter dem 2. Fall beschrieben:
Paketlisten werden gelesen... Abhängigkeitsbaum wird aufgebaut.... Statusinformationen werden eingelesen.... Paketaktualisierung (Upgrade) wird berechnet... Die folgenden Pakete wurden automatisch installiert und werden nicht mehr benötigt: linphone-cli linphone-nogtk Verwenden Sie »apt autoremove«, um sie zu entfernen. Die folgenden Pakete werden ENTFERNT: libbellesip0 liblinphone9 libmediastreamer-base10 libmediastreamer-voip10 libortp13 Die folgenden NEUEN Pakete werden installiert: libbellesip1 libbpf0 liblinphone++10 liblinphone10 libmediastreamer11 libortp15 linphone-cli linphone-desktop qml-module-qt-labs-platform Die folgenden Pakete werden aktualisiert (Upgrade): courier-authlib fig2dev firebird3.0-common firebird3.0-common-doc firebird3.0-server-core firebird3.0-utils fonts-lmodern fonts-texgyre geoclue-2.0 gir1.2-geoclue-2.0 gir1.2-goa-1.0 iproute2 iproute2-doc libbctoolbox1 libbelcard1 libbelr1 libboost-filesystem1.74.0 libboost-iostreams1.74.0 libboost-locale1.74.0 libboost-program-options1.74.0 libboost-regex1.74.0 libboost-thread1.74.0 libbzrtp0 libdist-checkconflicts-perl libemail-date-format-perl libfbclient2 libfm-extra4 libgeoclue-2-0 libgoa-1.0-0b libgoa-1.0-common libib-util libjs-sphinxdoc libnm0 libnss-systemd libpam-systemd libpyside2-py3-5.15 libshiboken2-py3-5.15 libsystemd0 libudev1 libwireshark-data libwireshark14 libwiretap11 libwsutil12 libxcb-composite0 libxcb-damage0 libxcb-doc libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-randr0 libxcb-render0 libxcb-res0 libxcb-shape0 libxcb-shm0 libxcb-sync1 libxcb-xfixes0 libxcb-xinerama0 libxcb-xinput0 libxcb-xkb1 libxcb-xv0 libxcb1 libxcb1-dev libzstd1 linphone linphone-common linphone-nogtk lmodern lxmenu-data mailcap mobile-broadband-provider-info network-manager ppp python3-pyside2.qtcore python3-pyside2.qtgui python3-pyside2.qtopengl python3-pyside2.qtsvg python3-pyside2.qtuitools python3-pyside2.qtwidgets python3-pyside2.qtxml shiboken2 systemd systemd-sysv systemd-timesyncd tex-gyre tipa ttf-bitstream-vera udev wireshark wireshark-common wireshark-doc wireshark-gtk wireshark-qt zstd 94 aktualisiert, 9 neu installiert, 5 zu entfernen und 0 nicht aktualisiert. Es müssen 111 MB an Archiven heruntergeladen werden. Nach dieser Operation werden 6.780 kB Plattenplatz zusätzlich benutzt. Möchten Sie fortfahren? [J/n]
… und die Systemaktualisierung konnte vollständig durchgeführt werden.
… kann man die laufende Aktualisierung erst mal abbrechen, setzt die fehlerhaften Pakete auf „Halten“ z. B. mit
echo "<paketname> hold" | dpkg --set-selections
und fährt danach mit dem Aktualisierungsvorgang fort.
Eine Liste mit den gehaltenen Paketen erhält man z. B. mit
dpkg --get-selections | grep hold
Wenn der Fehler behoben ist setzt man den Haltezustand wieder zurück z. B. mit
echo "<paketname> install" | dpkg --set-selections
Nicht mehr benötigte Pakete entfernen
apt autoremove
Den Apt-Zwischenspeicher leeren
apt autoclean apt clean
Einige Pakete werden von „apt autoremove“ nicht vollständig entfernt. Diese lassen sich finden mit
dpkg --get-selections | grep deinstall
Die so gefundenen Pakete lassen sich vollständig entfernen mit
apt purge <paketname>
Anders als Debian Stable, Testing oder Unstable ist Experimental keine vollständige Distribution. Debian Experimental ist als Erweiterung zu Debian Unstable gedacht und funktioniert nur so richtig.
In der Voreinstellung müssen Pakete aus Debian Experimental explizit installiert / aktualisiert werden
apt update apt -t experimental install <paketname>
Die zur Zeit aus Debian Experimental installierten Pakete lassen sich auflisten mit
aptitude search ~S~i~Aexperimental