问题描述
这只是出于娱乐和好奇:是否有一个工具可以用来可视化地将软件包的依赖关系显示为图表?
即,给定软件包所依赖的软件包。这可以是使用ASCII图形(例如树或Mercurial的graphlog)显示的命令行工具,也可以是可视化显示依赖关系图的GUI工具。可以从视觉上显示依赖关系的任何其他工具组合也可以工作。
最佳方案
debtree
根据the application’s website,debtree
程序包提供“类固醇的程序包依赖图”。
注意:在计划软件升级时,这也非常有用。此应用程序能够根据系统上尚未安装的软件包绘制依赖关系图。这将从sources.list
文件(通常位于/etc/apt/sources.list
)中读取,并且它将使用该列表执行实时查询。
下图是针对程序包dpkg
运行debtree
的示例。这是其依赖关系的示意图:
要从命令行(Ctrl
–Alt
–t
)安装debtree
,请输入以下命令:
sudo apt-get install debtree
Usage
-
创建一个.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
也可以类似的方式使用,但是在我看来,将输出管道输出到图形中会更加复杂。