如何在ubuntu中查看包的所有嵌套依赖项?

时间:2017-12-22 17:38:55

标签: linux ubuntu

有人可以告诉我如何查看Ubuntu中包的所有嵌套依赖项?例如,

support@vrni-platform:/tmp$ sudo apt-cache depends hadoop-yarn-resourcemanager
hadoop-yarn-resourcemanager
  Depends: hadoop-yarn

support@vrni-platform:/tmp$ sudo apt-cache depends hadoop-yarn
hadoop-yarn
  Depends: libc6
  Depends: adduser
  Depends: bigtop-utils
  Depends: hadoop
  Depends: avro-libs
  Depends: zookeeper

我正在寻找类似下面的内容。与mvn dependency:tree

有些相似
hadoop-yarn-resourcemanager
  Depends: hadoop-yarn
     Depends: libc6
     Depends: adduser
     Depends: bigtop-utils
     Depends: hadoop
     Depends: avro-libs
     Depends: zookeeper

我见过这个question,但我正在寻找完整的依赖树。

2 个答案:

答案 0 :(得分:0)

嗯,有apt-cache dotty命令,它将生成包依赖关系的graphviz表示。然而,这并没有你想象的那么有用:有很多"核心包"几乎所有东西都需要这些,结果图表会非常大。

例如,apt-cache dotty openssh-client的输出呈现为this beast

点语法相对简单;您可以自己解析它以提取信息的子集。

答案 1 :(得分:0)

这个问题已经很老了,但是apt-cache当前为--recursedepends提供了一个rdepends选项,这很容易做到:

apt-cache depends -i --recurse <packagename>

您可能还需要-i,因为这样会将输出限制为实际的Depends:,从而过滤掉Recommends:Suggests:之类的非必需内容。

使用上述选项,输出将是巨大的,因为它将包括每个包,直至内核本身!使用简单的程序包可能没什么大不了的,但是对于台式机环境甚至大型应用程序来说……