小编bam*_*amm的帖子

如何递归列出需要安装的包的依赖项?

这样做时apt install,我会在以下行下获得需要安装的软件包列表:

The following NEW packages will be installed:
Run Code Online (Sandbox Code Playgroud)

如果没有,它将在没有提示的情况下继续。我试图检索此列表,但如果没有,则会失败,因为安装将继续进行。我想在不安装的情况下获取此列表。

我试过这样的事情:

apt-cache depends --recurse packagename | grep -v " " | sort -u
Run Code Online (Sandbox Code Playgroud)

但它提供了一个完整的列表,包括那些已经安装的列表。我想将其限制为需要安装的那些。

我知道我可以将上面的输出与结果进行比较

dpkg --get-selections
Run Code Online (Sandbox Code Playgroud)

查看哪些已安装,哪些未安装,但这将涉及循环内的循环,并且两个列表都很长。肯定必须有一种更优雅的方式来做到这一点。

感谢您的任何建议。(这是我第一次在这里提问)

编辑:我使用rdepends这个问题中给出的方法检查了方法: Recursive dependencies

这将是我正在寻找的,只是它会导致与apt install给出的列表不同。它甚至列出了可卸载的依赖项(这是不可能的,因为包本身已成功安装)。我正在寻找的是apt将在给定包之前安装的包列表。无论如何,我不明白为什么列表不同。结果应该是一样的吧?但既然不是,那么这不是我要找的。但是,如果有人能向我解释为什么他们给出不同的结果,我将不胜感激。

package-management command-line apt

5
推荐指数
2
解决办法
921
查看次数

标签 统计

apt ×1

command-line ×1

package-management ×1