如何直观地显示包的依赖关系?

这只是为了好玩和好奇:有没有一种工具,我可以直观地看到依赖关系作为图形?

也就是说,给定包依赖的包。 这可以是使用ASCII图形(如树或Mercurial的graphlog)显示的命令行工具,也可以是可视化显示依赖关系图的GUI工具。 可以在视觉上显示依赖关系的任何其他工具组合也可以工作。

debtree

根据该应用程序的网站 , debtree包提供“类固醇的包依赖图”

注意:在规划软件升级时,这也非常有用。 此应用程序能够绘制对系统尚未安装的软件包的依赖关系。 (这将从sources.list文件中读取(通常位于/etc/apt/sources.list ),它将使用该列表执行实时查询)。

下图是针对软件包dpkg运行debtree的示例。 这是它的依赖关系的映射:

debtree安装debtreeCtrlAltt ),请输入命令:

 sudo apt-get install debtree 

用法

  • 创建.dot文件(有向图绘制 – 请参阅man dot联机帮助页)

     debtree --with-suggests  >out.dot 
  • 从.dot文件创建图形(PNG)

     dot -T png -o out.png out.dot 
  • 创建一个图(Postscript)并使用Okular查看它

     debtree  | dot -Tps | okular - & 

请注意,在针对较大的软件包(即gedit)运行此应用程序时,图像很快就会变得难以操作且难以辨认。

请注意, apt-rdepends也可以以类似的方式使用,但在我看来,管道输出到图形中有点复杂。

命令行工具Apitude是查看依赖项的一个很好的工具。 没有花哨的图形,但它确实为您提供了特定包的依赖关系的良好分层表示。

也许不是那么“图形化”,但如果你不想安装任何额外的软件包,你也可以运行apt-cache rdepends

您可能还想看看depends选项。