在系統更新的時候,有時發現很奇怪的檔案衝突,例如同一個套件新舊版本的檔案發生衝突。原本該是被更新的檔案,卻被系統告知要安裝新版本中的檔案被舊版本套件中的檔案互相衝突。
以這次遇到的 glib-networking 為例:
錯誤:處理事項測試錯誤: glib-networking-2.68.3-1.fc34.i686 安裝的檔案 /usr/share/doc/glib-networking/NEWS 與來自軟體包 glib-networking-2.68.2-1.fc34.x86_64 的檔案產生衝突
從 glib-networking-2.68.3-1.fc34.i686 安裝的檔案 /usr/share/locale/hr/LC_MESSAGES/glib-networking.mo 與來自軟體包 glib-networking-2.68.2-1.fc34.x86_64 的檔
從 案產生衝突
在更新的過程中,系統告知版本 2.68.3-1 的 /usr/share/doc/glib-networking/NEWS
和 /usr/share/locale/hr/LC_MESSAGES/glib-networking.mo
兩個檔案與版本 2.68.2-1 的檔案發生衝突。照理說這些檔案應該是直接要被更新的才對,而不是出現這樣的錯誤訊息。
這時候可以先利用 rpm 指令檢查一下系統中是不是安裝了多個版本 glib-networking
rpm -qa | grep -i glib-networking
$ glib-networking-2.68.2-1.fc34.x86_64
glib-networking-2.68.2-1.fc34.i686
glib-networking-2.68.3-1.fc34.x86_64
可以看到不知道為什麼 2.68.3-1 已經安裝進來了,但 2.68.2-1 卻同時有 i686 和 x86_64 的兩組套件,可以直接把舊版本的 2.68.2-1 兩組套件移除後,再重新更新一次試看看。
sudo dnf remove glib-networking-2.68.2-1.fc34.i686
$ sudo dnf remove glib-networking-2.68.2-1.fc34.x86_64 $
如果並沒有安裝多個版本的問題,可以試試將其移除後再進行系統更新,最後再安裝回來,應該就可以解決這個問題。