如何找出哪些其他软件包依赖于特定软件包?

如何找出哪些其他软件包依赖于特定软件包?

我对linux还很陌生。我用的是 Manjaro。

我运行pacman -Qe | less并在软件包列表中,我注意到:

jdk8-openjdk 8.u282-1
jfsutils 1.1.15-7
jre8-openjdk 8.u282-1
jre8-openjdk-headless 8.u282-1

有没有办法可以找出哪些软件包依赖于上面列出的软件包?

我基本上是想找出为什么我有它们jdk8-openjdk 8.u282-1jre8-openjdk 8.u282-1如果没有任何东西使用它们,我想删除它们。

但我怎样才能知道是否有其他东西正在使用它们呢?

答案1

pacman -Qi jdk8-openjdk jfsutils jre8-openjdk jre8-openjdk-headless

将显示有关给定包的信息,包括依赖于它们的包的列表(“必需者”)和选择性地需要它们的包(“可选的”)。

您可能希望对输出应用过滤器并仅选择相关信息:

pacman -Qi jdk8-openjdk jfsutils jre8-openjdk jre8-openjdk-headless |
  awk '/(^Name)|(^Required By)|(^Optional For)/'

pacinfo使用该包可以获得类似的结果(每行一个依赖项)pacutils。在这种情况下,请local向每个包名称添加前缀,以将结果限制为已安装的包:

pacinfo local/jdk8-openjdk local/jfsutils ...

Arch Linux软件包pactree中还提供了pacman-contrib一个依赖树查看器。我无法检查这一点,因为我不是 Manjaro 用户,但是查看相关的亚搏体育appGitLab页面pacmanManjaro 上的软件包似乎也包含了 Arch 的内容pacman-contrib
您可以使用它来列出依赖于以下内容的包jdk8-openjdk

pactree -r jdk8-openjdk

并且还包括可选的依赖项:

pactree -ro jdk8-openjdk

相关内容