Warum kommen diese Pakete aus den Backports?

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Benutzeravatar
syncronic
Beiträge: 4
Registriert: 14.09.2023 20:04:07
Kontaktdaten:

Warum kommen diese Pakete aus den Backports?

Beitrag von syncronic » 16.03.2024 22:27:01

Hallo,
das Backports Repository hab ich aktiviert und dann installiert:

Code: Alles auswählen

sudo apt -t bookworm-backports install gpsprune
sudo apt -t bookworm-backports install josm-installer
sudo apt -t bookworm-backports install electrum
Das funktioniert soweit auch problemlos. Bei den ersten beiden geht es beim Update nur darum, ein java jar auszutauschen, das einzige "richtige Programm" ist electrum. Wenn ich nun aber versuche nach Backport Paketen zu suchen, ergibt sich:

Code: Alles auswählen

> dpkg-query -W | grep '~bpo'
electrum        4.5.2+dfsg-2~bpo12+1
gpsprune        23.2-1~bpo12+1
josm-installer  0.0.3+svn18889~bpo12+1
libldb2:amd64   2:2.7.2+samba4.18.8+dfsg-1~bpo12+1
libsmbclient:amd64      2:4.18.8+dfsg-1~bpo12+1
libwbclient0:amd64      2:4.19.4+dfsg-3~bpo12+1
linux-compiler-gcc-12-x86       6.5.10-1~bpo12+1
linux-libc-dev:amd64    6.5.10-1~bpo12+1
python3-electrum        4.5.2+dfsg-2~bpo12+1
python3-ldb     2:2.7.2+samba4.18.8+dfsg-1~bpo12+1
python3-samba   2:4.18.8+dfsg-1~bpo12+1
samba-common    2:4.19.4+dfsg-3~bpo12+1
samba-dsdb-modules:amd64        2:4.18.8+dfsg-1~bpo12+1
samba-libs:amd64        2:4.18.8+dfsg-1~bpo12+1
Ein paar könnte ich mit autoremove entfernen. Es bleiben aber:

samba-libs
libldb2
libsmbclient
libwbclient0
linux-compiler-gcc-12-x86
linux-libc-dev
python3-electrum

Die ersten 4 gehören wohl irgendwie zu Samba, das habe ich aber nie aus den Backports installiert. Wie kommt das dann da rein? Nach meinem Verständnis kommen Pakete nur dann aus den Backports, wenn ich das selbst veranlasse. Auch bei den beiden linux Paketen frage ich mich, was die da sollen?

Jetzt soll ich die Pakete aktualisieren. Apt macht das schon voll, discover ziert sich noch etwas. Damit entferne ich mich aber immer weiter von stable und wenn ich das verweigere, bekomme ich keine Patches. Wie gehe ich damit jetzt am besten um und wie vermeide ich sowas in Zukunft?

Servus
syncronic
Debian 12 mit KDE, Lenovo Thinkpad T490

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Warum kommen diese Pakete aus den Backports?

Beitrag von smutbert » 16.03.2024 22:54:24

Wenn du

Code: Alles auswählen

apt -t bookworm-backports install gpsprune
ausführst, selektierst du bookworm-backports für alle zu installierenden Pakete, das heißt auch alle (noch nicht installierten) Abhängigkeiten werden aus den backports installiert.
Wenn du so wenig wie möglich aus den backports installierern willst wäre

Code: Alles auswählen

apt install gpsprune/bookworm-backports
das gewesen, was du willst. Das hätte dieses eine Paket aus den backports und alle weiteren notwendigen Abhängigkeiten soweit möglich aus dem normalen bookworm-Zweig geholt. (So werden nur Abhängigkeiten aus den backports installiert, die auch wirklich notwendig sind, etwa weil die Version im normalen Zweig zu alt ist, um die Abhängigkeit zu erfüllen.)


Das was jetzt kommt ist etwas riskant:

Was du machen könntest um die nicht notwendigen Pakete aus den backports loszuwerden, wäre die Pakete, die du nicht explizit aus den backports installiert hast, zu deinstallieren und dabei die Abhängigkeiten zu ignorieren

Code: Alles auswählen

dpkg -P --force-all paket1 paket2 ...
Danach dürften so einige Abhängigkeiten nicht erfüllt sein, aber das kannst du mit

Code: Alles auswählen

apt -f install
wieder beheben. Dabei wird apt die Pakete aus dem normalen Zweig bevorzugen und nur dort die backports nehmen wo es notwendig ist.

Bei deiner Liste der Pakete halte ich dieses Vorgehen für möglich. Wären für das System wichtigere Pakete dabei (wie z.B. irgendein zu systemd gehörendes), würde dir das System eventuell abschmieren und das möglicherweise in einem nicht funktionsfähigen Zustand.


Die sicherere Methode wäre die Priorität des normalen Zweigs (vorübergehend) so weit zu erhöhen, dass Downgrades durchgeführt werden, aber das kann ich nicht so aus dem Ärmel schütteln. Möglicherweise könnte so etwas wie

Code: Alles auswählen

apt install paket1/bookworm paket2/bookworm ...
funktionieren, aber es könnte auch an Abhängigkeiten der Pakete untereinander scheitern und dir gehen die Informationen verloren, welche dieser Pakete automatisch und welches manuell installiert wurden.
Zuletzt geändert von smutbert am 16.03.2024 23:05:03, insgesamt 1-mal geändert.
Grund: kleine Korrektur

Benutzeravatar
syncronic
Beiträge: 4
Registriert: 14.09.2023 20:04:07
Kontaktdaten:

Re: Warum kommen diese Pakete aus den Backports?

Beitrag von syncronic » 17.03.2024 07:15:56

Danke smutbert für die ausführliche Antwort, muss ich mir mal durch den Kopf gehen lassen. Dein letzter Vorschlag würde wenigstens zum Teil funktionieren:

Code: Alles auswählen

> sudo apt install linux-libc-dev/bookworm
...
Version »6.1.76-1« (Debian:12.5/stable [amd64]) für »linux-libc-dev« gewählt.
...
Die folgenden Pakete werden durch eine ÄLTERE VERSION ERSETZT (Downgrade):
  linux-libc-dev
0 aktualisiert, 0 neu installiert, 1 durch eine ältere Version ersetzt, 0 zu entfernen und 12 nicht aktualisiert.
Es müssen 1.930 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 777 kB Plattenplatz freigegeben.
...
Dann würde dieses Paket aber als manuell installiert gelten und autoremove würde es nie entfernen, korrekt?

Gibt es eigentlich eine Möglichkeit, bei einem vorgegebenen Paket herauszufinden, welche anderen Pakete das als Abhängigkeit haben?

Dass die beiden von Dir erwähnten Methoden Backports zu installieren unterschiedliche Auswirkungen haben, war mir damals nicht bewusst. Darauf wird selbst im Wiki nicht hingewiesen.
Debian 12 mit KDE, Lenovo Thinkpad T490

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Warum kommen diese Pakete aus den Backports?

Beitrag von smutbert » 17.03.2024 11:11:29

syncronic hat geschrieben: ↑ zum Beitrag ↑
17.03.2024 07:15:56
Dann würde dieses Paket aber als manuell installiert gelten und autoremove würde es nie entfernen, korrekt?
Ja, wobei du das Problem getrennt angehen könntest. Zuerst eine Liste der manuell installierten Pakete erstellen und in einer Datei speichern

Code: Alles auswählen

apt-mark showmanual > manuell_installiert.txt
Danach die Downgrades machen und dabei in Kauf nehmen, dass die hinterher alle als manuell installiert markiert sind. Dafür dann alle als manuell installiert markierten Pakete als automatisch installiert markieren und hinterher nur die Pakete aus der Liste wieder als manuell installiert markieren

Code: Alles auswählen

apt-mark auto $(apt-mark showmanual)
apt-mark manual $(cat manuell_installiert.txt)
syncronic hat geschrieben: ↑ zum Beitrag ↑
17.03.2024 07:15:56
Gibt es eigentlich eine Möglichkeit, bei einem vorgegebenen Paket herauszufinden, welche anderen Pakete das als Abhängigkeit haben?
Ja, aber es ist nicht ganz so einfach, weil Abhängigkeiten auch Alternativen oder keine bestimmten Pakete sondern Funktionen beinhalten können. Sieh dir vielleicht einmal Debianapt-rdepends an

Code: Alles auswählen

apt-rdepends -r paketxy

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22359
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Re: Warum kommen diese Pakete aus den Backports?

Beitrag von KBDCALLS » 17.03.2024 12:16:13

Mit und gehts auc.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

Benutzeravatar
syncronic
Beiträge: 4
Registriert: 14.09.2023 20:04:07
Kontaktdaten:

Re: Warum kommen diese Pakete aus den Backports?

Beitrag von syncronic » 25.04.2024 11:20:13

Hab das Schritt für Schritt durchgeführt und war vermutlich erfolgreich. Bei Paketen mit gegenseitigen Abhängigkeiten muss man jedoch aufpassen:

Code: Alles auswählen

~$ sudo apt install libldb2/bookworm
Legen Sie Ihren rechten Zeigefinger auf den Fingerabdruckleser
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut… Fertig
Statusinformationen werden eingelesen… Fertig
Version »2:2.6.2+samba4.17.12+dfsg-0+deb12u1« (Debian:12.5/stable, Debian-Security:12/stable-security [amd64]) für »libldb2« gewählt.
Die folgenden Pakete wurden automatisch installiert und werden nicht mehr benötigt:
  kio-extras-data libkdsoap1 libssh-4 libwbclient0 linux-headers-6.1.0-17-amd64 linux-headers-6.1.0-17-common
  linux-image-6.1.0-17-amd64
Verwenden Sie »sudo apt autoremove«, um sie zu entfernen.
Die folgenden Pakete werden ENTFERNT:
  kio-extras libsmbclient python3-smbc samba-libs vlc-plugin-samba
Die folgenden Pakete werden durch eine ÄLTERE VERSION ERSETZT (Downgrade):
  libldb2
0 aktualisiert, 0 neu installiert, 1 durch eine ältere Version ersetzt, 5 zu entfernen und 11 nicht aktualisiert.
Es müssen 162 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 28,4 MB Plattenplatz freigegeben.
Möchten Sie fortfahren? [J/n]
Da werden mehrere Pakete entfernt und da wäre ich die Backportpakete auch losgewesen, aber dann funktioniert Samba nicht mehr. Besser ist in diesem Fall:

Code: Alles auswählen

~$ sudo apt install libsmbclient/bookworm libldb2/bookworm
Da wird nichts entfernt und nur ein Downgrade durchgeführt.

Noch was anderes: Oben werden 2 Varianten erwähnt, um Backports zu installieren. Wenn nur ein einzelnes Paket installiert wird, sind beide gleich. Wenn man aber umfangreichere Pakete installiert, scheitert die eine Methode, weil auch noch weitere Abhängigkeiten aus den Backports installiert werden müssen:

Code: Alles auswählen

~$ sudo apt install qgis/bookworm-backports
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut… Fertig
Statusinformationen werden eingelesen… Fertig
Version »3.28.15+dfsg-1~bpo12+1« (Debian Backports:stable-backports [amd64]) für »qgis« gewählt.
Einige Pakete konnten nicht installiert werden. Das kann bedeuten, dass
Sie eine unmögliche Situation angefordert haben oder, wenn Sie die
Unstable-Distribution verwenden, dass einige erforderliche Pakete noch
nicht erstellt wurden oder Incoming noch nicht verlassen haben.
Die folgenden Informationen helfen Ihnen vielleicht, die Situation zu lösen:

Die folgenden Pakete haben unerfüllte Abhängigkeiten:
 qgis : Hängt ab von: python3-qgis (= 3.28.15+dfsg-1~bpo12+1) soll aber nicht installiert werden
        Hängt ab von: qgis-common (= 3.28.15+dfsg-1~bpo12+1) aber 3.22.16+dfsg-1 soll installiert werden
        Hängt ab von: qgis-providers (= 3.28.15+dfsg-1~bpo12+1) aber 3.22.16+dfsg-1 soll installiert werden
        Empfiehlt: qgis-plugin-grass soll aber nicht installiert werden
E: Probleme können nicht korrigiert werden, Sie haben zurückgehaltene defekte Pakete.
Nur die andere Variante funktioniert. Mir scheint das beide Varianten nur formal verschieden sind. In der Praxis kann man damit aber keine verschiedenen Installationen erzeugen.
Debian 12 mit KDE, Lenovo Thinkpad T490

tobo
Beiträge: 1996
Registriert: 10.12.2008 10:51:41

Re: Warum kommen diese Pakete aus den Backports?

Beitrag von tobo » 25.04.2024 19:34:29

syncronic hat geschrieben: ↑ zum Beitrag ↑
25.04.2024 11:20:13
Noch was anderes: Oben werden 2 Varianten erwähnt, um Backports zu installieren. Wenn nur ein einzelnes Paket installiert wird, sind beide gleich. Wenn man aber umfangreichere Pakete installiert, scheitert die eine Methode, weil auch noch weitere Abhängigkeiten aus den Backports installiert werden müssen:

Code: Alles auswählen

~$ sudo apt install qgis/bookworm-backports
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut… Fertig
Statusinformationen werden eingelesen… Fertig
Version »3.28.15+dfsg-1~bpo12+1« (Debian Backports:stable-backports [amd64]) für »qgis« gewählt.
Einige Pakete konnten nicht installiert werden. Das kann bedeuten, dass
Sie eine unmögliche Situation angefordert haben oder, wenn Sie die
Unstable-Distribution verwenden, dass einige erforderliche Pakete noch
nicht erstellt wurden oder Incoming noch nicht verlassen haben.
Die folgenden Informationen helfen Ihnen vielleicht, die Situation zu lösen:

Die folgenden Pakete haben unerfüllte Abhängigkeiten:
 qgis : Hängt ab von: python3-qgis (= 3.28.15+dfsg-1~bpo12+1) soll aber nicht installiert werden
        Hängt ab von: qgis-common (= 3.28.15+dfsg-1~bpo12+1) aber 3.22.16+dfsg-1 soll installiert werden
        Hängt ab von: qgis-providers (= 3.28.15+dfsg-1~bpo12+1) aber 3.22.16+dfsg-1 soll installiert werden
        Empfiehlt: qgis-plugin-grass soll aber nicht installiert werden
E: Probleme können nicht korrigiert werden, Sie haben zurückgehaltene defekte Pakete.
Nur die andere Variante funktioniert. Mir scheint das beide Varianten nur formal verschieden sind. In der Praxis kann man damit aber keine verschiedenen Installationen erzeugen.
Der Schein trügt, die Installationen können unterschiedlich sein. Es gilt grundsätzlich das, was smutbert oben geschrieben hat - es gibt aber Unterschiede in der Handhabung:
https://wiki.debian.org/Backports#Installing_backports_on_the_command_line hat geschrieben: Installing backports on the command line

The backports repository is low-priority by default. So, if you want to install a backported package, you will have to state that explicitly.

For example:

# apt install cockpit/bookworm-backports

This will attempt to install Cockpit from bookworm-backports, preferring dependencies from stable. Sometimes backports depend on other backports, and it is necessary to specify these dependencies aswell.

(Dependency is just a stand in for a theoretical backport dependency)

# apt install cockpit/bookworm-backports dependency/bookworm-backports

Another option is to use the -t target release flag, but this can sometimes lead to unnecessarily downloading dependencies from backports.

# apt -t bookworm-backports install cockpit

The -t option here specifies bookworm-backports as the target release. This would install a newer version of Cockpit and all its reverse dependencies from bookworm-backports instead of the older one from Debian stable release.
In deinem Beispiel (qgis) wäre der Unterschied allerdings nicht sonderlich groß:

Code: Alles auswählen

# diff <(apt-get install qgis/bookworm-backports python3-qgis/bookworm-backports qgis-common/bookworm-backports qgis-providers/bookworm-backports python3-qgis-common/bookworm-backports libqgis-customwidgets/bookworm-backports -s | grep "^Inst") <(apt-get install qgis -t bookworm-backports -s | grep "^Inst")
49a50
> Inst libcurl3-gnutls [7.88.1-10+deb12u5] (8.5.0-2~bpo12+1 Debian Backports:stable-backports [amd64])
60c61
< Inst libcurl4 (7.88.1-10+deb12u5 Debian:12.5/stable, Debian-Security:12/stable-security [amd64])
---
> Inst libcurl4 (8.5.0-2~bpo12+1 Debian Backports:stable-backports [amd64])
123c124
< Inst linux-libc-dev (6.1.85-1 Debian-Security:12/stable-security [amd64])
---
> Inst linux-libc-dev (6.6.13-1~bpo12+1 Debian Backports:stable-backports [all])
#

Antworten