Инструкция по сборке пакетов с помощью rpm
Материал из ALT Linux Wiki
Sb (обсуждение | вклад) (Новая страница: «'''1. Установка необходимых пакетов для процесса сборки'''<br> <pre># apt-get install rpm-build</pre> '''2. Устано...») |
Sb (обсуждение | вклад) м |
||
(31 промежуточная версия не показана) | |||
Строка 1: | Строка 1: | ||
- | '''1. Установка необходимых пакетов для процесса сборки''' | + | {{attention|Действия пунктов 2, 3 и 5 настоящей инструкции выполняются от пользователя!}} |
- | < | + | |
+ | |||
+ | '''1. Установка необходимых пакетов для процесса сборки''' | ||
+ | |||
+ | <code>apt-get install rpm-build</code> | ||
+ | |||
+ | |||
+ | '''2. Установка src.rpm пакета нужного ПО, которое требуется собрать''' | ||
- | |||
Находим и качаем src.rpm пакет нужного ПО, которое будем собирать, и устанавливаем его: | Находим и качаем src.rpm пакет нужного ПО, которое будем собирать, и устанавливаем его: | ||
- | |||
- | |||
- | '''3. Сборка пакета''' | + | <code>rpm -i название_пакета_с_версией.src.rpm</code> |
+ | |||
+ | При этом исходники (исходный код) пакета разместятся в {{path|~/RPM/SOURCES}}, а [[Spec|спек]] — в {{path|~/RPM/SPECS}}.<br>Наличие исходного кода программного обеспечения и спека, т.е. описания процесса сборки, является необходимым и достаточным условием для самой процедуры сборки rpm пакета (или пересборки, например, пакета из более нового [[Branches|бранча]] для более старого). | ||
+ | |||
+ | {{Note|Также см. [[Spec/Предопределенные_макросы|Предопределённые макросы в spec]] для расширения кругозора.}} | ||
+ | |||
+ | |||
+ | '''3. Сборка пакета''' | ||
+ | |||
Приступаем к сборке, делается это командой: | Приступаем к сборке, делается это командой: | ||
- | < | + | |
+ | <code>rpm -ba --target (i586|x86_64) ~/RPM/SPECS/имя_спека_нужного_пакета_для_сборки.spec</code> | ||
+ | |||
При этом необходимо раскрыть скобки в зависимости от архитектуры, под которую происходит сборка пакета. | При этом необходимо раскрыть скобки в зависимости от архитектуры, под которую происходит сборка пакета. | ||
- | '''4. Установка сборочных зависимостей'''< | + | Собранные пакеты разместятся в {{path|~/RPM/RPMS}}. |
- | + | {{Note|Пересобрать пакет без его установки (распаковки) можно и так: | |
- | < | + | |
+ | <code>rpmbuild --rebuild --target (i586/x86_64) название_пакета_с_версией.src.rpm</code> | ||
+ | |||
+ | При этом необходимо также раскрыть скобки в зависимости от архитектуры, под которую происходит сборка пакета.}} | ||
+ | {{Note|Что касается процессоров, не относящихся к семейству x86_64, то само по себе указание "--target i586" опционально (сборка отработает и без него, но при этом компилятор соберет пакет, точно заточенный под Ваш тип процессора и наименование пакета будет отличаться от наименования пакетов бранчей, к примеру, xxx.athlon.rpm или xxx.pentium4.rpm). Отсутствие параметра "--target i586" при сборке совершенно не гарантирует устанавливаемость собранного таким образом пакета на другом компьютере с другим процессором. Если же сборка совершается под 64-битную систему (на 64-битном процессоре с установленной 64-битной системой), то ключ "--target x86_64" теряет свой смысл и ставить его совершенно не обязательно.}} | ||
+ | {{Note|Если {{cmd|[[Rpm|rpm]]}} ругается на не найденные макросы примерно так: "ошибка: Macro %groupadd not found" или "ошибка: Macro %license not found", то помочь в дальнейшей сборке пакета должна установка в систему одного из пакетов rpm-build-*, который, фактически, является дополнительной зависимостью для сборки (пересборки) вашего пакета и отвечает за присвоение требуемых значений этим самым не найденным макросам. В качестве факультатива можно поглядеть [[RPMMacrosDescription|описание макросов rpm]].}} | ||
+ | |||
+ | |||
+ | '''4. Установка сборочных зависимостей''' | ||
+ | |||
+ | Если имеется srpm пакет, для сборки которого необходимо установить зависимости, то это можно сделать, выполнив следующую команду: | ||
+ | |||
+ | <code>apt-get build-dep название_пакета_с_версией.src.rpm</code> | ||
+ | |||
+ | Если srpm пакета нет и имеется отдельно спек и исходный код, то почти 100% сборка сразу не пойдёт — в самом начале вывода в консоли будут показаны пакеты, которые должны быть установлены в систему, прежде чем сборка сможет пойти далее. Вы их (эти выведенные в консоль зависимости сборки) установите | ||
+ | |||
+ | <code>apt-get install пакет1 пакет2 пакет3 ...</code> | ||
+ | |||
а после повторите сборку (возврат к шагу 3). | а после повторите сборку (возврат к шагу 3). | ||
- | |||
- | |||
- | |||
- | + | '''5. Автоматический поиск зависимостей для вновь собираемого пакета''' | |
+ | |||
+ | Если вы собираете новый пакет, а не пересобираете уже существующий srpm, то хорошим подспорьем в рамках оформления (поиска и прописывания) нужных зависимостей в спек вам послужит утилита {{cmd|[[Buildreq|Buildreq]]}}: | ||
+ | |||
+ | <code>buildreq имя_спек_файла.spec</code> | ||
- | [[Категория: | + | {{Category navigation|title=Сборка пакетов|category=Сборка пакетов|sortkey={{SUBPAGENAME}}}} |
+ | [[Категория:Полезно]] |
Текущая версия на 18:46, 13 декабря 2015
1. Установка необходимых пакетов для процесса сборки
apt-get install rpm-build
2. Установка src.rpm пакета нужного ПО, которое требуется собрать
Находим и качаем src.rpm пакет нужного ПО, которое будем собирать, и устанавливаем его:
rpm -i название_пакета_с_версией.src.rpm
При этом исходники (исходный код) пакета разместятся в ~/RPM/SOURCES, а спек — в ~/RPM/SPECS.
Наличие исходного кода программного обеспечения и спека, т.е. описания процесса сборки, является необходимым и достаточным условием для самой процедуры сборки rpm пакета (или пересборки, например, пакета из более нового бранча для более старого).
3. Сборка пакета
Приступаем к сборке, делается это командой:
rpm -ba --target (i586|x86_64) ~/RPM/SPECS/имя_спека_нужного_пакета_для_сборки.spec
При этом необходимо раскрыть скобки в зависимости от архитектуры, под которую происходит сборка пакета.
Собранные пакеты разместятся в ~/RPM/RPMS.
Пересобрать пакет без его установки (распаковки) можно и так:
rpmbuild --rebuild --target (i586/x86_64) название_пакета_с_версией.src.rpm
4. Установка сборочных зависимостей
Если имеется srpm пакет, для сборки которого необходимо установить зависимости, то это можно сделать, выполнив следующую команду:
apt-get build-dep название_пакета_с_версией.src.rpm
Если srpm пакета нет и имеется отдельно спек и исходный код, то почти 100% сборка сразу не пойдёт — в самом начале вывода в консоли будут показаны пакеты, которые должны быть установлены в систему, прежде чем сборка сможет пойти далее. Вы их (эти выведенные в консоль зависимости сборки) установите
apt-get install пакет1 пакет2 пакет3 ...
а после повторите сборку (возврат к шагу 3).
5. Автоматический поиск зависимостей для вновь собираемого пакета
Если вы собираете новый пакет, а не пересобираете уже существующий srpm, то хорошим подспорьем в рамках оформления (поиска и прописывания) нужных зависимостей в спек вам послужит утилита Buildreq:
buildreq имя_спек_файла.spec