检查RPM依赖项

SuB*_*SuB 16 linux rpm rhel dependency-management

当您.deb在Ubuntu上使用软件包安装编程时,可以使用Ubuntu软件包搜索来检查软件包的依赖关系.例如,我可以从这里看到Wireshark的依赖关系.如您所见,依赖项由红色子弹标记.如果您知道程序所依赖的所有程序包,则可以下载并安装dpkg.

是否有任何替代RPM包的网站?特别为RHEL?

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

小智 25

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

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

$ rpm -qp mypackage.rpm --provides
$ rpm -qp mypackage.rpm --requires
Run Code Online (Sandbox Code Playgroud)

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

$ sudo yum install mypackage.rpm
Run Code Online (Sandbox Code Playgroud)

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

*)第四,RHEL5和RHEL6发行版还有一个更受欢迎的存储库--EPEL.请注意,Red Hat不支持它.

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


Acu*_*nus 9

要仅列出命令行中包的所有依赖关系,这里有一个基于Peter 的答案的示例:

$ PKG="http://yum.postgresql.org/9.3/redhat/rhel-6.2-x86_64/pgdg-sl93-9.3-1.noarch.rpm"
Run Code Online (Sandbox Code Playgroud)

使用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
Run Code Online (Sandbox Code Playgroud)

-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  
Run Code Online (Sandbox Code Playgroud)

-qpR以上相当于--query --package --requires.