zur Startseite

Druckausgabe von https://privat.albicker.org
Iveco Daily 4x4, Hunde und multithematisches Blog

Debian Versionsupdate: Buster nach Bullseye

veröffentlicht am 22.10.2022 mit 2603 Worten - Lesezeit: 13 Minute(n) in * LINUX *

Inhaltsverzeichnis

 

Ausgehend von diesen Überlegungen steht - eigentlich bereits “über die Zeit” - ein Versionsupdate meines Debian-Systems an.

Grundlegendes

Das prinzipielle Vorgehen wird hier auf den Seiten von Debian beschrieben. Die Darstellung ist sehr umfangreich, vieles davon für den “normalen Desktop-User” nicht zwingend erforderlich. Ich beschreibe hier meine Voraussetzungen und die daraus resultierenden Schritte für meine Rechner.

Ausgangssituation

Zunächst mache ich eine Bestandsaufnahme: Was ist wie installiert auf diesem Rechner? Dazu hilft ein Blick in die Paketquellen:

Da gibt es zunächst die offiziellen Debian-Repostitories:

=Bildbeschreibung=

aber auch zusätzliche Quellen:

=Bildbeschreibung=

Bei mir sind das die ebenfalls von Debian bereitgestellten Backports (wo es die eine oder andere neuere Version von Software gibt, die auf das “alte” Buster zurückportiert wurde - für mich ist hier in erster Linie QMapshack und gnucash/aqbanking interessant).

Weiterhin habe ich aber auch ein lokales Repository auf dem Rechner selbst aufgebaut, wo ich verschiedene (tlw. selbst generierte, tlw. von den Entwicklern bereitgestellte) Debian-Installationspakete bereithalte. Die Struktur dieses lokalen Repository folgt den Beschreibungen von der Debian-Seite:

/var/local/repository$ tree -ad
.
└── dists
    ├── bullseye
    │   ├── contrib
    │   │   └── binary-amd64
    │   ├── main
    │   │   └── binary-amd64
    │   └── non-free
    │       └── binary-amd64
    └── buster
        ├── contrib
        │   └── binary-amd64
        ├── main
        │   └── binary-amd64
        └── non-free
            └── binary-amd64

15 directories

Wie man aus dem Verzeichnisbaum sieht, hab ich hier Unterverzeichnisse für die jeweiligen Distributionen angelegt und dort jeweils die entsprechenden Pakete hineinkopiert. Das ist für das eigentliche Update nachher noch wichtig.

Bis hierher ist das ein sehr ‘zahmes’ Setup. Ein Update sollte daher relativ unproblematisch sein.

Nebenbemerkung: ich habe an anderer Stelle mal die Installation der jeweils neuesten darktable-Version aus dem github-Repostory der Entwickler beschrieben. Durch die Verwendung von checkinstall habe ich auch hier keine Handinstallation, sondern das kreierte Debian-Paket wird über das obige lokale Repository in den Paketmechanismus des Systems eingeschleust.

Vorgehensweise

“Inventur”

Zunächst stelle ich sicher, daß auf der Maschine wirklich die letzte Version von Debian läuft (ja, auch ich werde älter 😄)

~$ cat /etc/debian_version
10.13

Dann schaue ich nach, welche Pakete Debian als “nicht-eigene” Pakete anzeigt. Debian gibt dazu die folgenden beiden (alternativen) Befehle an (aptitude mußte ich dazu erst installieren, ebenso apt-forktracer):

~# aptitude search '?narrow(?installed, ?not(?origin(Debian)))'
idA libmicrodns0                    - minimal mDNS resolver and announcer librar
i   lightning-l10n-de               - German language package for lightning - Tr

und

~# apt-forktracer | sort
aqbanking-tools (6.2.10-1~bpo10+1) [Debian Backports: 6.2.10-1~bpo10+1] [Debian: 5.7.8-3]
gnucash (1:4.4-1~bpo10+2) [Debian Backports: 1:4.4-1~bpo10+2] [Debian: 1:3.4-1+deb10u1]
gnucash-common (1:4.4-1~bpo10+2) [Debian Backports: 1:4.4-1~bpo10+2] [Debian: 1:3.4-1+deb10u1]
libaqbanking44 (6.2.10-1~bpo10+1) [Debian Backports: 6.2.10-1~bpo10+1]
libaqbanking-data (6.2.10-1~bpo10+1) [Debian Backports: 6.2.10-1~bpo10+1] [Debian: 5.7.8-3]
libgwengui-gtk3-79 (5.6.0-2~bpo10+1) [Debian Backports: 5.6.0-2~bpo10+1]
libgwenhywfar79 (5.6.0-2~bpo10+1) [Debian Backports: 5.6.0-2~bpo10+1]
libgwenhywfar-data (5.6.0-2~bpo10+1) [Debian Backports: 5.6.0-2~bpo10+1] [Debian: 4.20.0-9]
libmicrodns0 (0.0.10-1)
lightning-l10n-de (1:78.14.0-1~deb10u1)
qmapshack (1.15.2-1~bpo10+1) [Debian Backports: 1.15.2-1~bpo10+1] [Debian: 1.12.3-1]

An dieser Stelle beschließe ich, die Ergebnisse erstmal zu ignorieren, denn:

Update - Vorbereitungen

=Bildbeschreibung=

Backup

Hier nutze ich das mitgelieferte Timeshift so eingestellt, daß Boot- und Systempartition sowie Einstellungen/versteckte Ordner der Home-Partition des Hauptbenutzers gesichtert werden.

Quellen ändern

Wer anschließend nachvollziehen möchte, welche Pakete im einzelnen hinzugefügt oder entfernt wurden während des Updates, der kann jetzt diesen Abschnitt lesen.

Anhand der oben beschriebenen Repositories müssen jetzt die Quellen auf die neuere Distribution angepaßt werden, dies geschieht in den APT source-list-Dateien (/etc/apt/sources.list und Dateien in /etc/apt/sources.list.d/).

Hier sieht das bei mir so aus:
Die Datei sources.list zeigt den folgenden Inhalt, während der Ordner /etc/apt/sources.list.d/ leer ist.

#------------------------------------------------------------------------------#
#                   OFFICIAL DEBIAN REPOS                    
#------------------------------------------------------------------------------#

# deb cdrom:[Debian GNU/Linux 10.3.0 _Buster_ - Official amd64 NETINST 20200208-12:07]/ buster main

# deb cdrom:[Debian GNU/Linux 10.3.0 _Buster_ - Official amd64 NETINST 20200208-12:07]/ buster main

deb http://deb.debian.org/debian/ buster main contrib non-free
deb-src http://deb.debian.org/debian/ buster main contrib non-free

deb http://security.debian.org/debian-security buster/updates main contrib non-free
deb-src http://security.debian.org/debian-security buster/updates main contrib non-free

# buster-updates, previously known as 'volatile'
deb http://deb.debian.org/debian/ buster-updates contrib main non-free

# This system was installed using small removable media
# (e.g. netinst, live or single CD). The matching "deb cdrom"
# entries were disabled at the end of the installation process.
# For information about how to configure apt package sources,
# see the sources.list(5) manual.

# buster-backports
deb http://deb.debian.org/debian buster-backports main

#------------------------------------------------------------------------------#
#                      LOCAL REPOS                       
#------------------------------------------------------------------------------#

###### Lokal erstellte oder heruntergeladene .deb-Files
deb [trusted=yes] file:///var/local/repository buster main contrib non-free

Gemäß Beschreibung tausche ich zunächst überall buster gegen bullseye aus. Im nächsten Schritt folge ich der Anweisung in Kap. 5.1.3 der Release-Notes und passe das Benennungsschema der Sicherheitsupdates an.

Eine genauere Beschreibung der Quellen findet sich im Wiki.

Nach etwas “Aufräumen” (die Hinweise zur netinstall-CD werden nicht mehr benötigt) sieht die Datei dann so aus:

#------------------------------------------------------------------------------#
#                   OFFICIAL DEBIAN REPOS                    
#------------------------------------------------------------------------------#

deb http://deb.debian.org/debian bullseye main contrib non-free
deb-src http://deb.debian.org/debian bullseye main contrib non-free

deb http://deb.debian.org/debian-security/ bullseye-security main contrib non-free
deb-src http://deb.debian.org/debian-security/ bullseye-security main contrib non-free

# bullseye-updates - see https://wiki.debian.org/StableUpdates
deb http://deb.debian.org/debian bullseye-updates main contrib non-free
deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free

# bullseye-backports
deb http://deb.debian.org/debian bullseye-backports main contrib non-free
deb-src http://deb.debian.org/debian bullseye-backports main contrib non-free

#------------------------------------------------------------------------------#
#                      LOCAL REPOS                       
#------------------------------------------------------------------------------#

###### Lokal erstellte oder heruntergeladene .deb-Files
deb [trusted=yes] file:///var/local/repository bullseye main contrib non-free

update durchführen

Paketquellen aktualisieren

Zunächst werden die neuen Paketquellen eingelesen:

~# apt update
Holen:1 file:/var/local/repository bullseye InRelease
Ign:1 file:/var/local/repository bullseye InRelease
Holen:2 file:/var/local/repository bullseye Release [3.315 B]
Holen:2 file:/var/local/repository bullseye Release [3.315 B]
Holen:3 file:/var/local/repository bullseye Release.gpg                
Ign:3 file:/var/local/repository bullseye Release.gpg
OK:4 http://deb.debian.org/debian bullseye InRelease
OK:5 http://deb.debian.org/debian-security bullseye-security InRelease
OK:6 http://deb.debian.org/debian bullseye-updates InRelease
OK:7 http://deb.debian.org/debian bullseye-backports InRelease
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
Aktualisierung für 2393 Pakete verfügbar. Führen Sie »apt list --upgradable« aus, um sie anzuzeigen.

Pakete aktualisieren

Das ist ’ne Menge, was da zu aktualisieren ist. Ich gehe zunächst in zwei Schritten gemäß der Beschreibung vor, hier der Erste:

~# apt upgrade --without-new-pkgs

und dieser Befehl meldet zurück:

1238 aktualisiert, 0 neu installiert, 0 zu entfernen und 1155 nicht aktualisiert.
Es müssen noch 1.082 MB von 1.140 MB an Archiven heruntergeladen werden.
Nach dieser Operation werden 242 MB Plattenplatz zusätzlich benutzt.

und nach dem Teilupdate meldet

~# cat /etc/debian_version
11.5

bereits das Upgrade auf die aktuelle Debian-Version 11 Bullseye.

Ein Paketvergleich zu diesem Zeitpunkt zeigt in der Tat, daß keine Pakete entfernt oder hinzugefügt wurden, lediglich an einigen Stellen wurde die Benennung geändert, immer nach diesem Schema:
aus libcdt5 wurde libcdt5:amd64 etc.

Im nächsten Schritt prüfe ich noch den Hinweis aus der Anleitung bzgl. Kernel-Updates:

Wenn Sie ein Distributions-Upgrade mit (apt full-upgrade) von Buster auf Bullseye durchführen, wird dringend empfohlen, ein linux-image-*-Metapaket zu installieren, falls noch nicht geschehen. Diese Metapakete werden während des Upgrade-Prozesses automatisch eine neue Kernel-Version installieren. Ob Sie eins installiert haben, können Sie verifizieren mit:

~# dpkg -l "linux-image*" | grep ^ii | grep -i meta
ii  linux-image-amd64     4.19+105+deb10u17 amd64   Linux for 64-bit PCs (meta-package)

Das Kernel-Image-Metapaket ist installiert, somit kann jetzt

~# apt full-upgrade

erfolgen mit dem Ergebnis

1151 aktualisiert, 550 neu installiert, 158 zu entfernen und 2 nicht aktualisiert.
Es müssen noch 3.968 MB von 3.975 MB an Archiven heruntergeladen werden.
Nach dieser Operation werden 4.354 MB Plattenplatz zusätzlich benutzt.

An dieser Stelle starte ich den Rechner neu um zu sehen, ob auch der Boot-Vorgang (noch) problemlos funktioniert …

Erste Checks

Softwarequellen und Updates

Nach dem ersten (erfolgreichen) Neustart hab ich zunächst die ganz oben schon gezeigten Software-Quellen und Update-Einstellungen geprüft:

Hauptquellen: wie gehabt:

=Bildbeschreibung=

Zusätzliche Quellen: Security, Backports und lokales Repo ok:

=Bildbeschreibung=

Und dann die Updates:

=Bildbeschreibung=

Hier sind die Sicherheitsupdates nicht für die automatische Aktualisierung aktiviert, das hab ich geändert:

=Bildbeschreibung=

Programme und deren Funktionalitäten

Im zweiten Schritt hab ich mir dann diejenigen Programme angeschaut, die

Und das wären dann:

  1. Hugo
    Logischerweise muß ich als Author dieser Seiten, der einen Artikel über ein Systemupdate schreibt, erstmal checken, ob der überhaupt zu erstellen und veröffentlichen ist 😄.
    Hugo wurde durch den Wechsel von Buster auf Bullseye von der Version 0.64.1 auf 0.80 angehoben. Ein erstes hugo server -w --disableFastRender zeigt mir die Vorschau dieser Homepage ohne Fehler(meldungen). Das ist erstmal gut so, denn in der Vergangenheit haben Versionsupdates gerne mal zu Inkompatiblitäten der erstellten Templates geführt.

  2. darktable
    Da gibt es in verschiedenen Modulen in darktable teils sehr lange Auswahllisten, die über die Bildschirmhöhe hinausreichen (z. B. die Auswahlliste der Nikon-Objektive in der Objektivkorrektur). Die nicht sichtbaren Einträge waren nicht erreichbar, durch die Aktualisierung der Cinnamon-Desktop-Komponenten durch das Versionsupdate nach Bullseye können diese Einträge nun durch Scrollen erreicht und angezeigt werden.

  3. gnucash/aqbanking
    Hier ist mir v. a. die Funktion wichtig, Kontobewegungen direkt abrufen und importieren zu können (FinTS). Das funktioniert.

  4. qmapshack
    Mein GPS-Track/Routing/Dokumentations-Tool. Selbe Version wie in Buster, scheint zu laufen. Dazu wird’s hoffentlich hier mal noch einen ausführlichen Beitrag über die Einrichtung und daraus resultierenden Möglichkeiten des Tools geben …

Grundsätzlicher Überblick der Aktualisierungen

Wer sich dafür interessiert, was im Detail durch das Versionsupgrade alles “passiert” ist, der kann so vorgehen (als User, nicht:

Das von mir verwendete Programm Meld ermöglicht es, diese Analyse als “Patch” abzuspeichern, die so erstellte Datei kann dann in einer Tabellenkalkulations-Software entsprechend gefiltert und gesichtet werden.

Und was stelle ich dabei fest: Etliche Programme sind schlicht “abhanden gekommen”:

Nacharbeiten

Verwaiste Konfigurationsdateien

In der Anleitung wird vorgeschlagen, die Installation auf Konfigurationsdateien zu überprüfen, deren zugehörige Pakete nicht mehr vorhanden sind. Das zeigt hier folgendes Ergebnis:

~# dpkg -l | awk '/^rc/ { print $2 }'
fuse
geda-gattrib
geda-gnetlist
geda-gschem
geda-gsymcheck
geda-utils
geda-xgsch2pcb
grub-efi-amd64
libapache2-mod-wsgi
libktoblzcheck1v5:amd64
linux-image-4.19.0-10-amd64
linux-image-4.19.0-11-amd64
linux-image-4.19.0-12-amd64
linux-image-4.19.0-13-amd64
linux-image-4.19.0-14-amd64
linux-image-4.19.0-16-amd64
linux-image-4.19.0-17-amd64
linux-image-4.19.0-18-amd64
linux-image-4.19.0-19-amd64
linux-image-4.19.0-20-amd64
linux-image-4.19.0-21-amd64
linux-image-4.19.0-8-amd64
linux-image-4.19.0-9-amd64
python
python-pygments
python-twisted
python-twisted-core
taskcoach

Hier habe ich mich dazu entschlossen alle diese Dateien zu entfernen.

~# apt purge $(dpkg -l | awk '/^rc/ { print $2 }')

Grund: die geda-(CAD-)Suite ist im Repository nicht mehr vorhanden, taskcoach kann wegen fehlender Abhängigkeit nicht installiert werden. Die Kernel-Configs beziehen sich auf ältere Kernel, aktuell in Bullseye nach dem Update wird Kernel 5.10.0-18-amd64 x86_64 verwendet.

Veraltete Pakete

Die Bezeichnung “veraltete Pakete” meint solche Pakete, die nicht mehr in einem der Repositories vorhanden sind. Auch das gibt eine lange Liste:

~# aptitude search '~o'
i A gcc-7-base                       - GCC, the GNU Compiler Collection (base package)                                         
i   gcc-8-base                       - GCC, the GNU Compiler Collection (base package)                                         
i   libapt-inst2.0                   - deb package format runtime library         
i   libapt-pkg5.0                    - package management runtime library         
i   libdns-export1104                - Exported DNS Shared Library                
i A libexiv2-14                      - EXIF/IPTC/XMP metadata manipulation library
i   libffi6                          - Foreign Function Interface library runtime 
i   libgcc1                          - GCC support library                        
i   libhogweed4                      - low level cryptographic library (public-key cryptos)                                    
i   libip4tc0                        - netfilter libip4tc library                 
i   libip6tc0                        - netfilter libip6tc library                 
i   libisc-export1100                - Exported ISC Shared Library                
i   libjson-c3                       - JSON manipulation library - shared library 
i   libnettle6                       - low level cryptographic library (symmetric and one-way cryptos)                         
i   libprocps7                       - library for accessing process information from /proc                                    
i A libwxgtk3.0-0v5                  - wxWidgets Cross-platform C++ GUI toolkit (GTK+ runtime)                                 
i A libxfce4ui-1-0                   - widget library for Xfce - Gtk+2 variant    
i A libxfconf-0-2                    - Client library for Xfce4 configure interface                                            
i A linux-image-4.19.0-22-amd64      - Linux 4.19 for 64-bit PCs (signed)         
i   perl-modules-5.28                - Core Perl modules                          
i   spek                             - acoustic spectrum analyser                 
i A ufraw-batch                      - batch importer for raw camera images    

i an erster Stelle in der ersten Spalte der Liste sagt: das Paket ist installiert. A an dritter Stelle sagt: die Installation erfolgte automatisch.

Die gelisteten Pakete wären mit

~# aptitude purge '~o'

zu entfernen … aber das will ich mir erstmal noch in Ruhe anschauen. spek beispielsweise würde ich vorerst gerne mal behalten … da könnte ich mir vorstellen, das in das eigene lokale Repository zu verschieben, solange das noch funktioniert.

Das Gute am Upgrade 😕

Das Paket roger-router ist wieder da: es bietet Direktzugriff auf eine Fritz!box und - wir sind ja in Deutschland 😉 - stellt einen Faxdrucker zur Verfügung … - aber das Schlechte daran ist, daß der Einrichtungsassistent abstürzt 😦 und ich einstweilen die dabei erstellten Konfigurationsdateien nicht finde (die muß es aber geben, denn am Anfang wird ein Profilname erfragt, der sich nach dem Absturz nicht ein zweites Mal eingeben läßt).

Außerdem lerne ich bei der Gelegenheit gleich:

~# lpadmin -p Roger-Router-Fax -m drv:///sample.drv/generic.ppd -v socket://localhost:9100/ -E -o PageSize=A4..
lpadmin: Printer drivers are deprecated and will stop working in a future version of CUPS.

Hintergrund: für den Fax-Betrieb mit Roger-Router muß ein virtueller Drucker eingerichtet werden. Scheint also nur eine Frage der Zeit zu sein …

 


weitere Artikel