微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

依赖关系 – 有没有办法从yum检索依赖关系树?

为了减少XY问题的机会,我试图将PostGIS安装在干净,虚拟的RHEL5安装上,严重限制.我不知道我们(作为一家公司)是否有RH订阅.
# yum install postgis
Loaded plugins: product-id,security,subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Setting up Install Process
No package postgis available.
nothing to do.

当我尝试安装emacs时,它会抛出相同的错误,所以我相对确定我要安装哪个软件包并不重要.

虚拟机有互联网访问.

我想要做的是为我指定的一个软件(显然,即postgis)检索完整的依赖图. yum必须已经计算了这个依赖图(或者有一个可用于检索)来完成它的工作,那么我该如何利用这个资源呢?

根据RHEL5手册页:“repoquery是一个用于从YUM存储库查询信息的程序,类似于rpm查询.

对于您具体的postgis案例:

# repoquery --requires --recursive --resolve  postgis
postgresql-libs-0:8.1.23-6.el5_8.i386
geos-0:2.2.3-3.el5.i386
glibc-0:2.5-107.el5_9.5.i686
proj-0:4.5.0-3.el5.i386

如果您的系统是64位,您可以将“.i386”和“.i686”从包名称删除.

从repoquery的输出并不完美,因为例如,它无法在上述列表中列出glibc-common.但如果您的系统没有glibc和glibc-common已经安装,您的系统将不会运行.

编辑:虽然它不会引起错误,但是在–ELcursive标志似乎在RHEL5.11中什么都不做,可以省略.另外,使用–pkgnarrow = all标志来确保查询的所有(已安装,可用等)包都被考虑.最后,为了获得更多的依赖关系树的递归的一个步骤,在bash shell中,使用tee和xargs将repoquery命令的输出传递给第二个repoquery命令,如下所示:

# repoquery --requires  --resolve --pkgnarrow=all postgis.i386 | tee >(xargs -r -n 1 -- repoquery --requires  --resolve --pkgnarrow=all) | sort | uniq
basesystem-0:8.0-5.1.1.noarch
geos-0:2.2.3-3.el5.i386
glibc-0:2.5-123.el5_11.3.i686
glibc-common-0:2.5-123.el5_11.3.i386
krb5-libs-0:1.6.1-80.el5_11.i386
libgcc-0:4.1.2-55.el5.i386
libstdc++-0:4.1.2-55.el5.i386
openssl-0:0.9.8e-40.el5_11.i686
postgresql-libs-0:8.1.23-10.el5_10.i386
proj-0:4.5.0-3.el5.i386

原文地址:https://www.jb51.cc/javaschema/281909.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐