LINUX.ORG.RU

Тонкости сборки пакета из srpm.


0

2

Привет! Собираю все под FC15. Возникла у меня задача собрать пакет zoneminder из srpm внеся свои корректировки. До этого через yum ставил zoneminder, он работает но функционал не полон! Мне хочется собрать и установить новую версию сервиса, но старую оставить в системе. Т.е оставить возможность выбирать, запускать прошлую версию или текущую. Типа service zoneminder stop && service zoneminder2 start.

Скажите реально ли это реализовать, достаточно ли обойтись простой корректировкой SPEC файла или нужно лезть в дебри исходников..

Собери по слакваревски.
configure
make
make install
И поставь куда-нибудь в /usr/local и оттуда её запускай. Если что, из локала руками вычищать легко.

imul ★★★★★ ()

Зачем оставлять старую и новую версии? Так, вроде, должно хватить правки srpm, там при заворачивании в пакет, ЕМНИМ, можно было переименовывать бинарники и другие файлы.

Но, проблема может быть с библиотеками, если новой версии zoneminder понадобятся новые версии библиотек.

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

Вообще, чтобы поставить вторую версию рядом с первой, одной правкой спека скорее всего не спасешься. Но и классический make&make install тут помочь не поможет, а вот поломать может очень многое.

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

Не лезь туда, где ничего не понимаешь.
Чтобы было две версии ставить надо не по стандартным путям.
А если ставить не по стандартным путям, задав их в --prefix, то какая разница, как это хозяйство ставить?
По слакваревски даже лучше. Так как не будет возможных коллизий со сторонними зависимостями, из-за того, что в базе два одинаковых пакета разных версий.
И вычищать легко и просто rm -rf /usr/local/zoneminder

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

> А если ставить не по стандартным путям, задав их в --prefix, то какая разница, как это хозяйство ставить?

Если ставить локально, от пользователя, в пользовательский хомяк - то иожно make install

А _все_ что ставится в систему от рута должно быть запечатано в пакет. И префиксы для make очень легко задать в спеке.

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

> Читай всё.

Всё - это что именно?

Повторю ещё раз: все префиксы для configure, make и make install можно поместить в спек. При сборке рпм-пакета выполняются в точности те же самые команды, что и при ручной сборке. Таким образом выигрыша при установке вручную нет никакого. А вот проигрыш есть.

1) Во-первых надежность Используя RPM ты застрахован от любой ошибки в префиксах или в Makefile-е. Встроенные механизмы проверки не дадут случайно переписать системные библиотеки.

2) Во-вторых, прозрачность Если ты собираешься пользоваться софтом больше получаса, то ты забудешь что как и куда ты ставил. Если не дай бог тебе придется передать управление сервером кому-то другому - он уже никогда не найдет концов, что и откуда тут взялось. RPM же хранит всю необходимую информацию полностью и предоставляет набор инструментов для работы с ней.

3) В-третьих, обновляемость ...

Короче говоря, все плюсы правильного управления пакетами давно известны и очевидны. А вот ни одного плюса по сравнению с RPM у ручной сборки нет.

alpha ★★★★★ ()

Всё просто: качаем исходник в архиве, и собираем локально от пользователя (. configure && make) в домашней директории. Всё, запуск оттуда или залинковать.

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

а вот ты и не лезь туда, хде нихера не понимаешь!
нехер из всего подряд делать слаку и лезть с такими советами в чужой монастырь!

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