В моей организации мы развертываем все наше программное обеспечение на производственных машинах с помощью RPM. Наш процесс сборки (который автоматизирован) включает в себя проверку источника из системы контроля версий, сохранение этого исходного каталога в архиве, а затем запуск rpmbuild с использованием этого архива исходного кода. rpmbuild использует этот архив только для распаковки исходных кодов для работы с ними. Итак, похоже, что весь процесс тарирования и разворачивания - всего лишь ненужный дополнительный шаг в процессе сборки. Был ли способ просто указать исходный каталог в файле спецификации, избегая этих дополнительных шагов?
Этот вопрос немного устарел, но на тот случай, если другие люди найдут его в поиске, есть более правильный способ сделать это, который также позволяет создать SRPM.
В разделе подготовки вместо использования настроить макрос, вместо этого вы должны просто ввести сами, что вы хотите, а именно скопировать исходный каталог из SOURCES в BUILD вместо распаковки архива. Я обнаружил, что вам также нужно добавить компакт-диск в исходный каталог в разделах сборки и установки.
Пример фрагмента
%prep
# Don't use the setup macro anymore, replace it with typed-out commands
#%setup -q -n myapp-%{version}
cd %{_topdir}/BUILD
rm -rf myapp-%{version}
cp -rf %{_topdir}/SOURCES/myapp-%{version} .
cd myapp-%{version}
/usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
%patch1 -p1 -b .cert-config
%patch2
%build
cd myapp-%{version}
%install
cd myapp-%{version}
Да, ты можешь это сделать. Не перечисляйте никаких Source
с. в %prep
раздел не используйте %setup
макрос (который распаковывает исходный код); скорее, просто проверьте источник.
Обратите внимание, что в этом случае вы не сможете создавать SRPM.