有时安装某个软件包时,aptitude 会推荐其他几个软件包。
有没有办法显示所有已安装软件包中所有之前推荐的软件包?
编辑:
感谢大家到目前为止的回复。我已经尝试过:
aptitude show ~i | grep '^Recommends' | cut -d ' ' -f 2-
基本上没什么问题。但它也会返回以下内容:
console-setup | console-data (>= 2002.12.04dbs-1)
我想要一种简单的方法来安装所有缺少的推荐软件包。
所以
aptitude install console-setup | console-data (>= 2002.12.04dbs-1)
不起作用;-)
有没有一种方法可以做到这一点,而无需手动检查所有条目?
答案1
Synaptic -> 自定义过滤器 -> 缺失推荐
或者
能力搜索‘~RBrecommends:~i’
(谢谢http://blog.isonoe.net/post/2011/07/18/Debian-Tips-1%3A-Find-missing-recommended-packages)
答案2
也许有更优雅的方法,但这对我来说有效,
for package in $(dpkg --get-selections | grep -v deinstall | awk '{print $1}')
do
echo $package
dpkg-query -s $package | grep Recommends
done
答案3
另一个建议:
awk '/(^Package|^Recomm)/' /var/lib/dpkg/status | grep -B1 ^Recommends
@EightBitTony:awk 在搜索方面也很好,试试这个:
dpkg --get-selections | awk ' !/deinstall$/{print $1}'
答案4
获取缺少推荐包的已安装包列表:
aptitude search '?installed?broken-recommends'
获取已安装软件包推荐的未安装、缺失软件包列表 - “缺失推荐”:
aptitude search '?broken-reverse-recommends(?installed)'
获取哪个包正在推荐特定的“缺失推荐”:
aptitude search '?installed?broken-recommends(MISSING_PKG_NAME)'
一句话:对于所有“缺少的推荐”,获取推荐的软件包:
for p in $(aptitude search -F%p '?broken-reverse-recommends(?installed)'); do echo $p; aptitude search "?installed?broken-recommends($p)"; done
您可以在 Synaptic 软件包管理器中找到“缺少的推荐”。 (据我所知,Synaptic 还显示缺少的建议软件包。)
您可以使用一个命令安装所有“缺少的推荐”,但我不推荐这样做!首先,在安装之前查看软件包列表。(例如,新安装的 debian buster 显示缺少“default-mta”,这是一个虚拟软件包。)
apt install $(aptitude search -F%p '?broken-reverse-recommends(?installed)')
(这是从几个类似问题中总结出来的。希望它能对其他人有所帮助。)