【问题标题】:Check RPM dependencies检查 RPM 依赖项
【发布时间】:2013-10-05 07:57:32
【问题描述】:

当您在 Ubuntu 上使用 .deb 软件包安装程序时,您可以使用 Ubuntu Packages Search 检查软件包的依赖关系。例如,我可以从here 看到 Wireshark 的依赖关系。如您所见,红色项目符号标记的依赖项。如果你知道你的程序依赖的所有包,你可以下载它们并安装dpkg

RPM 包有其他的网站吗?专门用于 RHEL?

我知道我可以通过其他方法获取这些包的名称,例如使用rpm -i安装RPM包时,但它对用户不友好,需要访问正在运行的linux。

【问题讨论】:

标签: linux dependency-management rpm rhel


【解决方案1】:

事实上,这不是一个,而是四个不同的问题:)。

*) 首先,您可以使用以下命令快速列出下载包的依赖项/要求:

$ rpm -qp mypackage.rpm --provides
$ rpm -qp mypackage.rpm --requires

*) 其次,您可以使用yum 实用程序来自动满足这些(有点神秘的)依赖项(假设您的所有存储库都设置正确,并且所有依赖项都可用):

$ sudo yum install mypackage.rpm

*) 第三,有几个 RPM 搜索资源,其中一些已经在上面推荐过。我想再列出一个,仅供参考 - pkgs.org

*) 第四,还有一个用于 RHEL5 和 RHEL6 发行版的流行存储库 - EPEL。请注意,Red Hat 不支持它。

希望我的回答会有所帮助。

【讨论】:

  • 为什么使用选项provides和`推荐?
  • 我更喜欢短版rpm -qPp mypackage.rpmrpm -qRp mypackage.rpm。显然也适用于已安装的软件包(rpm -qP mypackagerpm -qR mypackage。)
【解决方案2】:

为了仅在命令行上列出一个包的所有依赖项,下面是一个基于 Peter 的 answer 的示例:

$ PKG="http://yum.postgresql.org/9.3/redhat/rhel-6.2-x86_64/pgdg-sl93-9.3-1.noarch.rpm"

使用 yum(推荐):

$ yum -q deplist $PKG
package: pgdg-sl93.noarch 9.3-1
  dependency: sl-release
   Unsatisfied dependency
  dependency: /bin/sh
   provider: bash.x86_64 4.1.2-8.el6
  dependency: config(pgdg-sl93) = 9.3-1
   provider: pgdg-sl93.noarch 9.3-1

上面的-q当然是可选的,相当于--quiet

使用 rpm

$ rpm -qpR $PKG
/bin/sh  
config(pgdg-sl93) = 9.3-1
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
sl-release  

上面的-qpR等价于--query --package --requires

【讨论】:

    【解决方案3】:

    此站点http://www.rpmfind.net/linux/RPM/ 提供了一个用于 rpm 文件的搜索引擎。您可以看到依赖项和描述。它还按发行版对它们进行分类。

    【讨论】:

      猜你喜欢
      • 2020-01-03
      • 1970-01-01
      • 2012-03-20
      • 2010-10-26
      • 1970-01-01
      • 1970-01-01
      • 2016-12-07
      • 2014-12-25
      • 1970-01-01
      相关资源
      最近更新 更多