從一個儲存庫中刪除已安裝的軟體包並從 CentOS 重新安裝?

從一個儲存庫中刪除已安裝的軟體包並從 CentOS 重新安裝?

我有 62 個來自 RPMfusion 的軟體包,它們已經覆蓋了 CentOS 上游軟體包,現在我想回到原來的 CentOS 軟體包。

我能想到的唯一想法是

BAD_PACKAGES="name1 name2 ..."
echo $BAD_PACKAGES |xargs rpm -e --nodeps
echo $BAD_PACKAGES |xargs yum install

但這會使系統在此過程中處於損壞狀態。

問題

從 CentOS 的儲存庫中刪除並重新安裝這些軟體包的最安全方法是什麼?

答案1

你可以升級透過使用--oldpackage以下選項到舊版本rpm

rpm -Uvh --oldpackage package-a.1.23.rpm

這比安全得多rpm -e --nodeps。您可以在一個命令中升級多個軟體包,這樣就不會出現依賴關係損壞的情況。

答案2

下面的方法有效,但很可怕,因為它在過程中破壞了大量關鍵服務。

rpm -qa --queryformat "%{NAME}.%{ARCH} %-35{DISTRIBUTION}\n" | grep -i "rpm-fusion" | awk '{print $1}' > /root/list_arch
cat /root/list_arch | xargs rpm -e --nodeps 
cat /root/list_arch | xargs yum -y install

list_arch必須稍作編輯,因為 rpm-fusion 中的軟體包名稱與原始 CentOS 軟體包名稱略有不同。

yum我得到了安裝 rpm-fusion 軟體包的命令的輸出,這是一個很大的保險。

相關內容