Показать сообщение отдельно
Старый 21.06.2005, 23:15   #10
Forest Gamp
Guest
 
Сообщений: n/a
По умолчанию Ответ: Как скомпилировать из пакета -.src.rpm -.rpm пакет

Сборка программ из исходников (*.src.rpm)
Алексей Любимов
Сборка корректно написанных РПМ - весьма незамысловатое знанятие.
Вопрос в том, где их взять, этих корректно написанных РПМ пакетов.
Абсолютное большинство пакетов из "сизифа" подходят под определение "безпроблемно собирающийся пакет".
Далее описана обычная последовательность действий в процессе сборки.
Для решения возникших при сборке проблем, смотрите другие статьи в этом же разделе.



1. Вытаскиваем файл с исходниками (*.src.rpm)

Пакеты РПМ с исходным кодом обычно имеют название вида

название-версия-сборка.src.rpm

Однако не обязаны. В СУСЕ эти пакеты имеют вид

название-версия-сборка.rpms

Вы можете скачать или скопировать к себе пакет с исходниками руками. Еще один вариант - поручить АПТу найти и скачать для вас пакет с исходниками нужной вам программы.

Для этого переходим в свой домашний каталог (или туда, где у нас есть права на запись и свободное место)
$apt-get source программа

Готово. Апт нашел в репозитарии исходник указанной программы, скачал его (или попросил вставить нужный СД-РОМ и скопировал) и положил в текущую директорию.

Обратите внимание! в отличии от обычных операций апт-гет - эта операция выполняется от пользователя! иначе скачанный файл будет иметь хозяином рута и потребуются лишние телодвижения для коррекции владельца файла на простого пользователя (#chown user:user *.src.rpm).


2. Подготовка к сборке.

Теперь необходимо положить исходники программы *.tar.gz и патчи *.patch.gz в папочку с /usr/src/RPM/SOURCES, файл описания процесса сборки *.spec положить в папку /usr/src/RPM/SPECS и можно приступать к сборке. Не спешите хвататься за MC и раскладывать файлы вручную, я всего лишь описал процесс, чтобы вы знали, где искать концы после этой операции. В реальности все вышеперечисленное делает команда

$rpm -i ваша_программа.src.rpm

Обратите внимание! в отличии от обычных операций установки через RPM - эта операция выполняется от пользователя! иначе файлы спецификации и тарболы в SOURCES будет иметь хозяином рута и потребуются лишние телодвижения для коррекции владельца файла на простого пользователя (#chown -R user:rpm /usr/src/RPM).

Теперь можно удалить файл *.src.rpm - он при нормальном ходе вещей более не понадобится.


3. Настройка опций сборки.

Переходим в папку /usr/src/RPM/SPECS и смотрим в файл-спецификацию сборки. Внутри идет полное описание процесса сборки программы и формирования итоговых бинарных РПМ (и src.rpm тоже).
Несмотря на пугающий синтаксис и довольно большой объем, спек (файл-спецификацию обычно так и называют - спек) формализован донельзя и от программы к программе меняется очень незначительно. Сейчас просто посмотрите на конструкции вида
define свойство 0 (или 1) и поставьте их в нужное значение (1 - включено или да, 0 - выключена или нет). Большинство пакетов (можно сказать все) собираются и без этих правок, но не упускайте возможность хотя бы посмотреть на варианты.


4. сборка

$rpm -ba программа.spec

Обратите внимание! в отличии от обычных операций установки через RPM - эта операция выполняется от пользователя! иначе RPM скажет вам, что сборка разрешена только непривилегированным пользователям и собирать ничего не будет.

rpm последовательно выполнит все инструкции из спека и запишет два итоговых файла: бинарный, в соответствии с вашим процессором в /usr/src/RPM/RPMS/ваш_проц/ и src.rpm в /usr/src/RPM/SRPMS.




Сборка завершена

Несколько советов.


-сборка для другой архитектуры
$rpm -ba --target i386 программа.spec
$rpm -ba --target i486 программа.spec
$rpm -ba --target i586 программа.spec
$rpm -ba --target i686 программа.spec
$rpm -ba --target athlon программа.spec

-если выскакивают ошибки, то можно после исправления ситуации не проходить все заново. Как пропустить отдельные стадии - см man rpm.

-Посмотреть список файлов или сводку из еще неустановленного рпм
$rpm -qlp файл.rpm (или src.rpm)
$rpm -qip файл.rpm (или src.rpm)

-Установить готовый рпм
#rpm -i файл.rpm (от рута!)

-Смотрите статьи, посвященые проблемам сборки некорректных рпм от юзера и "RPM - частые команды"

адрес статьи: [Для просмотра ссылок требуется регистрация. Зарегистрироваться...]

Урааааааааа.......нашёл......спасибо всем за решение вопроса!!!!! Чо получится - отпишусь!!!! :xe

[ADDED=Forest Gamp]1119386725[/ADDED]
Мистика какая то! Всё прям по инструкции делал - No such file or directory!
Уже через МС пробовал - там вообще ничего не происходит! Видать переустанавливать придётся- или Линух криво встал либо руки кривые :7:

Последний раз редактировалось Forest Gamp; 22.06.2005 в 00:45..
  Ответить с цитированием Вверх
 
Время генерации страницы 0.08258 секунды с 9 запросами