linux – %config(noreplace)文件上出现意外的RPM冲突
我正在使用rpmbuild创建自己的RPM.
我的RPM包含配置文件,即使RPM包含这些配置文件的新版本,也不应该覆盖这些配置文件. 要归档这个,我用这些标记 %config(noreplace) /opt/mypackage/etc/* 在spec文件中. 根据文档和this site,在这种情况下,本地修改的文件永远不会被覆盖,这正是我想要的. 但是,在执行以下操作时: >安装RPM的版本1 我遇到了冲突: $rpm --prefix ~/rpmroot/ -ih dist/mypackage-1.0.1-1.x86_64.rpm ########################################### [100%] file /home/user/rpmroot/mypackage/etc/myconfig from install of mypackage-1.0.2-1.x86_64 conflicts with file from package mypackage-1.0.1-1.x86_64 问题: >如何解释这种冲突? (我希望配置文件的新版本将存储为myconfig.rpmnew并且现有的保持不变) 更新(附加信息) rpm -qcp dist / mypackage-1.0.1-1.x86_64.rpm的输出是: /opt/mypackage/etc/config1.xml /opt/mypackage/etc/config2.xml /opt/mypackage/etc/run.sh /opt/mypackage/etc/config3.xml 完整的%files部分: %files %defattr(0444,root,root) /opt/mypackage/java/* #dba %defattr(0444,root) /opt/mypackage/dba/sql/* %defattr(0555,root) /opt/mypackage/dba/script/* #srv %defattr(0555,root) /opt/mypackage/srv/bin/* /opt/mypackage/srv/lib/* #etc %defattr(0664,root) %config(noreplace) /opt/mypackage/etc/* 解决方法
如果这实际上是你的问题,你可以踢自己…
我想这可能只是因为你在“安装”而不是“升级” 我创建了一个类似设置的测试RPM,结果如下: 和-ih一样
用-Uh
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |