哪些软件包推荐了“缺失推荐”?

Roh*_*wal 6 package-management synaptic

Synaptic Package Manager 有一个自定义过滤器“Missing Recommends”。有没有办法找出系统上安装的哪些软件包推荐了此过滤器中列出的软件包?

tum*_*eed 4

Aptitude 可以执行一些相当奇特的搜索

这将显示所有具有不满足推荐的软件包:

aptitude search '?installed?broken-recommends'
Run Code Online (Sandbox Code Playgroud)

要将其限制为特定的推荐包:

aptitude search '?installed?broken-recommends(PACKAGE)'
Run Code Online (Sandbox Code Playgroud)


les*_*ana 2

据我所知,没有简单的方法可以找出哪个包推荐了特定的其他包。

这是一个粗略的脚本,用于构建推荐包或建议其他包的列表:

dpkg --get-selections | cut -f 1 | while read pkgname
do
  apt-cache depends "$pkgname" | \
  grep -E "Recommends|Suggests" | \
  cut -b 3- | \
  while read recommends
  do
    echo "$pkgname" "$recommends"
  done
done | sort -k 3 -k 2 | column -t
Run Code Online (Sandbox Code Playgroud)

注意:该脚本需要一些时间才能运行。此外,输出非常长,因此您很可能希望将输出捕获到文件中:

$ whatrecommends.sh > whatrecommends.txt
Run Code Online (Sandbox Code Playgroud)

输出示例:

...
ubuntu-desktop                    Recommends:  avahi-autoipd
avahi-daemon                      Suggests:    avahi-autoipd
dhcp3-client                      Suggests:    avahi-autoipd
libnss-mdns                       Suggests:    avahi-autoipd
hplip                             Recommends:  avahi-daemon
rhythmbox                         Recommends:  avahi-daemon
ubuntu-desktop                    Recommends:  avahi-daemon
libsane                           Suggests:    avahi-daemon
pulseaudio-utils                  Suggests:    avahi-daemon
sane-utils                        Suggests:    avahi-daemon
system-config-printer-common      Recommends:  avahi-utils
bash                              Recommends:  bash-completion
ubuntu-standard                   Recommends:  bash-completion
ack-grep                          Suggests:    bash-completion
bash                              Suggests:    bash-doc
...
Run Code Online (Sandbox Code Playgroud)

sort通过更改脚本末尾的参数,您可以更改输出的排序顺序。