yum
我正在尝试使用( )更新包,puppet-agent
但由于缺乏依赖项而失败 - 下面的错误输出。
我思考我知道为什么会这样:旧版本(1.10.9-1)的软件包依赖于某些mcollective-*
软件包,而新版本(6.4.2)则没有,并且“mcollective”软件包在我的 yum 存储库中不再可用。
但是,我无法弄清楚依赖性从何而来或如何最好地解决这个问题。所以想请教两个方面的帮助:
- 如何找到依赖的来源?常用的方法如https://superuser.com/a/294666不要显示它 - 请参阅下面的详细信息。
- 进行升级的最佳方式是什么?我已经尝试了一些方法,但我不确定是否有更好的方法(下面详细介绍了一些尝试)
请注意,我需要在大量主机上部署此更新(当然使用 Puppet),因此我需要一个不涉及太多体力劳动的解决方案。
错误
[root@csqdev-app02 ~]# yum update puppet-agent
(...)
Resolving Dependencies
--> Running transaction check
---> Package puppet-agent.x86_64 0:1.10.9-1.el7 will be updated
--> Processing Dependency: mcollective-common >= 2.2.1 for package: mcollective-service-common-3.1.3-1.el7.noarch
--> Processing Dependency: mcollective-common >= 2.2.1 for package: mcollective-nettest-common-3.0.4-1.el7.noarch
--> Processing Dependency: mcollective-common >= 2.2.1 for package: mcollective-nrpe-common-3.1.0-1.el7.noarch
--> Processing Dependency: mcollective-common >= 2.2.1 for package: mcollective-puppet-common-1.11.1-1.el7.noarch
--> Processing Dependency: mcollective-common >= 2.2.1 for package: mcollective-package-common-4.4.0-1.el7.noarch
---> Package puppet-agent.x86_64 0:6.4.2-1.el7 will be an update
--> Finished Dependency Resolution
Error: Package: mcollective-service-common-3.1.3-1.el7.noarch (@puppetlabs)
Requires: mcollective-common >= 2.2.1
Removing: puppet-agent-1.10.9-1.el7.x86_64 (@puppetlabs)
mcollective-common >= 3.0.0-1.el7
Updated By: puppet-agent-6.4.2-1.el7.x86_64 (puppetlabs6)
Not found
Available: puppet-agent-1.0.0-1.el7.x86_64 (puppetlabs)
(...)
依赖性搜索
但是,当我检查使用repoquery
依赖项时,这两个版本都没有显示
[root@csqdev-app02 ~]# repoquery --requires --resolve --pkgnarrow=all puppet-agent-1.10.9 | uniq | sort
bash-0:4.2.46-31.el7.x86_64
coreutils-0:8.22-23.el7.x86_64
readline-0:6.2-10.el7.i686
readline-0:6.2-10.el7.x86_64
systemd-0:219-62.el7.x86_64
tar-2:1.26-35.el7.x86_64
util-linux-0:2.23.2-59.el7_6.1.i686
util-linux-0:2.23.2-59.el7_6.1.x86_64
[root@csqdev-app02 ~]# repoquery --requires --resolve --pkgnarrow=all puppet-agent-6.4.2 | uniq | sort
bash-0:4.2.46-31.el7.x86_64
coreutils-0:8.22-23.el7.x86_64
systemd-0:219-62.el7.x86_64
tar-2:1.26-35.el7.x86_64
util-linux-0:2.23.2-59.el7_6.1.i686
util-linux-0:2.23.2-59.el7_6.1.x86_64
请注意,我也尝试过repoquery
该--recursive
选项,但没有mcollective*
.
我也尝试使用 rpm direclty ( rpm -qR puppet-agent
) 但同样没有迹象mcollective
升级解决方法
我尝试过以下方法工作但我不确定它们是否有好处:
yum remove puppet-agent
完全删除旧版本,然后yum install puppet-agent
安装新版本- 添加包含旧
mcollective-*
软件包的存储库,进行更新,然后删除mcollective-*
软件包。
我不太喜欢这两种方法,特别是因为我必须使用(你猜对了)Puppet 来实现它的自动化。
系统信息
[root@csqdev-app02 ~]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)
[root@csqdev-app02 ~]# uname -a
Linux csqdev-app02.grass.corp 3.10.0-957.21.3.el7.x86_64 #1 SMP Tue Jun 18 16:35:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux