Створюйте RPM, використовуючи вихідний каталог, а не тарбол


14

У моїй організації ми розгортаємо все наше програмне забезпечення на наших виробничих машинах з використанням RPM. Наш процес збирання (який автоматизовано) включає перевірку джерела з контролю версій, присвоєння цього каталогу джерела вгорі, а потім запуск rpmbuild за допомогою цього джерела tarball. rpmbuild використовує лише той тарбол, щоб знімати джерела для роботи над ними. Отже, здається, що весь завзятий та невпинний бізнес - це лише непотрібний додатковий крок у процесі збирання. Чи існував спосіб просто вказати вихідний каталог у файлі spec, уникаючи цих додаткових кроків?

Відповіді:


5

Так, ви можете це зробити. Не перераховуйте жодних Sources. У %prepрозділі не використовуйте %setupмакрос (який знімає джерело); скоріше, просто перевірте джерело.

Зауважте, що ви не зможете створити SRPM, якщо це зробите.


Це робить це. Мені просто потрібно змінити процедуру збирання, щоб перевірити речі в каталог rpm BUILD. Спасибі!
Едді

10

Це питання трохи старе, але у випадку, якщо інші люди знайдуть його в пошуку, є більш правильний спосіб зробити це, що також дозволяє створити SRPM.

У розділі попереднього підключення замість використання макросу налаштування вам слід просто ввести собі те, що ви хочете, щоб це зробити, а саме скопіювати вихідний каталог з ДЖЕРЕЛ на БУЛІД, а не розпаковувати архів. Я виявив, що вам також доведеться додати компакт-диск у свій вихідний каталог у розділах збирання та встановлення.

Приклад фрагмента

%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}тощо - fedoraproject.org/wiki/Packaging:RPM_Source_Dir )
IBBoard
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.