修改上游 RPM 中的配置文件的正确方法?

修改上游 RPM 中的配置文件的正确方法?

创建一个 RPM 来修改%config(noreplace)另一个 RPM 安装的文件的正确方法是什么?

一般问题的具体实例:我们想要修改安装的存储库定义,almalinux-repos以便定义指向baseurl我们的内部镜像。因为存储库定义位于%config(noreplace)almalinux-repos,所以我们可以通过多种方式修改它们。然而,我们也希望将我们的修改打包。

一个想法是创建一个新的包Obsoletes: almalinux-repos。这建议使用almalinux-reposas BuildRequires,然后将其文件包含在 buildroot 中。它很容易Obsoletes变坏,所以我们反对这种方法。

另一个想法是创建一个新包,Requires: almalinux-repos然后用于%patch修改其文件。

第二个问题:假设我们使用该%patch机制,我们是否应该添加Supplements: almalinux-repos到新包中,以便它自动包含在包解析中?

答案1

almalinux-repos您的第二种方法存在一个问题,即在安装本地软件包之前您无法修改软件包中的文件。如果有修改,则有可能%patch无法正确应用。

我的方法是不使用 RPM 文件,而是使用 Ansible 来确保感兴趣的配置文件中有正确的设置。还有很多其他的可能性——这种方法更像是一种固执己见的解决方案,而不是一个真正的解决方案。

相关内容