使用 pacman 列出依赖于某个包的所有包

使用 pacman 列出依赖于某个包的所有包

我有两个软件包在用 pacman 在 arch 上安装一个新软件包后发生冲突。

如何列出依赖于冲突软件包的所有已安装软件包?

或者更一般地说:
如何列出依赖于某个其他软件包的所有已安装软件包

答案1

要列出依赖关系,请使用pacman -Si(ie, pacman --sync --info) 或 pacman -Qi(ie, pacman --query --info)。

列出反向依赖关系:(pacman -Siipacman --sync --info --info;是的两个信息)。

拱门Linux:查询包依赖关系

答案2

如何列出依赖于某个其他软件包的所有已安装软件包

对于一级依赖项使用pacman -Qi package_name | grep 'Depends On'

例如:

$ pacman -Qi jack | grep 'Depends On'
Depends On      : alsa-lib  db  glibc  gcc-libs  libsamplerate  libzita-alsa-pcmi.so=0-64  libzita-resampler.so=1-64

要查看包的依赖关系树,请使用pactree它所拥有的pacman-contrib

例如:

$ pactree jack
jack
├─alsa-lib
│ ├─glibc
│ │ ├─linux-api-headers provides linux-api-headers>=4.10
│ │ ├─tzdata
│ │ └─filesystem
│ │   └─iana-etc
│ ├─alsa-topology-conf
│ └─alsa-ucm-conf
├─db
│ ├─gcc-libs
│ │ └─glibc provides glibc>=2.27
│ └─bash provides sh
│   ├─readline provides readline>=7.0
│   │ ├─glibc
│   │ ├─ncurses
│   │ │ ├─glibc
│   │ │ └─gcc-libs
│   │ └─ncurses provides libncursesw.so=6-64
│   ├─glibc
│   └─ncurses
├─glibc
├─gcc-libs
├─libsamplerate
│ └─glibc
├─zita-alsa-pcmi provides libzita-alsa-pcmi.so=0-64
│ ├─alsa-lib
│ ├─gcc-libs
│ └─glibc
└─zita-resampler provides libzita-resampler.so=1-64
  ├─gcc-libs
  └─glibc

要查看包的依赖树,请将反向标志传递-rpactree

答案3

对于多级依赖关系,请使用包pactree附带的命令pacman。使用该选项,-r您可以找到依赖于给定包的顶级应用程序/包。

这里有一个例子:

pactree -r gst-plugins-bad-libs
gst-plugins-bad-libs
├─gst-plugins-bad
│ ├─cheese
│ └─gnome-video-effects
│   └─cheese
├─gtk4
│ ├─gnome-desktop-4
│ │ └─xdg-desktop-portal-gnome
│ │   └─xdg-desktop-portal
│ │     └─flatpak
│ └─libadwaita
│   └─xdg-desktop-portal-gnome
└─libcheese
  └─cheese

在这种情况下,最重要的应用程序是flatpakcheese

答案4

前面的答案都是不正确的。如果你想知道哪些包依赖于包X,请使用以下命令:

pacman -Qi | grep -E 'Depends On|Name' | grep -B 1 -E 'Depends On.*PACKAGE_X.*' | grep Name | awk -F ':' '{print $2}'

相关内容