回答
有一个名为pactree的程序与pacman软件包一起安装。
它用于显示指定包的依赖关系树。
你可以像这样使用它:
pactree -u <package_name>
但是,与pactree不同pacman -Sp <package_name>
,它只接受一个包名。
一个解决方案
有几种方法可以解决这个问题,但从你的问题判断,我不觉得你熟悉shell脚本(对不起,如果我弄错了)所以我将详细解释一个解决方案:
echo "package_name1 package_name2 ..." | xargs -n 1 pactree -u | sort -u | xargs -n 1 pacman -Sp > /myPackages.list
echo
- Shell builtin命令:将参数打印到stdout
(附加新行)。
|
- 管道:将stdout
左侧命令重定向到stdin
右侧命令。
xargs
- 外部命令:获取stdin
并将其附加到给定命令的参数列表中。
-n 1
- xargs
option:对每个参数执行一次给定的命令stdin
。
pactree
- 外部命令:显示给定包的依赖关系树。
-u
- pactree
选项:而不是图形,在单独的行中打印每个依赖包。
sort
- 外部命令:对文本进行排序stdin
并将其写入stdout
。
-u
- sort
选项:从排序中删除重复项stdin
。
(这是必需的,因为某些包可能具有相同的依赖关系。)
您熟悉其余部分。
注意
pacman -Sp
如果您从AUR提供包裹,将报告错误。
编辑17.09.2018
正如JdeBP所指出的,pactree
现在是在pacman-contrib包中。