如何检查 Ubuntu 或 Debian 上的软件包依赖关系
典型的 .deb
软件包依赖于其他软件包才能正确安装和运行。使用 apt-get
和 aptitude
等包管理器,您可以解决包依赖性,并自动安装所有先决条件。 gdebi
等工具允许您检测 .deb
文件中的任何依赖项,并将所有依赖包与 .deb
文件一起安装。
假设出于某种原因,您想要手动解决特定包的包依赖关系,在这种情况下,您需要首先识别其所有依赖包。
下面,我将解释如何检查 Ubuntu 或 Debian 上的软件包依赖关系。
使用 apt-rdepends 检查 Deb 包依赖关系
在这种情况下,名为 apt-rdepends 的命令行工具可以为您提供帮助。该工具可以递归检查.deb包的依赖关系,并列出所有找到的包依赖关系。
要在 Ubuntu 或 Debian 上安装 apt-rdepends:
$ sudo apt-get install apt-rdepends
要显示特定包(例如 tcpdump
)的包依赖信息,请使用包名称运行命令:
$ apt-rdepends tcpdump
Reading package lists... Done
Building dependency tree
Reading state information... Done
tcpdump
Depends: libc6 (>= 2.14)
Depends: libpcap0.8 (>= 1.2.1)
Depends: libssl1.0.0 (>= 1.0.0)
libc6
Depends: libc-bin (= 2.15-0ubuntu20)
Depends: libgcc1
Depends: tzdata
libc-bin
libgcc1
Depends: gcc-4.7-base (= 4.7.2-2ubuntu1)
Depends: libc6 (>= 2.14)
PreDepends: multiarch-support
. . . .
包依赖关系的可视化
由于许多递归定义的依赖关系,apt-rdepends 的文本输出可能难以阅读。这就是可视化可以提供帮助的时候。 apt-rdepends 可以将包依赖关系信息导出到 dot 文件中,基于 GUI 的图形编辑器(名为 dotty)可以使用该文件以图形格式可视化包依赖关系。
为了可视化,首先安装dotty
图形编辑器工具:
$ sudo apt-get install graphviz
最后,运行以下命令以使用 dotty
可视化包依赖关系:
$ apt-rdepends -d tcpdump | dot > tcpdump.dot
$ dotty tcpdump.dot
tcpdump
包的可视化结果如下所示。

到目前为止,在本教程中,我们检查了基于 Debian 的系统上的包依赖关系。如果您想了解更多关于基于 RPM 的系统(例如 Fedora 或 CentOS)上的包依赖关系,请参阅本教程。