YUM 깨진 거래

YUM 깨진 거래

RHEL 7에서 일정 시간이 지난 후 YUM을 사용하여 업데이트할 때 서버 연결이 중단되고 YUM 세션이 화면에서 실행되지 않기 때문에 YUM 트랜잭션이 올바르게 완료되지 않습니다.

--> Processing Conflict: firewalld-0.4.4.4-6.el7.noarch conflicts selinux-policy < 3.13.1-118.el7
--> Finished Dependency Resolution
You could try using --skip-broken to work around the problem
** Found 157 pre-existing rpmdb problem(s), 'yum check' output follows:
audit-2.7.6-3.el7.x86_64 is a duplicate with audit-2.6.5-3.el7_3.1.x86_64
audit-libs-2.7.6-3.el7.x86_64 is a duplicate with audit-libs-2.6.5-3.el7_3.1.x86_64
audit-libs-python-2.7.6-3.el7.x86_64 is a duplicate with audit-libs-python-2.6.5-3.el7_3.1.x86_64
bash-4.2.46-29.el7_4.x86_64 is a duplicate with bash-4.2.46-21.el7_3.x86_64
32:bind-libs-9.9.4-51.el7_4.2.x86_64 is a duplicate with 32:bind-libs-9.9.4-50.el7_3.1.x86_64
32:bind-libs-lite-9.9.4-51.el7_4.2.x86_64 is a duplicate with 32:bind-libs-lite-9.9.4-50.el7_3.1.x86_64
32:bind-license-9.9.4-51.el7_4.2.noarch is a duplicate with 32:bind-license-9.9.4-50.el7_3.1.noarch
...

따라서 거래가 완료되지 않으며 일부 패키지는 두 가지 버전으로 나열됩니다.

이 상태에서는 yum update다음을 보고합니다.

# yum update
Loaded plugins: product-id, search-disabled-repos
Resolving Dependencies
There are unfinished transactions remaining. You might consider running yum-complete-transaction, or "yum-complete-transaction --cleanup-only" and "yum history redo last", first to finish them. If those don't work you'll have to try removing/installing packages by hand (maybe package-cleanup can help).

그리고 거래는 실패했습니다.

이 문제를 해결하는 방법을 알아보려면 솔루션을 참조하세요.

답변1

문제를 해결하려면 다음 명령을 사용할 수 있습니다.

$ yum history redo force-reinstall last --setopt=protected_multilib=false

이는 yum매개변수를 사용하여 마지막 트랜잭션을 다시 실행하는 것을 의미합니다 force-reinstall. 모든 경우에 필요하지는 않을 수도 있습니다 --setopt=protected_multilib=false(제 경우에는 grub2 패키지 문제 때문이었습니다).

트랜잭션이 프로세스 중에 두 번 나열된 패키지에 대해 일부 오류를 보고할 수 있지만 완료되고 RPM 상태가 올바른 것으로 나타납니다.

그러나 Yum은 여전히 ​​완료되지 않은 거래에 대해 불평합니다(그러나 더 이상 실패하지 않습니다). 이제 안전하게 제거할 수 있습니다.

$ yum-complete-transaction --cleanup-only

현재 YUM은 정상적인 운영을 재개했습니다.

관련 정보