0

我一直在研究如何使用 rpmbuild 规范文件来更新已经存在的配置文件。

例如,在我的 rpm 中,我想在配置文件中添加行,例如/etc/stunnel/stunnel

[SomeAppName]
accept = 8006
connect = 127.0.0.1:5006

我目前在我的 %install 部分有这个:

cat stunnel/stunnel.conf >> %{buildroot}/etc/stunnel/stunnel.conf

现在显然这是垃圾,因为每次我运行 rpm 时,它都会将这些相同的行添加到配置文件中。

我也不希望该/etc/stunnel/stunnel.conf文件成为我的 rpm 的一部分,因为我不希望在删除我的 rpm 包时将其删除。

我的问题是:

  1. 如何将 /etc/stunnel/stunnel.conf 排除在我的 rpm 中?
  2. 在 rpm 期间向配置文件添加行的正确方法是什么?
  3. 请有人提供一些链接,我可以在其中查看如何使其正常工作或可以在我的规范文件中使用的几行示例。

我已经查看了Max Rpm的官方指南,但到目前为止我还没有找到我的问题的答案。

4

1 回答 1

2

a)出于这个确切原因,许多更现代的工具也支持与平面文件平行的 .d 配置目录。例如,我的 Debian wheezy 发行版将 /etc/stunnel 视为一个目录,其中每个 .conf 文件都是一个单独的 stunnel 配置。

b)既定的替代方案似乎是一个有条件的结构,如

grep -q '[SomeAppName]' %{buildroot}/etc/stunnel/stunnel.conf || cat ...

(或者,如果不确定 stunnel.conf 是否已经存在)

grep -s '[SomeAppName]' %{buildroot}/etc/stunnel/stunnel.conf || cat ...
于 2011-09-14T13:00:19.323 回答