这样做时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
将在给定包之前安装的包列表。无论如何,我不明白为什么列表不同。结果应该是一样的吧?但既然不是,那么这不是我要找的。但是,如果有人能向我解释为什么他们给出不同的结果,我将不胜感激。