如何可视地显示包的依赖关系?


31

这只是出于娱乐和好奇:是否有一个工具可以用来将软件包依赖关系可视化为图形?

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


图的轴是什么?

1
@ vasa1:顶点将是包,而边将是依赖关系。
Ashwin Nanjappa

Answers:


34

债务

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

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

下图是debtree针对该软件包运行的示例dpkg。这是其依赖关系的示意图:

要安装debtree的命令行(Ctrl- - Altt输入命令:

sudo apt-get install debtree

用法

  • 创建一个.dot文件(一个有向图,请参见手册man dot页)

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

    dot -T png -o out.png out.dot
    
  • 创建图形(后记)并使用Okular进行查看

    debtree <package> | dot -Tps | okular - &
    

请注意,在较大的程序包(例如gedit)上运行此应用程序时,图像可能很快变得笨拙且难以辨认。

请注意,apt-rdepends也可以类似的方式使用它,但是在我看来,将输出输出到图形中比较复杂。

另请参见: Ubuntubtreeree手册页


1
--no-skip甚至--show-all是包括更多软件包的非常有用的选择libc6
注销

2

也许不是那么“图形化”,但是如果您不想安装任何额外的软件包,则还可以直接运行

apt-cache rdepends <package>

您可能还想看看depends选项。

您还有:

  • apt rdepends <package>
  • 使用此脚本apt-rdepends-tree <package>
  • apt-rdepends <package>或作为债务 apt-rdepends --dotty package | springgraph > dependencies.png

1

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


内森·卡泽尔(Nathan Cazell):您能否详细说明如何查看给定软件包的层次图?
Ashwin Nanjappa

当您打开Aptitude时,只需使用/搜索软件包,然后按Enter键即可找到所需的软件包,它将显示有关该软件包的所有信息,包括具有未满足的依赖关系以及有冲突的软件包的依赖关系树。
2013年

Nathan Cazell:您指的是命令行智能工具吗?
Ashwin Nanjappa

编辑。抱歉,我们没有在早期澄清
-Ntc
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.