我的 RPM 应该如何处理 nginx rpm 需要将配置文件修改为 运行 的事实?

How should my RPM deal with the fact that the nginx rpm needs config files modified to run?

我正在编写一个非常基本的 RPM,它只做一个简单的 GUI 到系统上。它需要 nginx,将一些代码放入它的 html 目录,并将一个 conf 文件放入它的 conf.d 目录。大多数情况下,这可能 运行 在 VM 或新机器上,几乎没有安装其他东西。

在测试我的 RPM 时,我注意到它安装的 nginx 开箱即用失败。问题是它的 default.conf 目录使用 IPV6 地址而不是 IPV4,并且机器没有设置 IPV6 地址,我保证 none 安装此代码的机器将永远设置 IPV6。

修复方法是 very simple,但我的问题是关于良好的协议。我猜通常认为让我的 RPM 修改 nginx 文件的 default.conf 来修复导致异常的行是错误的,但同时如果我不这样做,我的 RPM 将无法正常工作没有人手动调整配置文件的盒子。如果我非常确信我将安装在没有 iPV6 地址的机器上,那么 'wrong' 如何覆盖默认文件?

我会检查你是否可以在 conf.d 中添加一些东西来覆盖错误的设置。

否则...

你的 %post 可以用 sed 之类的东西修改它。然后在那里放一个标志,表明你做了,所以你的 %postun 之后可以尝试清理。