例如,有包及其依赖项:
a -> b (a require b)
b -> c & d
x -> a
y -> x
z -> x
z -> x & y
现在,给定c
和z
,有两条依赖路径:
z -> x -> a -> b -> c
z -> y -> x -> a -> b -> c
问题是如何找出两个特定的 Debian 包之间的依赖路径?
PS 背后的想法是绘制给定一组包的依赖关系图,包括链中缺失的中间包。
答案1
您的整体问题可能已经通过使用得到解决apt-cache dotty
。
如果你想自己实现,使用一些图形算法来寻找路径。或者查看 apt-cache 的源代码。;-)