rpm --升級相同軟體包會導致檔案衝突

rpm --升級相同軟體包會導致檔案衝突

我已經安裝了包含一堆文件的自訂包。

第二次運行rpm --upgrade出現很多錯誤:

File ABC from install of mypackage-1.0-0.i386 conflicts with file from package mypackage-1.0-0.i386

RPM 退出並顯示錯誤代碼 5。

但它是相同的軟體包,具有相同的版本號!它不應該說“已經安裝”之類的嗎?我需要對spec檔案或rpm升級指令做什麼才能避免這個問題?

運行時rpm --upgrade --replacefiles說“包mypackage-1.0-0.i386已安裝”,退出代碼為 5

(如果文件沒有改變,我真的不想替換它們......

一些錯誤訊息

答案1

您有多種選擇。最簡單的方法是在建立新套件時增加版本和/或發行版,以便rpm -U(升級)命令正常運作。如果您不想這樣做,可以使用rpm -U --replacefiles --replacepkgs有效地重新安裝該軟體包。第三種選擇是在安裝「新」套件之前刪除該套件。

在所有這些情況下,屬於常規 paylod 的所有文件(即未標記為noreplace設定檔)都會替換為較新的版本。這就是 RPM 的工作原理。如果您想只更新已變更的內容,則需要考慮產生 DRPM 套件 (Delta RPM),它只包含與先前版本的差異。這將要求您在重建時增加版本和/或版本號。我從來沒有做過增量 RPM 包,所以我無法提供任何關於它們的建議。

相關內容