我已经创建了一个 RPM 包,并将其上传到我的本地 yum 存储库。当我(或未来的用户)安装 + 编辑包的配置文件,然后删除包 ( yum remove <package>
) 时,配置文件将被重命名或删除。
封装规格:
%files
%defattr(-, root, root, -)
%dir /etc/something
/etc/something/someA.conf # removed
%config /etc/something/someB.conf # removed
%config(noreplace) /etc/something/someC.conf # renamed => someC.conf.rpmsave
如果用户删除或更新软件包,我想保持修改后的配置文件不变。我怎样才能做到这一点?谢谢。
答案1
这不可能。
%config*
有关更多详细信息以及和的所有组合,*{rpmsave,rpmnew}
请参阅https://www.cl.cam.ac.uk/~jw35/docs/rpm_config.html
RPM 不是配置管理器。它只识别两种状态:已更改的文件或原始文件。
强烈建议使用 Ansible 进行配置管理。或者您可以用于rpmconf
在命令行上处理conf更新。
顺便说一句:有点挑剔:%defattr(-, root, root, -)
自古以来就不需要了。您可能是从一些旧教程中得到的。删除它即可。是无操作。