如何列出终端中作为依赖项安装的所有软件包,以及安装了它们的原因?

如何列出终端中作为依赖项安装的所有软件包,以及安装了它们的原因?

有没有办法在终端中列出所有我没有安装但其他程序作为必要依赖项的程序?我可以同时查看它们是由哪些程序安装的吗?

答案1

密切相关:生成手动安装的软件包列表并查询单个软件包

使用:

apt-mark showauto

此列表自动地已安装的软件包,而不是手动已安装的软件包。

答案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。我将其通过管道传输到一个文件,因为它是一个非常长的列表。管道的第一部分提供所有已安装的软件包,第二部分获取每个软件包并查找它们的依赖项。

相关内容