列出所有为当前安装的软件包建议的软件包。

每次我安装一个软件包时:
sudo apt-get install <pkg>

apt-get会显示一份建议安装的软件包清单。迄今为止,我都简单地忽略了这些建议,但实际上有一些建议是不错的(也有一些不好)。我想把所有这些清单整合成一个大清单(这样我可以审核并决定是否有需要安装的软件包),但我在/var/log/apt/history.log中找不到它们。
也就是说,我正在寻找类似于下面的东西:
list = []
for package in installed_packages:
    list.append(package.name)
print list
3个回答

只需要使用aptitude,您可以使用搜索模式:aptitude
aptitude search '?reverse-suggests(~i)!(~i)'

同样地,对于推荐的情况也是如此。
aptitude search '?reverse-recommends(~i)!(~i)'

所有的aptitude搜索选项都可以在用户手册中找到。

显示所有已安装软件包的建议内容(一行显示)。
dpkg-query -W -f='${Package} (status: ${Status}) suggests: ${Suggests}\n' \
  | grep 'status: install ok installed' | grep -v 'suggests: $'

它查询dpkg数据库,列出所有标记为非"nothing"(也列出未安装的)的本地已知软件包,以自定义输出格式进行过滤,然后过滤掉真正已安装的软件包和没有建议的软件包。


我发现这个非常有用,我为个人使用创建了这个脚本,不完美也不规范,我在阅读这个帖子后只用了5分钟。

我将它粘贴在这里,如果有人觉得有用的话。

脚本