как да актуализирате вече съществуващ конфигурационен файл с помощта на 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. Какъв е правилният начин за добавяне на редове към конфигурационен файл по време на rpm?
  3. Моля, някой може ли да предостави някои връзки, където мога да видя как това да работи или пример за няколко реда, които мога да използвам в моя файл със спецификации.

Разгледах официалното ръководство за Max Rpm, но досега не намерих отговор на проблема ми.


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


Отговори (1)


a) Много по-модерни инструменти също поддържат .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