yum: 종속성 누락으로 인해 puppet-agent를 업데이트할 수 없습니다.

yum: 종속성 누락으로 인해 puppet-agent를 업데이트할 수 없습니다.

yum()를 사용하여 패키지를 업데이트하려고 하는데 puppet-agent종속성 부족으로 인해 실패합니다. 아래 오류 출력이 표시됩니다.

생각하다왜 이런 일이 발생하는지 알고 있습니다. 패키지의 이전 버전(1.10.9-1)은 mcollective-*새 버전(6.4.2)이 지원하지 않는 일부 패키지에 의존하며 "mcollective" 패키지는 내 yum 저장소에 없습니다. 다시 사용 가능 .

그러나 종속성이 어디서 발생하는지 또는 이 문제를 가장 잘 해결하는 방법을 알 수 없습니다. 그래서 저는 두 가지 측면에서 도움을 요청하고 싶습니다.

  1. 종속성의 소스를 찾는 방법은 무엇입니까? 일반적으로 사용되는 방법은 다음과 같습니다.https://superuser.com/a/294666표시하지 마세요. 아래 세부정보를 참조하세요.
  2. 업그레이드하는 가장 좋은 방법은 무엇입니까? 몇 가지를 시도했지만 더 좋은 방법이 있는지 확실하지 않습니다. (일부 시도는 아래에 자세히 설명되어 있습니다.)

이 업데이트를 많은 수의 호스트(물론 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

업그레이드 솔루션

나는 다음을 시도했다일하다하지만 그것이 좋은지는 잘 모르겠습니다.

  1. yum remove puppet-agent이전 버전을 완전히 제거하고 yum install puppet-agent새 버전을 설치하세요.
  2. 이전 패키지가 포함된 저장소를 추가하고 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

관련 정보