Что касается основной проблемы, возможно, есть два дополнительных решения, которые присутствуют во всех об / мин версиях, которые мне известны.
- * 1006 дочерние пакеты *
macro
и rpmrc
файлов.
* 1013 дочерние пакеты *
Другая альтернатива (и, возможно, « RPM way ») - это использование подпакетов . Максимальная скорость вращения также содержит информацию и примеры подпакетов .
Я думаю, что вопрос пытается структурировать что-то вроде
два файла спецификаций; скажем rpm_debug.spec и rpm_production.spec
оба используют %include common.spec
debug и production также могут быть client и server и т. Д. В примерах переопределения переменной каждый subpackage может иметь собственный список переменных.
Ограничения
Основным преимуществом подпакетов является то, что происходит только одна сборка ; Это также может быть недостатком. Пример debug и production может выделить это. Это можно обойти, используя strip
для создания вариантов или , компилирующих дважды с различным выводом; возможно, используя VPATH
с Gnu Make). Необходимость компилировать большие пакеты, а затем иметь только простые варианты, например, с / без информации для разработчика, например headers
, статические библиотеки и т. Д., Может помочь вам оценить этот подход.
Макросы и Rpmrc
Подпакеты не решают проблему структурный определяет, что вы хотите для всей иерархии rootfs или большего набора RPM. У нас есть rpmbuild --showrc
для этого. У вас может быть большое количество переменных и макросов , определенных путем изменения rpmrc
и macros
при запуске rpm
и rpmbuild
. Со страницы man
,
rpmrc Configuration
/usr/lib/rpm/rpmrc
/usr/lib/rpm/redhat/rpmrc
/etc/rpmrc
~/.rpmrc
Macro Configuration
/usr/lib/rpm/macros
/usr/lib/rpm/redhat/macros
/etc/rpm/macros
~/.rpmmacros
Я думаю, что эти две функции могут решить все проблемы, которые могут %include
. Тем не менее, %include
является знакомой концепцией и, вероятно, был добавлен, чтобы сделать об / мин более полнофункциональным и удобным для разработчиков.