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 direct( 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