Debian: Einzelne Pakete aus Testing installieren

Auf meinen PCs oder Notebooks setze ich in der Regel auf Debian oder Arch Linux. Dieser Mix ermöglicht mir entweder eine stabile Distribution mit Point-Releases (Debian) oder ein Rolling-Release-Prinzip mit wirklich aktueller Software (Arch Linux). Somit habe ich das Beste aus zwei Welten. Brauch ich auf meinen Debian-Kisten vereinzelt aktuellere Software, helfe ich mir mit Flatpak aus.

In seltenen Fällen möchte ich auf Debian neuere Software nutzen, die ich nicht über Flatpak installieren kann oder will und die aus einer zuverlässigen Paket-Quelle stammen soll. Hierfür gibt es für mich zwei Möglichkeiten:

  • Debian Backports : Hier handelt es sich um Pakete aus dem Testing-Repo die jedoch mit dem aktuellen Stable-Release kompatibel sind (Zitat: adjusted and recompiled for usage on Debian stable). Das ist super. Allerdings muss das jeweilige Paket auch in den Backports vorliegen. Häufig ist genau das Paket, das ich suche, hierüber nicht verfügbar.
  • Debian Testing aktivieren und über Apt pinning dafür sorgen, dass nur bestimmte Pakete aus Testing installiert werden. Grundsätzlich verbleibt das System auf dem jeweiligen Stable-Zweig.

Für mein heutiges Bedüfrnis, ein aktuelles Paket fwupd zu installieren, musste ich an dieser Stelle Variante 2 wählen, da dieses nicht über die Debian Backports angeboten wird.

Vorbereitung der Debian Quellen

In einem ersten Schritt müssen die notwendigen Einträge für Testing in den Quellen eingetragen werden. Ich hab seit Debian Trixie die neue Schreibweise nach deb822 übernommen. Sofern dass auf einem bestehenden System noch nicht nach diesem System umgebaut wurde, hilft der Befehl apt modernize-sources. Mehr Details gibt es auf Linuxnews dazu.

Meine Debian-Quellen liegen in der Datei /etc/apt/sources.list.d/debian.sources und haben folgenden Aufbau:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Types: deb deb-src
URIs: http://deb.debian.org/debian/
Suites: trixie
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Types: deb deb-src
URIs: http://security.debian.org/debian-security/
Suites: trixie-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Types: deb deb-src
URIs: http://deb.debian.org/debian/
Suites: trixie-updates
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Types: deb
URIs: http://deb.debian.org/debian/
Suites: trixie-backports
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
Enabled: yes

Types: deb
URIs: http://deb.debian.org/debian/
Suites: testing
Components: main contrib non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
Enabled: yes

Neben den Backports (im vierten Code-Block) liegen im nachfolgenden Block die Testing Quellen. Dieser Block überschreibt allerdings die Einstellungen des ersten Blocks (Stable-Quellen). Würde jetzt das System aktualisiert werden, zieht es den Rechner komplett auf Debian Testing hoch. Und genau das soll vermieden werden.

Feinjustierung mit Apt Pinning

Mit der zusätzlichen Datei /etc/apt/preferences können nun Einstellungen vorgenommen werden, welche Pakete aus welchen Quellen kommen sollen. Für meinen Verwendungszweck hier, soll nur Das Paket fwupd aus testing installiert werden. Da es hier noch die Abhängikeiten auf zwei weitere Pakete gibt (libfwupd3 und libflashrom1), sind diese ebenfalls aus testing zu beziehen. Die Datei hat folgenden Aufbau:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
Package: *
Pin: release n=trixie
Pin-Priority: 900

Package: *
Pin: release a=testing
Pin-Priority: 50

Package: fwupd
Pin: release a=testing
Pin-Priority: 950

Package: libfwupd3
Pin: release a=testing
Pin-Priority: 950

Package: libflashrom1
Pin: release a=testing
Pin-Priority: 950

Im Prinzip steht hier, dass alle Pakete(Package: *) mit einer Priorität von 900 von der aktuellen stabilen Debian Version trixie installiert werden sollen. Testing hat hingegen eine kleine Priorität bekommen. Die drei genannten Ausnahmen haben hingegen eine höhere Priorität als die üblichen Pakete und werden daher aus dem Testing-Repo genommen.

Angaben zu Trixie-Backports sind hier nicht enthalten. Dieses Repo erhält standardmäßig eine Prioriät von 100 und kann mit dem Befehl apt install -t trixie-backports <paket> verwendet werden.

Damit ist die Einstellung fertig. Das Programm fwupd steht nun über beide Repos (Trixie und Testing) zu Verfügung. Dies kann mit dem Befehl apt show -a fwupd eingesehen werden:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Package: fwupd
Version: 2.0.17-6
Priority: optional
Section: admin
Maintainer: Debian EFI <debian-efi@lists.debian.org>
Installed-Size: 11,7 MB
Provides: fwupdate
Depends: systemd-sysusers, libarchive13t64 (>= 3.2.1), libblkid1 (>= 2.17.2), libc6 (>= 2.38), libcbor0.10 (>=>
Recommends: python3, bolt, default-dbus-system-bus | dbus-system-bus, udisks2, fwupd-signed, jq
Suggests: gir1.2-fwupd-2.0
Conflicts: fwupdate-amd64-signed, fwupdate-arm64-signed, fwupdate-armhf-signed, fwupdate-i386-signed
Breaks: fwupdate (<< 12-7), libdfu-dev (<< 0.9.7-1), libdfu1 (<< 0.9.7-1)
Replaces: fwupdate (<< 12-7), gir1.2-dfu-1.0 (<< 0.9.7-1), libdfu-dev (<< 0.9.7-1), libdfu1 (<< 0.9.7-1)
Homepage: https://github.com/fwupd/fwupd
Download-Size: 4.729 kB
APT-Manual-Installed: yes
APT-Sources: http://deb.debian.org/debian testing/main amd64 Packages
Description: Daemon für Firmware-Updates
 Der Daemon fwupd ermöglicht Sitzungs-Software die Aktualisierung von
 Geräte-Firmware. Sie können entweder eine GUI-Softwareverwaltung wie
 GNOME Software verwenden, um Updates anzusehen und anzuwenden, oder
 das Kommandozeilenwerkzeug oder direkt die D-Bus-Systemschnittstelle.
 Firmware-Updates werden für eine Vielzahl von Technologien unterstützt.
 Siehe <https://github.com/fwupd/fwupd> für Details.

Package: fwupd
Version: 2.0.8-3
Priority: optional
Section: admin
Maintainer: Debian EFI <debian-efi@lists.debian.org>
Installed-Size: 10,5 MB
Provides: fwupdate
Depends: systemd-sysusers, libarchive13t64 (>= 3.2.1), libblkid1 (>= 2.17.2), libc6 (>= 2.38), libcbor0.10 (>=>
Recommends: python3, bolt, default-dbus-system-bus | dbus-system-bus, udisks2, fwupd-signed, jq
Suggests: gir1.2-fwupd-2.0
Conflicts: fwupdate-amd64-signed, fwupdate-arm64-signed, fwupdate-armhf-signed, fwupdate-i386-signed
Breaks: fwupdate (<< 12-7), gir1.2-dfu-1.0 (<< 0.9.7-1), libdfu-dev (<< 0.9.7-1), libdfu1 (<< 0.9.7-1)
Replaces: fwupdate (<< 12-7), gir1.2-dfu-1.0 (<< 0.9.7-1), libdfu-dev (<< 0.9.7-1), libdfu1 (<< 0.9.7-1)
Homepage: https://github.com/fwupd/fwupd
Download-Size: 4.409 kB
APT-Sources: http://deb.debian.org/debian trixie/main amd64 Packages
Description: Daemon für Firmware-Updates
 Der Daemon fwupd ermöglicht Sitzungs-Software die Aktualisierung von
 Geräte-Firmware. Sie können entweder eine GUI-Softwareverwaltung wie
 GNOME Software verwenden, um Updates anzusehen und anzuwenden, oder
 das Kommandozeilenwerkzeug oder direkt die D-Bus-Systemschnittstelle.
 Firmware-Updates werden für eine Vielzahl von Technologien unterstützt.
 Siehe <https://github.com/fwupd/fwupd> für Details.

Durch die höher gesetzte Priorität in der /etc/apt/preferences wird die neueste Version (hier 2.0.17-6) über den regulären Befehl installiert:

apt install fwupd

Fazit

Damit bin ich glücklich. Mein Paket ist in der gewünschten (aktuelleren) Version installiert, ich bleibe auf dem Stable-Release (Trixie) und hab trotzdem eine vertrauenswürdige Art und Weise der Installation über die Paket-Quellen von Debian.

Der Grund für den Wunsch nach der höheren Version ist übrigens ein Bug in der über Trixie bereit gestellten Version 2.0.8-3, die ein Firmware-Update meines Thunderbold Host Controllers verhindert .

Quellen