Antworten
Es gibt ein Programm namens pactree, das zusammen mit dem pacman- Paket installiert wird .
Es wird verwendet, um die Abhängigkeitsbaumstruktur für das angegebene Paket anzuzeigen.
Sie können es so verwenden:
pactree -u <package_name>
Doch im Gegensatz zu dem pacman -Sp <package_name>
, pactree akzeptiert nur einen Paketnamen.
Eine Lösung
Es gibt verschiedene Wege, um dieses Problem zu umgehen, aber nach Ihrer Frage zu urteilen, habe ich nicht das Gefühl, dass Sie mit Shell-Skripts vertraut sind (sorry, wenn ich mich irre), deshalb werde ich eine Lösung im Detail erläutern:
echo "package_name1 package_name2 ..." | xargs -n 1 pactree -u | sort -u | xargs -n 1 pacman -Sp > /myPackages.list
echo
- Integrierter Shell-Befehl: Druckt das Argument in die stdout
(mit angehängter neuer Zeile).
|
- Pipe: Leitet den stdout
Befehl von links nach stdin
rechts um.
xargs
- Externer Befehl: stdin
Übernimmt und fügt ihn der Argumentliste des angegebenen Befehls hinzu.
-n 1
- xargs
Option: Führt den angegebenen Befehl einmal für jedes Argument von aus aus stdin
.
pactree
- Externer Befehl: Abhängigkeitsbaum für das angegebene Paket anzeigen.
-u
- pactree
Option: Statt eines Diagramms drucken Sie jedes Abhängigkeitspaket in einer separaten Zeile.
sort
- Externer Befehl: Sortiert den Text von stdin
und schreibt ihn in stdout
.
-u
- sort
Option: Entfernt Duplikate aus sortiert stdin
.
(Dies ist erforderlich, da einige Pakete möglicherweise dieselben Abhängigkeiten haben.)
Sie kennen den Rest der Leitung.
Hinweis
pacman -Sp
wird einen Fehler melden, wenn Sie das Paket von der AUR erhalten.
EDIT 17.09.2018
Wie von JdeBP hervorgehoben, pactree
ist es jetzt im pacman-contrib- Paket.