如何列出RPM依赖关系?

我们的生产服务器运行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 

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

    1. rpm -q --requires somepackagehere

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

    yum deplist命令将显示您需要哪个rpm

     # 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 

    在Ignacio的回答之后,您可以通过执行以下操作来查看软件包的特定体系结构:

     $ rpm -qa --queryformat "%{NAME} %{ARCH}\n" sqlite sqlite i686 

    在我的情况下,我只有一个,i686包…但你可以通过这种方式获得与软件包相关的体系结构。 如果你对什么可以从–queryformat得到什么感兴趣的话,发一个rpm --querytags来查看可用的variables列表。

    我有快速的shell代码片断,它打印出所有已安装的软件包及其依赖项:

     for i in `rpm -qa` ; do echo "Package [$i]:"; rpm -q --requires $i ; echo ; done