軟體包升級時未建立 .rpmnew 檔案?

軟體包升級時未建立 .rpmnew 檔案?

我目前正在測試使用該指令安裝帶有設定檔的 RPM config(noreplace)

按照使用配置(不替換)我的規格文件將單一文件標記為設定檔:

%config(noreplace) /opt/lm/dest/conf/db.xml

我對版本 1 的文件進行了磁碟修改,然後升級到版本2 -Uvhdb.xml.rpmnew

有人知道為什麼會出現這種情況?

一些背景資訊:我使用相同的 tar 檔案來建立版本 1 和 2,這應該沒有什麼區別,但我想我還是要提一下。

編輯1:

如果不清楚該db.xml.rpmnew文件未建立。

答案1

您觀察到的是預期行為。 A.rpmnew僅當滿足以下兩個條件時才會建立套件:

  1. 新的 RPM 包中的預設設定檔與目前/先前版本的 RPM 包中最初包含的設定檔不同。 (軟體包維護者已對預設值進行了更改。)
  2. 磁碟上的實際設定檔已從目前/先前版本的套件中包含的預設設定檔變更。 (管理員已對預設值進行了更改。)

根據變更日誌:

提交 e64bf5b93ab689e6031fce4489e4ae38ebaebef1
作者:Panu Matilainen
日期:2007 年 8 月 28 日星期二 09:04:09 +0300

當套件中的檔案未更改時避免使用 .rpmnew (rhbz#194246)

%config(noreplace) 的目前行為會建立一個 .rpmnewfile,前提是目前檔案的類型已變更為最初安裝的檔案。

該補丁改變了這種行為,因此當舊的和新的(在數據庫和包中)相同時-> 未更改,該函數返回FA_SKIP -> 它不會破壞任何內容,它只是跳過從包中安裝文件。當舊包和新包包含%config符號連結並且我們在磁碟上有常規檔案時,此補丁也處理相反的情況 。

Patch from Tomas Mraz.

相關內容