Warum brauche ich dieses Paket?

Di, 11. Oktober 2022, Ralf Hersel

Gestern betrachtete ich während eines Updates, wie die Liste der zu aktualisierenden Pakete über mein Display lief, darunter auch Haskell und Python2. Da kam mir die Frage in den Sinn, warum braucht das System Haskell und Python2?

Das ist die Frage nach der Reverse Dependency von Paketen, also welche Pakete hängen von Paket x ab. Die Paketmanager der Distributionen beantworten diese Frage. Das möchte ich am Beispiel von Haskell unter Manjaro zeigen.

Wer es grafisch mag, findet die Antwort im Paketmanager Pamac. Man sucht nach "haskell", wählt das erstbeste installierte Paket und schaut bei den Detailinformationen im Reiter "Abhängigkeiten" in die Liste "Benötigt von".

Wer lieber im Terminal arbeitet, hat zwei Möglichkeiten. Zuerst muss man wissen, wie ein bestimmtes installiertes Haskell-Paket heisst: pacman -Q | grep haskell zeigt eine entsprechende Liste. Dann kann man mit diesem Befehl die Pakete ermitteln, die von einem bestimmten Haskell-Paket abhängen:

pacman -Qi haskell-aeson | grep 'Benötigt von'
Benötigt von :
haskell-aeson-pretty  haskell-citeproc  haskell-doctemplates
haskell-hslua-aeson  haskell-ipynb  haskell-pandoc-types
haskell-servant  haskell-servant-server  haskell-skylighting-core
haskell-wai-extra  haskell-yaml  pandoc  shellcheck

Die zweite Methode verwendet den Befehl pactree und sieht so aus:

pactree -r haskell-aeson

haskell-aeson
├─haskell-aeson-pretty
│ ├─haskell-citeproc
│ │ └─pandoc
│ └─pandoc
├─haskell-citeproc
├─haskell-doctemplates
│ └─pandoc
...

Wie ihr in den Beispielen gesehen habt, lautet des Rätsels Lösung Pandoc. Wer wissen möchte, wie man diese Information bei anderen Distributionen, bzw. Paketmanagern erhält, findet in der Quelle eine Übersicht.

Quelle: https://wiki.archlinux.org/title/Pacman/Rosetta#Querying_package_dependencies

Tags

Pakete, Abhängigkeit, Paketmanager