LINUX.ORG.RU

rpmbuild, собрать пакет без сборки исходников


0

2

Собсно subj.
Нужно было пересобрать пакет, сборка которого занимала довольно продолжительное время, но в spec-файле оказалась ошибочка, было установлено больше файлов, чем в прописано в секции %files.
Можно ли как-то указать rpmbuild, что исходники уже собраны и нужно сделать только %install и собрать пакет?
Nxx Reset

★★★★★

alpha вроде как считает, что разбирается в rpm

lazyklimm ★★★★★
()

man rpmbuild

Сделать так можно используя -bi и -bb с опцией --short-circuit, но это грубое нарушение принципов верифицируемости и повторяемости сборки. И пользоваться таким пакетом неправильно.

Там в мане для этого есть пометка

Useful for local testing only. Packages built this way will be marked with an unsatisfiable dependency to prevent their accidental use.

Поставить такой пакет можно будет только с --force и он будет выдавать ошибку при любой проверке.

alpha ★★★★★
()
Ответ на: комментарий от alpha

Ага, понял, видел это в мане, просто не успел попробовать перед уходом с работы..
Суть проблемы, собрать пакет из федоры 17-ой для сентоса 5-го =))

UVV ★★★★★
() автор топика
Ответ на: комментарий от alpha

Поставить такой пакет можно будет только с --force и он будет выдавать ошибку при любой проверке.

Млин, значит придётся разбираться, откуда появились эти отладочные файлы в %install ... ((

UVV ★★★★★
() автор топика
Ответ на: комментарий от UVV

Суть проблемы, собрать пакет из федоры 17-ой для сентоса 5-го =))

Если ты сидя в ф17 собираешь для Centos, то используй mock. Он тебе для любой системы и для любой архитектуры из src.rpm соберет одной командой

mock -r epel-5-x86_64 --rebuild /path/to/file.src.rpm

alpha ★★★★★
()
Последнее исправление: alpha (всего исправлений: 1)
Ответ на: комментарий от alpha

Если ты наоборот хочешь на центосе собрать пакет из федоры - то бери src.rpm в федоре. Можно поискать на http://koji.fedoraproject.org версию постарше.

Устанавливаешь на центосе src.rpm и собираешь как положено, из полученного спека и исходников.

alpha ★★★★★
()

Можно еще «временно» поломать spec: закомментировать/удалить содержимое секций %prep и %build (т.е. реальные действия начнутся уже с %install). Но я бы такой пакет людям не показывал.

Kuzz ★★★
()
Ответ на: комментарий от alpha

Устанавливаешь на центосе src.rpm и собираешь как положено, из полученного спека и исходников.

Да, я именно так и делаю.
Я тоже сначала думал, что всё будет именно так же просто и гладко, как описано в этом предложении... ;)
В общем, сначала нужно было ручками разархивировать src.rpm, поскольку после 5-ого centos'a используется другой алгоритм упаковки rpm.
Затем применить пару workaround'ов к autotools и наблюдать, что сборка проходит не так гладко, как хотелось бы, а именно создались лишние файлы в секции %install.

UVV ★★★★★
() автор топика

Я давно уже ничего локально не собираю. залил исходники в билдсервис и делай свои дела.

Nxx ★★★★★
()

На RHEL4 для rpmbuild пользовался таким трюком:

--define '__spec_prep_pre exit 0' --define '__spec_build_pre exit 0'

На более новых версиях не проверял, но должно работать. С --short-circuit у меня были какие-то проблемы, уже не помню.

Конечно же, это вредный совет. :) Пользоваться этим можно только для отладки spec-файла.

amm
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.