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