LINUX.ORG.RU

проблемы с созданием rpm-пакетов


0

0

Добрый день. У меня сложилась такая проблема...

Есть проект. Нужно сделать 2 пакета: 1) с исходниками проекта

2) демонстрационный, который содержит только бинарные файлы

Пакет с исходниками должен - устанавливать либы в /usr/local/lib - устанавливать исходники в /usrl/local/src

Пакет с бинарными файлами должен - устанавливать либы в /usr/local/lib - устанавливать примеры в /usr/local/bin

Не понятно, как это надо делать... для deb'пакетов все было проще: я создавал 2 отдельных скрипта, которые для каждого пакета создавали собственное дерево файлов, которое при установке один в один отображалось на целевой компьютер

для rpm пакета же я обязан писать один скрипт, который должен выполнить ту же работу... я более-менее разобрался с форматом spec-файлов... не понятным осталось следующее: 1) в пакет src.rpm, я так понял, просто копируетсе архив с исходниками. так? как добавить в пакет пару либ (которые будут инсталлироваться в папку /usr/local/lib), без которых проект не будет компилироваться? как добавить в тот же пакет несколько заголовочных файлов, которые будут инсталлироваться в /usr/local/src? 2) в пакет с бинарными файлами нужно вставить - те же самые либы (A и B) - бинарные файлы, получившиеся в рез-те проекта

спасибо


Может я не совсем понял, но ИМХО, вам не нужен src.rpm, а нужен просто названный по-другому rpm пакет, допустим Super-proga-sources.rpm.

Хотя, что значит «те же самые либы (A и B) - бинарные файлы, получившиеся в рез-те проекта»? У вас в ходе компиляции получаются библиотеки без которых невозможна компиляция?

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

>Хотя, что значит «те же самые либы (A и B) - бинарные файлы, получившиеся в рез-те проекта»? У вас в ходе компиляции получаются библиотеки без которых невозможна компиляция?

почему-то переход на новую строку не работает... Да.. Либы A и B - не компилятся, они, грубо говоря, скачены из интернета и их нужно просто устнаовить в определенную папку

wotker
() автор топика

Ну вариантов как-бы и немного.

1)В скрипте сборки основного пакета в секции %install просто копировать их в выходное дерево (%RPM_BUILD_ROOT) и прописать их в секции %files

2)Можно паковать либы вообще отдельным пакетом и прописать на них Requires: у основного пакета

ef37 ★★
()

Может, лучше завернуть либы A и B в отдельные пакеты и прописать их в зависимости?

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

меня устроил вариант сохранять либы в дереве. Спасибо =)

Еще вопрос: можно ли для создания0 пакета с исходниками, «просто» скопировать их в промежуточное дерево (на этапе %install)? и как в %files указать все файлы исходников? одной командой

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

Возможно, я не совсем понимаю вопрос, если нужно включить в пакет файлы, проще всего это сделать так:


Прописать их как исходники (обычно в начале .spec-файла):

Source0: основнной архив исходников

Source1: example1.file

Source2: example2.file


Затем в секции %install делать приблиз. следующее:

cp %{SOURCE1} %RPM_BUILD_ROOT%{_libdir}

cp %{SOURCE2} %RPM_BUILD_ROOT%{_libdir}


В секции %files:

%{_libdir}/example1.file

%{_libdir}/example2.file


Поскольку файлики перечислены в качестве sources, то автоматически попадут в src.rpm. Если файликов много, можно положить в архив и не копировать, а распаковывать.

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

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

>Да.. Либы A и B - не компилятся, они, грубо говоря, скачены из интернета и их нужно просто устнаовить в определенную папку

огласи название твоего приложения. хочу добавить его в блэклист.

а вообще, что за либы? с лицензией у них как? почему они не включены в репозиторий, раз их надо скачивать отдельно? а если включены - зачем ты устраиваешь потенциальный dll-hell?

xydo ★★
()

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

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