Linux – package-cleanup

測試環境為 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 更新系統.

沒有解決問題,試試搜尋本站其他內容

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料