LINUX.ORG.RU

Ебилды и песочница

 , ,


0

2

Собственно интересует аналог дебиановского fakeroot, где можно собрать пакет целиком, «установить» и проверить линтером на ошибки сборки. Есть ли в экосистеме Генту что-то похожее и если да, то где можно нарыть best practicies?

Всем спасибо.

Ответ на: комментарий от LongLiveUbuntu

Что подразумевается под проверкой на ошибки сборки?

В gentoo сам portage, собирает пакет в sandbox, там же гоняет тесты, если они у пакета есть. Но зависимости должны быть установлены в системе.

За установки зависимостей, включая зависимости для тестов, можно выполнить команду emerge -1q пакет --with-test-deps=y, затем можно собрать пакет и сразу запустить тесты FEATURES="test" ebuild путь/пакет-версия.ebuild compile test

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

Да, такой вопрос: я передаю econf префикс каталога установки, но все остальные каталоги все равно хотят ставиться в /usr. Как можно сказать econf, чтобы он все каталоги считал от моего prefix? Поменять ROOT?

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

Это нужно смотреть как сам скрипт сборки устроен. Иногда проще использовать install functions https://devmanual.gentoo.org/function-reference/install-functions/index.html

Пример тут есть: https://devmanual.gentoo.org/ebuild-writing/functions/src_install/index.html

Или для примера аналогичные ebuild можно найти.

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

Я собираю пакет, который нужен другому пакету, но желательно чтобы он не конфликтовал с таким же пакетом, но другой версии, в системе. Для этого я меняю префикс каталога установки, проще говоря, ставлю его в /opt вместо /usr. Про всякие doins знаю, но хочется обойтись минимумом: создать нужный каталог в pkg_preinst и сконфигурировать пакет с нужным прификсом, чтобы src_install уже сам поставил его куда надо.

Ну, а в процессе мне надо очень подробное логгирование всего этого дела, что ли. Ну и систему не сломать по пути.

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

чтобы он не конфликтовал с таким же пакетом, но другой версии

SLOT (слоты), но та лпоеделённая специфика нужна.

Если они по месту установки не сильно отличаются, то можно поставить в 6естандарьнле место, а потом уже для нужного пакета править скрипт сборки,чтобы он в новом месте искал.

сконфигурировать пакет с нужным прификсом

Зависит от того что вообще изначально прописано в скрипте сборки самой софтины.

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 1)

ebuild install - это как раз оно.

Если нужно проверить еще и корректность выставленных зависимостей(нет ли automagic deps) и работоспособность установленного пакета - тогда ставить в чруте/docker-контейнере.

Pinkbyte ★★★★★
()