測試環境為 CentOS 8 x86_64 (虛擬機)
有一次 yum update 到一半,系統掛點連帶著 yum 也沒完成,系統也無法再使用 yum update ,並出現以下的錯誤訊息.
Warning: RPMDB altered outside of yum.
後來找到原因 – https://wiki.centos.org/zh-tw/HowTos/CleaningUpDuplicatePackages
這是關於安裝相同套件(新舊版本皆安裝在系統上)的解決方式.需先使用指令 #package-cleanup –dupes (需 yum-utils 套件,可以用 rpm 安裝)檢視
[root@localhost ~]# package-cleanup --dupes bash: package-cleanup: 找不到指令... 是否要安裝「yum-utils」軟體包以提供「package-cleanup」指令? [N/y] y * 正在依佇列等待... * 正在載入軟體包清單。... 下列軟體包必須安裝: yum-utils-4.0.18-4.el8.noarch Yum-utils CLI compatibility layer 要處理變更嗎? [N/y] y ...
參數說明:
–dupes
Scan for duplicates in the local RPM database. Maps to dnf repoquery –duplicates.
[root@localhost ~]# package-cleanup --dupes 上次中介資料過期檢查:0:02:35 前,時間點為西元2021年05月18日 (週二) 23時05分17秒。 NetworkManager-1:1.32.0-0.1.el8.x86_64 NetworkManager-1:1.32.0-0.2.el8.x86_64 NetworkManager-adsl-1:1.32.0-0.1.el8.x86_64 NetworkManager-adsl-1:1.32.0-0.2.el8.x86_64 NetworkManager-config-server-1:1.32.0-0.1.el8.noarch NetworkManager-config-server-1:1.32.0-0.2.el8.noarch NetworkManager-libnm-1:1.32.0-0.1.el8.x86_64 NetworkManager-libnm-1:1.32.0-0.2.el8.x86_64 centos-stream-release-0:8.5-2.el8.noarch centos-stream-release-0:8.5-3.el8.noarch cockpit-bridge-0:238.2-1.el8.x86_64 cockpit-bridge-0:242-1.el8.x86_64 dmidecode-1:3.2-10.el8.x86_64 dmidecode-1:3.2-8.el8.x86_64 evolution-data-server-langpacks-0:3.28.5-15.el8.noarch evolution-data-server-langpacks-0:3.28.5-16.el8.noarch file-0:5.33-18.el8.0.1.x86_64 file-0:5.33-18.el8.x86_64 file-libs-0:5.33-18.el8.0.1.x86_64 file-libs-0:5.33-18.el8.x86_64 glibc-0:2.28-155.el8.x86_64 glibc-0:2.28-158.el8.x86_64 glibc-all-langpacks-0:2.28-155.el8.x86_64 glibc-all-langpacks-0:2.28-158.el8.x86_64 glibc-common-0:2.28-155.el8.x86_64 glibc-common-0:2.28-158.el8.x86_64 glibc-langpack-en-0:2.28-155.el8.x86_64 glibc-langpack-en-0:2.28-158.el8.x86_64 kpartx-0:0.8.4-11.el8.0.1.x86_64 kpartx-0:0.8.4-11.el8.x86_64 libndp-0:1.7-5.el8.x86_64 libndp-0:1.7-6.el8.x86_64 openssh-0:8.0p1-5.el8.x86_64 openssh-0:8.0p1-8.el8.x86_64 pcre-0:8.42-5.el8.0.1.x86_64 pcre-0:8.42-5.el8.x86_64 python36-0:3.6.8-2.module_el8.5.0+751+b79b40be.x86_64 python36-0:3.6.8-2.module_el8.5.0+761+faacb0fb.x86_64 virt-what-0:1.18-10.el8.x86_64 virt-what-0:1.18-9.el8.x86_64
接下來依據這個清單,透過指令 #rpm 把重複套件中新版的 rpm 移除(為何是移除新版,根據剛剛連結說明,我們無法確認新版的套件安裝是否正確),如以下兩個相同套件,要移除較新版的是 virt-what-0:1.18-10.el8.x86_64 .
virt-what-0:1.18-10.el8.x86_64 virt-what-0:1.18-9.el8.x86_64
[root@localhost ~]# rpm -e virt-what-0:1.18-10.el8.x86_64
參數說明: -e|–erase
依序移除所有重覆的套件後即可再透過 yum update 更新系統.
沒有解決問題,試試搜尋本站其他內容