LINUX.ORG.RU

RPM можно ли, не устанавливая, пересобрать несколько пакетов(одни зависят от других)?

 , ,


0

2

Почти все в заголовке, но все же.

Суть:

-есть некий набор пакетов, необходимых для установки ПО на целевую систему. Одни пакеты зависят от других.

-есть желание пересобрать все скриптом, что необходимо при переносе на немного отличающиеся версии того же дистрибутива, версию заранее не угадаешь. -есть проблема - зависимости при сборке.

Я вижу 2 пути:

-правим проекты так, чтобы искали свои зависимости не только в системе, но и во всяких ~/rpmbuild. Но тут сложность, rpm любит создавать в BUILDROOT каталоги под каждый пакет с указанием его версии(хотя, если можно это отключить - то уже почти выход). и файл проекта как то криво выглядеть начнет.

-после сборки каждого пакета устанавливать его (gentoo-style), но тогда надо как-то а) определить порядок сборки, весь список в rpmbuild уже не запихнешь. б) нужны права для установки.

подскажите, можно ли облегчить это действие?

а) определить порядок сборки, весь список в rpmbuild уже не запихнешь.

это не понял

б) нужны права для установки.

$man rpm
...
       --root DIRECTORY
              Использовать  для всех операций файловую систему с корнем в DIRECTORY.  Обратите внимание, что это значит, что база данных внутри DIRECTORY будет использоваться для проверки зависимостей,
              и все сценарии %post и %prep будут исполняться после chroot(2) в DIRECTORY.
...
anonymous ()
Ответ на: комментарий от anonymous

а) ну если скормить rpm список, он сам разберется в каком порядке устанавливать ( а может и собирать тоже )

б) попробовал - установились локально, в %_topdir, но cmake при сборке не находит ( не ищет? ) там. видимо chroot на него не действует?

спасибо, так уже интереснее, гораздо короче в проекты вписываю пути поиска зависимостей - пока что собираются в «песочнице»

Eye_Of_Cat ()

используй mock, и подключай в него локальный реп

alpha ★★★★★ ()

Правильное решение тебе уже подсказали

Добавлю:

Ставить каждый пакет сразу после сборки нельзя, в репозитории вполне могут быть конфликтующие пакеты.

Разбираться с зависимостями в rpm дело не благодарное: построить граф зависимостей по куче spec файлов сложно, их надо распарсить с интерпритацией макросов. По соотношению трудозатраты/результат простой список, редактируемый вручную, и сборка пакетов по одному в порядке прохода списка выглядит оптимальным.

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