![如何列出终端中作为依赖项安装的所有软件包,以及安装了它们的原因?](https://linux22.com/image/1085627/%E5%A6%82%E4%BD%95%E5%88%97%E5%87%BA%E7%BB%88%E7%AB%AF%E4%B8%AD%E4%BD%9C%E4%B8%BA%E4%BE%9D%E8%B5%96%E9%A1%B9%E5%AE%89%E8%A3%85%E7%9A%84%E6%89%80%E6%9C%89%E8%BD%AF%E4%BB%B6%E5%8C%85%EF%BC%8C%E4%BB%A5%E5%8F%8A%E5%AE%89%E8%A3%85%E4%BA%86%E5%AE%83%E4%BB%AC%E7%9A%84%E5%8E%9F%E5%9B%A0%EF%BC%9F.png)
有没有办法在终端中列出所有我没有安装但其他程序作为必要依赖项的程序?我可以同时查看它们是由哪些程序安装的吗?
答案1
答案2
使用aptitude
包管理器的高级接口,但你必须先安装它
sudo apt-get install aptitude
在那之后
aptitude search '?installed(?automatic)'
查看自动安装的包的列表。
并同时查看它们是由哪些程序安装的:
仅有的
Depends
aptitude -F %p search '?installed(?automatic)' | \ while read x ; do aptitude why "$x" | awk '/Depends/' ; done
或完整列表
aptitude -F %p search '?installed(?automatic)' | \ while read x ; do aptitude why "$x"; done
示例输出
i texlive-full Depends lcdf-typetools
i A lcdf-typetools Depends aglfn
i python3-apparmor-click Depends apparmor-easyprof
i aptitude Depends aptitude-common (= 0.6.11-1ubuntu3)
i arronax Depends arronax-base
i arronax Depends arronax-nautilus
i ubuntu-dev-tools Depends devscripts (>= 2.11.0~)
i lxc-docker Depends lxc-docker-1.7.1
i gnome-common Depends autopoint
i A nvidia-prime Depends bbswitch-dkms
i calibre Depends python-pil | python-imaging
i A python-pil Depends mime-support | python-pil.imagetk
i A python-pil.imagetk Depends python-tk (>= 2.7.7-2)
i A python-tk Depends blt (>= 2.4z-9)
i bluegriffon Depends bluegriffon-data (= 1.7.2-1~getdeb2~raring)
i playonlinux Depends cabextract
答案3
在命令行中使用此管道:apt list --installed | xargs apt-cache showpkg > dependencies.txt
。请注意,这会花费很长时间并占用所有 CPU。我将其通过管道传输到一个文件,因为它是一个非常长的列表。管道的第一部分提供所有已安装的软件包,第二部分获取每个软件包并查找它们的依赖项。