Как сохранить содержимое BuildRoot?

11

Старый добрый rpm при пошаговом сборке пакета просто сохранял содержимое BuildRoot - для меня это было очень полезно, потому что если какое-то программное обеспечение было сложно создать, я мог бы проверить BuildRoot, если все в порядке.

Теперь со всеми «улучшенными» оборотами - содержимое BuildRoot удаляется автоматически, поэтому я не могу в него углубиться (шаг установки не такой длинный).

Один хак, о котором я знаю, это добавление некоторого сна в конце этапа установки к спецификации rpm. Но это безобразно.

Итак - ВОПРОС - как правильно сохранить содержимое BuildRoot - другими словами, как отключить автоматическое удаление раз и навсегда?

greenoldman
источник

Ответы:

6

Вы пытались использовать rpmbuild -biв тестировании, чтобы вы получили все на %installэтапе? Это должно показать вам, что происходит без автоматической очистки после этого.

Затем, когда вы удовлетворены, строить как обычно.

mattdm
источник
Спасибо. Это наименее навязчивый подход, и он работает.
Гринольдман
7

Просто добавь

    %define __spec_install_pre /bin/true

в верхней части .specфайла

domusofsail
источник
1
Это работает для меня в RHEL / CentOS 7.
Как
Это работает в Fedora 27.
Máté Wierdl
3

Попробуйте добавить пустышку %cleanв файл спецификации. Что-то типа:

%clean
echo NOOP
iFred
источник
не работает, потому что BUILDROOT удаляется в начале% install - это часть инициализации% install.
smcg
Если цель состоит в том, чтобы сохранить buildroot после сборки для расследования, то это работает.
Эдераг
0

Это является раздражающим, я согласен. Если вы не возражаете против изменения вашей rpm, я предлагаю зайти в источник rpm и выяснить, где удален BuildRoot, отключить эту строку (это, вероятно, только одна строка) и перекомпилировать. Другая вещь, которую я хотел бы предложить, это заполнить список ошибок, чтобы восстановить старое поведение, которое я считаю настраиваемым.

Вопрос: в какой версии rpm это поведение изменилось?

Фахим Митха
источник
Я не знаю о версии, но изменение официальных rpm было бы сложным: lists.rpm.org/pipermail/rpm-list/2008-De December/000040.html Объяснение указывает, что идеология играет огромную роль. Патч оборотов будет возможно, хотя, спасибо за подсказку. Может быть, мне бы тоже удалось восстановить автоматическое создание BuildRoot.
Гринольдман
@macias: я посмотрел исходники rpm в Debian (4.9.0-2), но не нашел ничего полезного. Однако, даже если разработчики не захотят изменить это, я ожидаю, что они готовы рассказать вам, как сделать это для себя.
Фахим Митха
К счастью, в этом случае работает ключ -bi , поэтому я пропускаю исправления, если могу - список программ с регрессиями в любом случае увеличивается.
Гринольдман