>

 : Новости : Форум : Поддержка : Скачать: Документация  : Образование : Разработчику : Сайт : Пользователи

 

Как научиться собирать RPM

Выдержки из треда, начавшегося с вопроса "есть тарбол, как бы сделать rpm?" в fido7.ru.linux. Присылайте комментарии и дополнения.

 

Aleksey Barabanov wrote:

> Могу подсказать еще один. Метод старой макаки.

 

Кстати, да. Пожалуй что лучший для старта, параллельно с поглядыванием

в max-rpm на непонятных местах.

 

> 1.Берется какой-нибудь аналогичный пакет.

> 2.Внимательно изучается его спек.

> 3.Спек переименовывается и переписывается.

> 4.Собирается новый пакет.

> Если 4 не проходит, то изучаются ошибки, вносятся исправления и снова к п.4.

> Обращаю внимание, самое важное правильно найти объект для обезьяничанья.

 

Здесь есть пара нюансов.

 

1. Из дистрибутива, который желательно поближе к целевому по макросам.

2. В идеале — выдрав из cvs/svn, а не таская весь src.rpm

 

Сам порой лажу в http://cvs.pld-linux.org/cgi-bin/cvsweb/SPECS/

и мандривский cvs, но для редхатоидов многие из удобств цивилизации

недоступны. _Не_ рекомендую спеки SUSE, они рободельные из сборочницы

и потому читать их малоосмысленно.

 

Michael Shigorin

 

Обновление пакета

Из обсуждения уязвимости в nginx

 

В случае уже доступного пакета алгоритм в случае nginx примерно таков:

- rpm -qi nginx, смотрим Source RPM

- гуглим найденный src.rpm

- качаем из наиболее достоверного источника

- rpm -i nginx-*.src.rpm

- идём в RPM/SOURCES, который будет или под /usr/src, или в $HOME

- качаем текущий тарбол

- идём в ../SPECS

- vim nginx.spec

- ищем Version:, заменяем на соответствующую тарболу

- рядом Release: сбрасываем в что-нить вроде 1 (или alt0.1, или 1mypkg…)

- ищем %changelog, пишем по образу и подобию в его начало запись о содеянном (в альте для этого есть утилитка add_changelog)

- rpm -ba nginx.spec (если будет ругаться, что чего-то нужного из BuildRequires: не стоит, то ставим и повторяем)

- при удаче получаем собранные исходный и бинарный пакеты, последний доставляем-ставим

- при неудаче смотрим, что взорвалось — старые патчи отвалились, новый компилятор не собирает — и принимаем действия по необходимости (см. тж. Software-Building-HOWTO)

 

@ 16.09.2009 12:54 

См. тж.

www.comstar.ua

Powered by TYPO3 LinuxWorld.Kiev