LINUX.ORG.RU

srpm HELP!


0

0

Подскажите, пожалуйста, как работать с сабж. Очень надо пересобрать некоторые пакеты из стандартной поставки. Задача:

Имеется пакет ***.****.src.rpm

необходимо: 1. изменить параметры компиляции (configure), 2. скомпилить, 3. установить бинарник.

Спасибо!

anonymous

Какой дистр? man rpm (rpmbuild) уже не помогает?..

rpm -i *src.rpm

Правишь спек (/usr/src/redhat(или имя дистра)/SPECS) и собираешь.

Ikonta_521
()

Дистрибутив ASP 9 (Урал). Мануал помогает, но не очень. Еще раз повторю свою просьбу.

rpm -i ..., я сделал, но что дальше? Что значит "собираешь", Линукс, понимает такую команду (собрать!). Я же просил, подробней, общий принцип я и так знаю, но как конкретно???

Мне надо внести изменения в Makefile.linux, на сами исходники после установке находятся в архиве, и чего мне делать??? И вообще какой смысл в этих .src.rpm, может лучше просто архив с исходниками скачать? По крайней мере с ними все прозрачно делается?

Ну будьте людьми, объясните по пунктам какие команды выполнять, вы же на всякие флеймы кучу времени тратите, а помочь в конкретной проблеме, конкретному чуваку, осваивающему Линукс так некогда и лень???

Заранее благодарен.

anonymous
()

>rpm -i ..., я сделал, но что дальше?

cd /usr/src/asplinux/SPECS (или как там этот каталог называется).

vim имя_пакета.spec

Производишь необходимые изменения и потом, как описано в man rpmbuild собираешь с измененным спеком. После чего ищешь готовую rpm-ку в каталоге /usr/src/asplinux/RPMS и устанавливаешь.

>И вообще какой смысл в этих .src.rpm, может лучше просто архив с исходниками скачать? По крайней мере с ними все прозрачно делается?

На этапе сборки, ИМХО - проще. Но на этапе контроля версий обновления/удаления пакетов - не все так просто.

Ikonta_521
()

Вроде понял, спасибо...

Другими словами собственно из *.src.rpm - прога не ставится, а формируется в начале обычный *.rpm, и последний уже устанавливается...

Единственно я не совсем понял как с помощью *.SPEC внести изменения в Makefile, но это уже по месту буду разбираться.

Как то это не через то место получается, но раз уж лучше ничего не придумали....

Спасибо!

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

source

>Как то это не через то место получается, но раз уж лучше ничего не придумали....

Не нравится? Или еще не понял/не разобрался?

Рассмотри альтернативу: установка из исходников. Только не забудь про инструмент контроля установленного таким образом софта. Например: http://checkinstall.izto.org/index.php

А то цель uninstall не всегда добавляют в Makefile.

ЗЫ: Почитай внимательно спек. Там не только контроль зависимостей. Возможно, со временем научишься писать их самостоятельно и сам собирать rpm-ки уже из сырцов.

Ikonta_521
()

Дроугой ананимус: вот есть версия пакета 1.1.14, и есть исходники 1.1.15, можно ли с наименьшими усилиями (скопировав и заменив файлы) собрать новую версию пакета, это что не мучиться со спек файлом???

anonymous
()

Ikonta_521, зачем так заумно?
Пассажир не догоняет, и ему нужно готовое решение.

Пример:
# install the source rpm files
rpm -Uvh somename.src.rpm

# go to your distr-specific rpm spec dir
cd /usr/src/yourDistr/SPECS

# change parameters for ./configure
# which is called by rpm
# Also there can be a Makefile instead of
# configure - depends only on the
# somename application structure
vim somename.spec

# see 1) here

# rebuild the rpm
# additionally you can give some options
# e.g. --target=athlon
rpmbuild -bb somename.spec

# install produced rpm
rpm -Uvh /usr/src/yourDistr/BUILD/i386/somename.rpm

Собсно все.

1)
Кроме того у тебя есть возможность изменять исходный код.
В каталоге /usr/src/yourDistr/SOURCES
после установки src.rpm можно найти архив (или несколько),
относящихся к этому пакету.
somename.tgz
Распакуй архив - внеси изменения и запакуй снова.
Дальше - по инструкции

Wotson
()

Дроугой ананимус, cо spec файлом не мучаться нельзя.
spec должен содержать _все_ изменения, произошедшие между версиями.

- больше не инсталлируется файл в /usr/share/somename
-> сотри соответствующую линию в спеке.
- появился новый файл, который должен лежать в /usr/share/somewhereelse
-> добавь соответствующую линию в спек.

Так же необходимо изменить информацию о версии,
иначе ты так и будешь всегда получать старый рпм.

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

Wotson
()

P.S.
Makefile как раз меняется согласно 1)

P.P.S.
На счет BUILD в /usr/src/yourDistr/BUILD/i386/ не уверен,
возможно там что-то другое.
На солярке не проверить...

Wotson
()

Используйте эрпээмы и забудьте о "Рассмотри альтернативу: установка из исходников".

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