Назад | Перейти на главную страницу

Создавайте RPM, используя исходный каталог, а не архив

В моей организации мы развертываем все наше программное обеспечение на производственных машинах с помощью 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.