как обновить уже существующий файл конфигурации с помощью rpmbuild?

Я искал, как использовать файл спецификации 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. Как правильно добавлять строки в конфигурационный файл во время обработки оборотов?
  3. Пожалуйста, может кто-нибудь предоставить несколько ссылок, где я могу увидеть, как это работает, или пример нескольких строк, которые я могу использовать в своем файле спецификации.

Я просмотрел официальное руководство по адресу Max Rpm, но пока не нашел ответ на мой вопрос.


person ghostJago    schedule 14.09.2011    source источник


Ответы (1)


а) Именно по этой причине многие более современные инструменты также поддерживают каталог конфигурации .d параллельно с плоскими файлами. Например, мой дистрибутив Debian wheezy рассматривает /etc/stunnel как каталог, в котором каждый файл .conf является отдельной конфигурацией stunnel.

б) Установленная альтернатива представляется условной конструкцией типа

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

(или, если вы не уверены, что stunnel.conf уже существует)

grep -s '[SomeAppName]' %{buildroot}/etc/stunnel/stunnel.conf || cat ...
person thiton    schedule 14.09.2011
comment
не думал об использовании каталога .d. Это может сработать, поскольку я использую RedHat, а Apache уже использует этот метод :) - person ghostJago; 14.09.2011
comment
мне нужно также поместить %config /etc/stunnel/stunnel.conf в раздел %files? - person ghostJago; 15.09.2011
comment
Если вы собираетесь использовать решение .d - нет. Еще - я недостаточно знаю о пакетах RPM, чтобы ответить на этот вопрос. - person thiton; 15.09.2011
comment
можете ли вы изменить свой ответ на grep -s, это сработало лучше, чем -q, так как не выдает ошибку, если файл не найден - person ghostJago; 15.09.2011