Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debian软件包:区分";“请求安装”;从「;安装以满足依赖关系”;_Debian - Fatal编程技术网

Debian软件包:区分";“请求安装”;从「;安装以满足依赖关系”;

Debian软件包:区分";“请求安装”;从「;安装以满足依赖关系”;,debian,Debian,我如何确定哪些软件包是因为我请求安装而安装的,以及哪些软件包是为了满足依赖关系而自动安装的 在能力倾向中,此信息显示为“A”: 这表明我请求了grub包,因此安装了grub common。然而,aptitude是一个交互式程序,我无法自动提取这些信息并用脚本进行处理 使用debian软件包管理工具“dpkg-l”或“dpkg--get selections”,我可以获得一个包含附加信息的已安装软件包列表。例如 > dpkg -l ... ii grub

我如何确定哪些软件包是因为我请求安装而安装的,以及哪些软件包是为了满足依赖关系而自动安装的

在能力倾向中,此信息显示为“A”:

这表明我请求了grub包,因此安装了grub common。然而,aptitude是一个交互式程序,我无法自动提取这些信息并用脚本进行处理

使用debian软件包管理工具“dpkg-l”或“dpkg--get selections”,我可以获得一个包含附加信息的已安装软件包列表。例如

> dpkg -l
...
ii  grub                                 0.97-47lenny2              GRand Unified Bootloader (Legacy version)
ii  grub-common                          1.96+20080724-16           GRand Unified Bootloader, version 2 (common files)
ii  gs-common                            8.62.dfsg.1-3.2lenny1      Dummy package depending on ghostscript
...

这个列表可以很容易地用脚本处理,但它只显示安装了软件包——不管是通过请求还是依赖关系安装的。

Aptitude也只作为命令行、无gui程序运行。尝试:

aptitude search grub

信息将在那里。

事实上,人们可以用所谓的搜索模式来称之为能力倾向搜索;参见参考资料 search~i生成已安装的软件包。使用grep丢弃带有A的包会导致包不会自动安装,因此它几乎回答了最初的问题

但是它包含了属于原始发行版的包,所以它没有完全分类。就我而言,它仍然有1500个包裹,一套我可以处理的

可能通过搜索组合实现,我没有挖掘,以下是我的命令:

aptitude search ~i|grep -v '^i A'|

grep-v丢弃依赖包

Apt支持一个“auto”标志,该标志正好描述了这一点


如果需要,可以看得更深。

太好了!我仔细研究了一下,发现“智能搜索~M”将列出所有自动安装的软件包。非常感谢!我用过~M以过滤掉自动安装的软件包。我通过在安装其他软件包之前运行此搜索来处理原始发行版:稍后,我可以从结果列表中删除这些软件包。
aptitude search ~i|grep -v '^i A'|