更新套件時新舊版本的檔案發生衝突

 在系統更新的時候,有時發現很奇怪的檔案衝突,例如同一個套件新舊版本的檔案發生衝突。原本該是被更新的檔案,卻被系統告知要安裝新版本中的檔案被舊版本套件中的檔案互相衝突。

以這次遇到的 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

如果並沒有安裝多個版本的問題,可以試試將其移除後再進行系統更新,最後再安裝回來,應該就可以解決這個問題。

沒有留言:

張貼留言

在 Chrome 中遇到自然人憑證跨平台元件未啟動或尚未安裝元件的問題

在使用Google Chrome瀏覽器操作自然人憑證認證頁面時,確定已安裝跨平台元件,但卻一直出現”未啟動或尚未安裝元件”訊息的情況,但使用無痕視窗開啟的話又可以使用,可以試試以下操作,步驟如下: 1. 複製 chrome://net-internals/#hsts 貼在網址列進...