创建一个修改由另一个RPM安装的%config(noreplace)文件的RPM的正确方法是什么?
一般问题的具体实例:我们希望修改almalinux-repos安装的存储库定义,以便这些定义具有指向我们内部镜像的baseurl。因为存储库定义是%config(noreplace)在almalinux-repos中,所以我们可以通过多种方式对它们进行修改。然而,我们希望我们的修改也有包装。
一个想法是创建一个新的包Obsoletes: almalinux-repos。这将建议使用almalinux-repos作为BuildRequires,然后将其文件包含在构建器中。对于Obsoletes来说,很容易出错,以至于我们不喜欢这种方法。
另一个想法是创建一个Requires: almalinux-repos的新包,然后使用%patch修改它的文件。
次要问题:假设我们使用%patch机制,我们是否应该将Supplements: almalinux-repos添加到新包中,以便将其自动包含在包解析中?
发布于 2023-03-07 20:07:35
次要方法存在的问题是,在安装本地包之前,无法修改almalinux-repos包中的文件。如果有修改,则%patch可能无法正确应用。
我的方法不是使用RPM文件,而是使用Ansible确保正确的设置在感兴趣的配置文件中。还有很多其他的可能性--这种方法更像是一种固执己见的解决方案,而不是一种真正的解决方案。
https://unix.stackexchange.com/questions/739016
复制相似问题