Проблема с несколькими списками одного и того же файла в спецификации RPM - PullRequest
1 голос
/ 05 августа 2011

У меня есть некоторые проблемы с файлом спецификации rpm, который выводит один и тот же файл несколько раз.Для этой спецификации мы делаем обычную компиляцию, а затем у нас есть скрипт, который копирует все в buildroot.В этом buildroot у нас есть много общих сценариев, которые необходимо установить в конечной системе, поэтому мы просто перечислим этот каталог.

Однако проблема в том, что один из сценариев может быть изменен, а параметры конфигурации могутбыть изменено в сценарии.Таким образом, мы перечислим этот скрипт с разными атрибутами как %config.Однако это означает, что скрипт определяется несколько раз с конфликтующими атрибутами, поэтому rpmbuild жалуется и вообще не включает скрипт в установочный пакет.

Есть ли хороший способ справиться с этой проблемой и сообщить rpmbuild толькоиспользовать второе определение, или мы должны разделить сценарий на две части, одна из которых содержит конфигурацию, а другая содержит реальную логику?

1 Ответ

1 голос
/ 16 августа 2011

Вместо указания каталога, вы можете создать список файлов и затем удалить дубликаты файлов из этого.

Так, где у вас есть что-то вроде

%files
%dir foo
%config foo/scriptname

Вы модифицируете эти части на

find $RPM_BUILD_ROOT -type f | sed -e "s|^$RPM_BUILD_ROOT||" > filelist
sed -i "\|^foo/scriptname$|d" filelist

%files -f filelist
%config foo/scriptname

Вы также можете использовать% {buildroot} вместо $ RPM_BUILD_ROOT.

...