Инструкция по сборке пакетов с помощью rpm: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Нет описания правки
Строка 5: Строка 5:
Находим и качаем src.rpm пакет нужного ПО, которое будем собирать, и устанавливаем его:
Находим и качаем src.rpm пакет нужного ПО, которое будем собирать, и устанавливаем его:
<pre>$ rpm -i название_пакета_с_версией.src.rpm</pre>
<pre>$ rpm -i название_пакета_с_версией.src.rpm</pre>
При этом исходники (исходный код) пакета разместятся в ~/RPM/SOURCES, а [[Spec|спек]] — в ~/RPM/SPECS.<br>Также см. [[Spec/Предопределенные_макросы|Предопределённые макросы для spec]] для расширения кругозора.
При этом исходники (исходный код) пакета разместятся в ~/RPM/SOURCES, а [[Spec|спек]] — в ~/RPM/SPECS.<br>Также см. [[Spec/Предопределенные_макросы|Предопределённые макросы в spec]] для расширения кругозора.


'''3. Сборка пакета'''<br>
'''3. Сборка пакета'''<br>
Строка 12: Строка 12:
При этом необходимо раскрыть скобки в зависимости от архитектуры, под которую происходит сборка пакета.
При этом необходимо раскрыть скобки в зависимости от архитектуры, под которую происходит сборка пакета.


'''''Замечание''': само по себе указание "--target (i586|x86_64)" не обязательно, и без него сборка отработает, но компилятор соберет пакет, точно заточенный под Ваш тип процессора. К примеру, если процессор семейства AMD Athlon, то пакет на выходе будет иметь не xxx.i586.rpm, а xxx.athlon.rpm. Это хорошо для конкретной машины в плане максимально возможной оптимизации по быстродействию, но совершенно не гарантирует устанавливаемость такого пакета на другом компьютере с другим процессором. Это касательно процессоров не x86_64. Если же сборка совершается на 64-битном процессоре с установленной 64-битной системой и под 64-битную систему - данный ключ вообще теряет смысл и ставить его совершенно не обязательно.''
'''''Замечание''': само по себе указание "--target (i586|x86_64)" не обязательно и без него сборка отработает, но компилятор соберет пакет, точно заточенный под Ваш тип процессора. К примеру, если процессор семейства AMD Athlon, то пакет на выходе будет иметь не xxx.i586.rpm, а xxx.athlon.rpm. Это хорошо для конкретной машины в плане максимально возможной оптимизации по быстродействию, но совершенно не гарантирует устанавливаемость такого пакета на другом компьютере с другим процессором. Это касательно процессоров, не относящихся к семейству x86_64. Однако, если же сборка совершается под 64-битную систему (на 64-битном процессоре с установленной 64-битной системой), то данный ключ вообще теряет смысл и ставить его совершенно не обязательно.''


'''4. Установка сборочных зависимостей'''<br>
'''4. Установка сборочных зависимостей'''<br>

Версия от 08:01, 23 ноября 2012

1. Установка необходимых пакетов для процесса сборки

# apt-get install rpm-build

2. Установка src.rpm пакета нужного ПО, которое требуется собирать
Находим и качаем src.rpm пакет нужного ПО, которое будем собирать, и устанавливаем его:

$ rpm -i название_пакета_с_версией.src.rpm

При этом исходники (исходный код) пакета разместятся в ~/RPM/SOURCES, а спек — в ~/RPM/SPECS.
Также см. Предопределённые макросы в spec для расширения кругозора.

3. Сборка пакета
Приступаем к сборке, делается это командой:

$ rpm -ba --target (i586|x86_64) ~/RPM/SPECS/имя_спека_нужного_пакета_для_сборки.spec

При этом необходимо раскрыть скобки в зависимости от архитектуры, под которую происходит сборка пакета.

Замечание: само по себе указание "--target (i586|x86_64)" не обязательно и без него сборка отработает, но компилятор соберет пакет, точно заточенный под Ваш тип процессора. К примеру, если процессор семейства AMD Athlon, то пакет на выходе будет иметь не xxx.i586.rpm, а xxx.athlon.rpm. Это хорошо для конкретной машины в плане максимально возможной оптимизации по быстродействию, но совершенно не гарантирует устанавливаемость такого пакета на другом компьютере с другим процессором. Это касательно процессоров, не относящихся к семейству x86_64. Однако, если же сборка совершается под 64-битную систему (на 64-битном процессоре с установленной 64-битной системой), то данный ключ вообще теряет смысл и ставить его совершенно не обязательно.

4. Установка сборочных зависимостей
Почти 100% сборка сразу не пойдёт — в самом начале вывода в консоли будут показаны пакеты, которые должны быть установлены в систему, прежде чем сборка сможет пойти далее. Вы их (эти выведенные в консоль зависимости сборки) установите

# apt-get install пакет1 пакет2 пакет3 ...

а после повторите сборку (возврат к шагу 3).

5. Если не найден макрос
Если rpm ругается на неизвестные макросы примерно так: "ошибка: Macro %groupadd not found", то в качестве факультатива можно поглядеть описание макросов rpm. А помочь в дальнейшей сборке пакета должна установка в систему пакета rpm-build-compat.

ВНИМАНИЕ! Действия пунктов 2 и 3 выполняются от пользователя!

Собранные пакеты разместятся в ~/RPM/RPMS.