如何获取Debian上所有根/主要安装软件包的列表

有没有办法让Debian中所有通过aptitude安装的“主”包? “main”是指通过install命令赋予aptitude的软件包名称。 相当于一个Gentoo“世界”文件。

据我所知,你只能得到所有已安装软件包的列表,包括依赖关系(从某个angular度来看,我并不十分关心)。 我能想到的唯一方法是parsingaptitude install命令的bash_history文件。

aptitude因依赖关系安装的软件包视为“ 自动 ”安装。 有了这些知识,您可以快速构build一个能力search模式来列出所有未安装的已安装软件包:

 aptitude search "?and(?installed, ?not(?automatic))" 

或者,使用search词的简短forms:

 aptitude search '~i !~M' 

(请注意, !是某些shell中的特殊字符,在上面我使用了'...'作为引号,以使Bash感到高兴。

最后,上面还列出了通过基本系统安装安装的软件包。 如果这是一个问题,您可以通过添加一个!~Efilter来排除系统认为必不可less的软件包。 或者你可以在你认为是基本安装的地方创build一个软件包列表,然后diff一下。

(通过bash的历史logging肯定也是一个快速而简单的select,如果你主要想卸载一些最近安装的软件包,那么这个工具就可以运行,但是由于bash历史的大小有限,你将很难find比如一年前安装的软件包。)