Сборка RPM с использованием исходного каталога, а не tarball


13

В моей организации мы развертываем все наше программное обеспечение на наших производственных машинах, используя RPM. Наш процесс сборки (который автоматизирован) включает в себя извлечение исходного кода из системы управления версиями, сборку этого исходного каталога, а затем запуск rpmbuild с использованием этого исходного архива. rpmbuild использует этот архив только для разархивирования исходных текстов для работы с ними. Таким образом, кажется, что весь бизнес по тарированию и распаковке - просто ненужный дополнительный шаг в процессе сборки. Есть ли способ просто указать исходный каталог в файле спецификации, избегая этих дополнительных шагов?

Ответы:


5

Да, вы можете сделать это. Не перечисляйте никаких Sourceс. В %prepразделе не используйте %setupмакрос (который распаковывает источник); скорее, просто проверьте источник.

Обратите внимание, что вы не сможете создавать SRPM, если будете делать это.


Это делает это. Мне просто нужно изменить процедуру сборки, чтобы проверить все в каталоге rpm BUILD. Благодарность!
Эдди

10

Этот вопрос немного устарел, но в случае, если другие люди найдут его в поиске, есть более правильный способ сделать это, который также позволяет создавать 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}

Должно %{_topdir}/SOURCESбыть %{_sourcedir}? А %{_topdir}/BUILDможет быть %{buildroot}? (Кроме того, для похожих, но разных ситуаций, когда вы пытаетесь добавить дополнительные файлы, чтобы переопределить извлеченные из них %setup, документы Fedora рекомендуют использовать %{SOURCE2}etc - fedoraproject.org/wiki/Packaging:RPM_Source_Dir )
IBBoard
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.