Как установить папку назначения rpmbuild - PullRequest
15 голосов
/ 06 мая 2010

Я заметил, что rpmbuild (опции -bb и --buildroot) создают .rpm в разных местах в зависимости от того, какую ОС вы используете:

  • GNU / Linux Ubuntu <= 9.04: /usr/src/rpm/...</li>
  • GNU / Linux Ubuntu> = 9.10: /home/rpmbuild/...
  • GNU / Linux Fedora: /usr/src/redhat/...

Так как я могу вручную установить папку назначения для всех ОС?

Ответы [ 5 ]

15 голосов
/ 06 мая 2010

Отвечаю сам, добавив:

%define _rpmdir /outputdir

в файл .spec.

4 голосов
/ 17 июня 2016

Возможно, вы захотите использовать аргумент команды --define: например, это отправит файлы rpm в текущий каталог.

rpmbuild anything.spec --bb --define "_rpmdir $(pwd)"

Это отправит выходной каталог rpmsto

rpmbuild anything.spec --bb --define "_rpmdir /outputdir"

Или, может быть, что-то более сложное, например Настраиваемая задача gradle для rpmbuild .

1 голос
/ 19 июня 2016

Настройка среды rpmbuild в / home / http://www.linuxquestions.org/questions/linux-software-2/need-rpm-package-for-php-version-5-2-7-and-up-on-redhat-5-1-a-766486/#13

На самом деле не рекомендуется использовать / usr / src / **. То есть используя / home / [имя] / rpms / вы можете работать как непривилегированный пользователь. Для сборки пакетов не требуется su или sudo.


0 голосов
/ 22 июня 2019

Для меня решение было установить _topdir в подкаталог с именем rpmbuild внутри моего проекта. Я также установил несколько макросов, чтобы контролировать путь .rpm :

rpm:
rpmbuild -bb package.spec -D "_topdir $(shell pwd)/rpmbuild"  -D "SRC $(shell pwd)" -D "NAME $(NAME)" -D "ARCH $(ARCH)" -D "VERSION $(VERSION)" -D "RELEASE $(RELEASE)"
mv rpmbuild/RPMS/$(ARCH)/$(NAME)-$(VERSION)-$(RELEASE).$(ARCH).rpm ./
rm -rf rpmbuild

Затем я использую make , чтобы сгенерировать файл .rpm и переместить его. Я предпочитаю rpmbuild работать внутри своего каталога.

make rpm

package.spec использует эти макросы, например

Name:           %{NAME_PACKAGE}
0 голосов
/ 13 февраля 2018

Просто крошечный комментарий .. добавление "% define _rpmdir / outputdir" в файл спецификации также поддерживается rpmbuild в ОС AIX

...