четверг, января 10, 2008

Как собрать программу из src.rpm в Alt Linux?

Взято отсюда http://faq.altlinux.ru/index.php?action=listq&nf=1&qid=28

Установите пакет rpm-build.
Запустите от пользователя программу rpminit, которая создаст в домашнем каталоге пользователя каталог RPM с подкаталогами.
Отредактируйте файл .rpmmacros, раскомментировав строки %packager и %_gpg_name и заполнив их нужной информацией.
Примечание. Пакеты в дистрибутивах ALT Linux могут собираться только непривилегированным пользователем.
А дальше качаем из Сизифа необходимую прогу.
Даем команду rpm -ivh имя_пакета.src.rpm
Далее переходим в директорию /home/имя_пользователя/RPM/SPECS
Там должен появиться файл имя_пакета.spec
Даем команду rpm -ba имя_пакета.spec
Далее переходим в директорию /home/имя_пользователя/RPM/BUILD/имя_пакета/

make
make install

Делал первый раз, вроде получилось, исправьте меня если я не прав.



Обсудить сообщение можно в форуме admins.arg.su

5 комментариев:

Анонимный комментирует...

Я вот чего не понял:
зачем делать make && make install, если после выполнения rpm -ba в каталоге ~/RPM/RPMS/архитектрура/ лежит свежесобранный бинарный пакет? Вот его и надо устанавливать через rpm или лучше даже через apt-get. Иначе к чему вообще вся эта система пакетов?

Рамиль комментирует...

Я вот все думал? кто нить читает чтоя пишу или нет. Справедливое возражение, че то у меня так не получилось. Линукс только начал осваивать.

swi комментирует...

выше правильно поправили. А еще лучше собирать в hasher. Специальная утилита в ALT создающая чистую сборочную среду и собирающая в ней пакет. Часто бывают ситуации когда пакет в рабочей среде собирается (rpm -ba) но не соберется в чистой среде (недостающие зависимости к примеру)

Рамиль комментирует...

А можно поподробнее про hasher. Или толковую ссылку по теме. Я думаю люди вам за это спасибо скажут.

Анонимный комментирует...

Ну, не знаю насколько толковое (всё-таки документацию неплохо бы почитать), но описание сборки с использованием hasher есть на альтовской вики. Единственное неудобство - для сборки пакетов крайне желательно иметь локальный репозитарий, т.к. иначе hasher каждый раз будет тянуть всё необходимое из интернета. Однако, при его отсутствии можно организовать некоторое подобие прокси на базе nginx, как это сделать описано здесь. Зато появляется возможность относительно просто собирать пакеты для разных веток.