.rpmnew文件没有在包升级时创build?

我目前正在使用config(noreplace)指令testing安装一个configuration文件的RPM。

根据使用config(noreplace),我的spec文件将一个文件标记为configuration文件:

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

我做了一个磁盘修改版本1的文件,并进行升级到版本2.我期待详细的输出(当使用-Uvh )来表明它已经创build了一个db.xml.rpmnew它没有但是我做的磁盘修改是完整的。

有谁知道为什么这可能是这样的?

一些背景信息:我使用相同的tar文件来创build版本1和2,这应该不会有所作为,但我想我会提到它。

编辑1:

因为还不清楚db.xml.rpmnew文件没有被创build。

你观察到的是预期的行为。 只有满足以下两个条件时才会创build.rpmnew包:

  1. 新RPM包中的默认configuration文件与最初包含在当前/先前版本的RPM包中的configuration文件不同。 (软件包维护人员对默认设置进行了更改。)
  2. 磁盘上的实际configuration文件已经从包含当前/以前版本的软件包的默认设置中更改。 (pipe理员对默​​认设置进行了更改。)

根据更新日志:

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

当文件在包中没有改变时避免.rpmnew(rhbz#194246)

如果当前文件的types已经被改变,那么%config(noreplace)的当前行为将创build一个.rpmnewfile。

该修补程序改变了这种行为,所以当新旧(在数据库和包中)是相同的 – >没有改变,函数返回FA_SKIP – >它不会破坏任何东西,它只是跳过包的安装文件。 当新旧软件包包含%config符号链接,并且我们在磁盘上有常规文件时,这个补丁也处理相反的情况。

 Patch from Tomas Mraz.