我目前正在使用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包:
根据更新日志:
提交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.