Ich habe ein Paket, dass in seinem debconf script jq benötigt. Aber egal, ob ich jq in den Depends und/oder Pre-Depends habe, wenn debconf ausgeführt wird ist jq noch nicht da. Ich dachte, genau dafür ist Pre-Depends da, dass eine Abhängigkeit vorher entpackt und konfiguriert ist:
https://www.debian.org/doc/debian-polic ... pendencies
Pre-Depends Abhängigkeit nicht verfügbar [gelöst]
-
- Beiträge: 939
- Registriert: 16.02.2009 09:35:10
Pre-Depends Abhängigkeit nicht verfügbar [gelöst]
Zuletzt geändert von nudgegoonies am 04.03.2021 16:07:27, insgesamt 1-mal geändert.
Soft: Bullseye AMD64, MATE Desktop. Repo's: Backports, kein Proposed, eigene Backports. Grafik: Radeon R7 360 MESA.
Hardware: Thinkstation S20, Intel X58, 16GB, Xeon W3530, BCM5755 NIC, EMU10K1 SND, SATA SSD+HDS und DVD+RW.
Hardware: Thinkstation S20, Intel X58, 16GB, Xeon W3530, BCM5755 NIC, EMU10K1 SND, SATA SSD+HDS und DVD+RW.
Re: Pre-Depends Abhängigkeit nicht verfügbar
Das stimmt glaube ich auch, aber ich glaube dass die PreDepends trotzdem nicht unbedingt schon vor der Installation installiert und konfiguriert sein müssen:
Ich glaube das lediglich bei anderen Paketinstallation mit apt so beobachtet zu haben und mag mich irren, aber solche Pre-Depends können ja im Endeffekt nur etwas mit den preinst- und prerm- (und möglicherweise den postinst- und postrm-) -Skripten zu tun haben und da läuft es dann so, dass beispielsweise der erste Versuch das Skript auszuführen scheitert, etwa weil jq fehlt, im weiteren Verlauf jq dann aber installiert und konfiguriert wird und schließlich das gescheiterte Skript ein weiteres Mal ausgeführt wird und diese Mal erfolgreich.
Das geht imho auch deswegen, weil die Skripte idempotent sein müssen/sollen – das Ergebnis also dasselbe sein muss, auch wenn eines der Skripte öfter ausgeführt wird.
Ich glaube das lediglich bei anderen Paketinstallation mit apt so beobachtet zu haben und mag mich irren, aber solche Pre-Depends können ja im Endeffekt nur etwas mit den preinst- und prerm- (und möglicherweise den postinst- und postrm-) -Skripten zu tun haben und da läuft es dann so, dass beispielsweise der erste Versuch das Skript auszuführen scheitert, etwa weil jq fehlt, im weiteren Verlauf jq dann aber installiert und konfiguriert wird und schließlich das gescheiterte Skript ein weiteres Mal ausgeführt wird und diese Mal erfolgreich.
Das geht imho auch deswegen, weil die Skripte idempotent sein müssen/sollen – das Ergebnis also dasselbe sein muss, auch wenn eines der Skripte öfter ausgeführt wird.
Re: Pre-Depends Abhängigkeit nicht verfügbar
Nanu, war hier nicht eben ein Beitrag von inne (oder jemand anderem)?
Dann zitier ich eben die Manpage
Selbige Manpage erwähnt aber auch, dass das config-Skript normalerweise zweimal aufgerufen wird. Einmal bevor irgendeins (auch Pre-Depends) der zu installierenden Pakete entpackt ist[1] und ein zweites Mal aus postinst heraus.
Letzteres könnte man jetzt als Trick ausnutzen und den Schritt im config-Skript, der von jq abhängt, nur beim zweiten Aufruf (aus postinst heraus) ausführen. (Also dort command -v jq oder ähnliches prüfen.) Dann dürfte auch ein einfaches Depends reichen. Ob das sauber und in allen Szenarien funktioniert – müsste man ausprobieren.
[1] Über einen Hook in /etc/apt/apt.conf.d/70debconf
Dann zitier ich eben die Manpage
man debconf-devel hat geschrieben: Note that the config script is run before the package is unpacked. It should only use commands
that are in essential packages. The only dependency of your package that is guaranteed to be
met […] is […] debconf itself.
Selbige Manpage erwähnt aber auch, dass das config-Skript normalerweise zweimal aufgerufen wird. Einmal bevor irgendeins (auch Pre-Depends) der zu installierenden Pakete entpackt ist[1] und ein zweites Mal aus postinst heraus.
Letzteres könnte man jetzt als Trick ausnutzen und den Schritt im config-Skript, der von jq abhängt, nur beim zweiten Aufruf (aus postinst heraus) ausführen. (Also dort command -v jq oder ähnliches prüfen.) Dann dürfte auch ein einfaches Depends reichen. Ob das sauber und in allen Szenarien funktioniert – müsste man ausprobieren.
Eine Pre-Depends-Abhängigkeit ist komplett entpackt und konfiguriert (postinst), wenn das davon abhängende Paket (vor)konfiguriert wird (postinst & preinst ausgeführt werden). Sollte generell sehr selten nötig sein.smutbert hat geschrieben:03.03.2021 18:07:43Das stimmt glaube ich auch, aber ich glaube dass die PreDepends trotzdem nicht unbedingt schon vor der Installation installiert und konfiguriert sein müssen:
[1] Über einen Hook in /etc/apt/apt.conf.d/70debconf
Manchmal bekannt als Just (another) Terminal Hacker.
-
- Beiträge: 939
- Registriert: 16.02.2009 09:35:10
Re: Pre-Depends Abhängigkeit nicht verfügbar [gelöst]
Vielen herzlichen Dank für Eure Hilfe. Dass das Script zwei mal aufgerufen wird, wusste ich gar nicht. Sobald ich bei meinen vielen Versuchen in den Konsolenausgaben die Fehlermeldungen gesehen habe, dass jq nicht gefunden wurde, habe ich gar nicht mehr weiter geschaut und angenommen, dass der Paket-Status eh Unpacked oder Half-inst ist
Soft: Bullseye AMD64, MATE Desktop. Repo's: Backports, kein Proposed, eigene Backports. Grafik: Radeon R7 360 MESA.
Hardware: Thinkstation S20, Intel X58, 16GB, Xeon W3530, BCM5755 NIC, EMU10K1 SND, SATA SSD+HDS und DVD+RW.
Hardware: Thinkstation S20, Intel X58, 16GB, Xeon W3530, BCM5755 NIC, EMU10K1 SND, SATA SSD+HDS und DVD+RW.