![我可以构建一个拥有未安装的文件的 rpm 包吗?](https://linux22.com/image/1601383/%E6%88%91%E5%8F%AF%E4%BB%A5%E6%9E%84%E5%BB%BA%E4%B8%80%E4%B8%AA%E6%8B%A5%E6%9C%89%E6%9C%AA%E5%AE%89%E8%A3%85%E7%9A%84%E6%96%87%E4%BB%B6%E7%9A%84%20rpm%20%E5%8C%85%E5%90%97%EF%BC%9F.png)
我遇到过一种情况,我需要在应用程序首次启动时创建一个填充了默认值的配置文件。这不是典型的配置文件,我们非常关心用户所做的任何修改。在升级期间,我只想删除配置文件,这样新代码就可以启动并自动使用默认值重新创建配置文件(这不是我的决定 - 只是勉强服从命令)。
有没有办法构建一个拥有未安装文件的 rpm 包,以便在卸载过程中删除该文件?
我知道我可以随时添加一个删除文件的预删除脚本 - 我只是想知道我是否可以让 rpm 自动为我完成此操作。
答案1
您可以使用该指令执行此操作%ghost
:
%files
%ghost /path/to/future.file
来自文档:
%ghost 指令
正如我们在 %files 列表一节中提到的,如果在 %files 列表中指定了某个文件,则该文件将自动包含在包中。有时,某个文件应该由包拥有但尚未安装 - 日志文件和状态文件就是您可能希望这种情况发生的很好的例子。
答案2
不可以,这不可能。
顺便说一句:RPM 用于交付应用程序和库。对于配置管理,您应该使用 Ansible。