如何使用rpmbuild更新预先存在的配置文件?

时间:2011-09-14 11:55:03

标签: linux rpm rpmbuild

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

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

[SomeAppName]
accept = 8006
connect = 127.0.0.1:5006

我目前在我的%安装部分中有这个:

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. 请有人提供一些链接,我可以看到如何使这个工作或我可以在我的spec文件中使用的几行示例。
  4. 我在Max Rpm查看了官方指南,但到目前为止,我还没有找到问题的答案。

1 个答案:

答案 0 :(得分: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 ...