如何列出 RPM 依赖项?

Gna*_*nam 38 redhat centos rpm dependencies centos5

我们的生产服务器正在运行 CentOS 5.2 版(最终版)。

如何查看/获取/列出已安装的RPM 包的所有依赖项?

例如:服务器中已经安装了 SQLite v3.3.6。我想查看这个特定包的所有依赖项。

这是命令的输出: rpm -qa |grep sqlite

python-sqlite-1.1.7-1.2.1
sqlite-3.3.6-2
sqlite-3.3.6-2
Run Code Online (Sandbox Code Playgroud)

另外,为什么它在sqlite-3.3.6-2这里列出了 2 个条目?

dav*_*vey 36

yum deplist命令将向您显示哪些rpm是依赖项,这是该expect软件包的示例(即使您尚未在本地安装该软件包,这也将起作用):

# yum deplist expect
..
..
package: expect.i386 5.43.0-5.1
 dependency: libc.so.6
  provider: glibc.i686 2.5-49
  provider: glibc.i686 2.5-49
 dependency: libtcl8.4.so
  provider: tcl.i386 8.4.13-4.el5
Run Code Online (Sandbox Code Playgroud)


Ign*_*ams 33

  1. rpm -q --requires somepackagehere

  2. 一个是i?86包,一个是x86_64包。

  • RH-/Fedora 衍生发行版支持 **multiarch**,其中属于“不同但足够相似”架构的多个包可以共存,以允许运行为任一架构构建的可执行文件。 (2认同)

Ale*_*lex 7

按照 Ignacio 的回答,您可以通过执行以下操作来查看包的具体架构:

$ rpm -qa --queryformat "%{NAME} %{ARCH}\n" sqlite
sqlite i686
Run Code Online (Sandbox Code Playgroud)

就我而言,我只有一个 i686 包……但是您可以通过这种方式获得与这些包关联的架构。如果您对可以从 --queryformat 中获得的其他内容感兴趣,请发出 arpm --querytags以查看可用变量列表。


小智 5

人们已经回应:

  1. rpm -q --requires PKG
  2. yum -q deplist PKG

是的,无论是rpmyum作品,并正确回答问题。rpm和之间的主要区别在于yumyum 还显示您可以安装哪些软件包以满足库和/或文件要求。不幸的是,如果没有安装软件包,这些方法都没有用。由于原始海报已经指定您正在检查的软件包已安装,因此这是一个静音点。

如果您没有安装该软件包怎么办?yum仍然可以使用,但间接使用。您可以通过取消安装操作来进行模拟安装。

printf n  |  yum install PKG  |  grep -- "---> Package"
Run Code Online (Sandbox Code Playgroud)

下面是一个例子:

printf n  |  yum install php  |  grep -- "---> Package"
---> Package php.x86_64 0:5.4.16-45.el7 will be installed
---> Package php-cli.x86_64 0:5.4.16-45.el7 will be installed
---> Package php-common.x86_64 0:5.4.16-45.el7 will be installed
---> Package libzip.x86_64 0:0.10.1-8.el7 will be installed
Run Code Online (Sandbox Code Playgroud)