关于RPM的%config和(noreplace)

RPM spec文件的%config宏用于标记配置文件,确保升级时不丢失用户修改。%config(noreplace)则在用户修改过配置文件且升级包中有更新时,保留旧文件并标记为.rpmnew。本文探讨了这两者的区别及应用建议。
摘要由CSDN通过智能技术生成

转自这里

 

RPM spec文件有个名为 %config 的宏,它可以标识配置文件, 这样在升级时用户对配置文件做过的修改就不会丢失。 没有它,用户千辛万苦修改过的配置文件会在升级过程中被覆盖。

 

%config也可以写成%config(noreplace),不过网上关于它的说明却屈指可数。 下面是关于这两者的一些实验,都是在RedHat 9的RPM(rpm-4.2-0.69)上进行的, 其他版本有可能不同。

 

RPM中的文件的制约条件有三个:

1. 该文件在spec中如何标识(默认,%config或者%config(noreplace));

2. 在rpm升级包中该文件是否被更新;

3. 该文件是否被用户编辑过。

 

下表就是各个条件的组合结果。

文件标识 在RPM升级包中是否更新
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值