Инструкция по сборке пакетов с помощью rpm: различия между версиями
Sb (обсуждение | вклад) мНет описания правки |
м (немножко перевернул) |
||
Строка 1: | Строка 1: | ||
{{attention|Действия пунктов | {{attention|Действия пунктов 1 и 4 настоящей инструкции выполняются с административными правами (root)!}} | ||
'''1. Установка необходимых пакетов для процесса сборки''' | '''1. Установка необходимых пакетов для процесса сборки''' | ||
<code>apt-get install rpm-build</code> | <code>'''#''' apt-get install rpm-build</code> | ||
'''2. Установка src.rpm пакета нужного ПО, которое требуется собрать''' | '''2. Установка src.rpm пакета нужного ПО, которое требуется собрать''' | ||
Находим и качаем src.rpm пакет нужного ПО, которое будем собирать, и устанавливаем его: | Находим и качаем src.rpm пакет нужного ПО, которое будем собирать, и устанавливаем его (от пользователя!): | ||
<code>rpm -i название_пакета_с_версией.src.rpm</code> | <code>'''$''' rpm -i название_пакета_с_версией.src.rpm</code> | ||
При этом исходники (исходный код) пакета разместятся в {{path|~/RPM/SOURCES}}, а [[Spec|спек]] — в {{path|~/RPM/SPECS}}.<br>Наличие исходного кода программного обеспечения и спека, т.е. описания процесса сборки, является необходимым и достаточным условием для самой процедуры сборки rpm пакета (или пересборки, например, пакета из более нового [[Branches|бранча]] для более старого). | При этом исходники (исходный код) пакета разместятся в {{path|~/RPM/SOURCES}}, а [[Spec|спек]] — в {{path|~/RPM/SPECS}}.<br>Наличие исходного кода программного обеспечения и спека, т.е. описания процесса сборки, является необходимым и достаточным условием для самой процедуры сборки rpm пакета (или пересборки, например, пакета из более нового [[Branches|бранча]] для более старого). | ||
Строка 22: | Строка 22: | ||
Приступаем к сборке, делается это командой: | Приступаем к сборке, делается это командой: | ||
<code>rpm -ba --target (i586|x86_64) ~/RPM/SPECS/имя_спека_нужного_пакета_для_сборки.spec</code> | <code>'''$''' rpm -ba --target (i586|x86_64) ~/RPM/SPECS/имя_спека_нужного_пакета_для_сборки.spec</code> | ||
При этом необходимо раскрыть скобки в зависимости от архитектуры, под которую происходит сборка пакета. | При этом необходимо раскрыть скобки в зависимости от архитектуры, под которую происходит сборка пакета. | ||
Строка 29: | Строка 29: | ||
{{Note|Пересобрать пакет без его установки (распаковки) можно и так: | {{Note|Пересобрать пакет без его установки (распаковки) можно и так: | ||
<code>rpmbuild --rebuild --target (i586/x86_64) название_пакета_с_версией.src.rpm</code> | <code>'''$''' rpmbuild --rebuild --target (i586/x86_64) название_пакета_с_версией.src.rpm</code> | ||
При этом необходимо также раскрыть скобки в зависимости от архитектуры, под которую происходит сборка пакета.}} | При этом необходимо также раскрыть скобки в зависимости от архитектуры, под которую происходит сборка пакета.}} | ||
Строка 40: | Строка 40: | ||
Если имеется srpm пакет, для сборки которого необходимо установить зависимости, то это можно сделать, выполнив следующую команду: | Если имеется srpm пакет, для сборки которого необходимо установить зависимости, то это можно сделать, выполнив следующую команду: | ||
<code>apt-get build-dep название_пакета_с_версией.src.rpm</code> | <code>'''#''' apt-get build-dep название_пакета_с_версией.src.rpm</code> | ||
Если srpm пакета нет и имеется отдельно спек и исходный код, то почти 100% сборка сразу не пойдёт — в самом начале вывода в консоли будут показаны пакеты, которые должны быть установлены в систему, прежде чем сборка сможет пойти далее. Вы их (эти выведенные в консоль зависимости сборки) установите | Если srpm пакета нет и имеется отдельно спек и исходный код, то почти 100% сборка сразу не пойдёт — в самом начале вывода в консоли будут показаны пакеты, которые должны быть установлены в систему, прежде чем сборка сможет пойти далее. Вы их (эти выведенные в консоль зависимости сборки) установите | ||
<code>apt-get install пакет1 пакет2 пакет3 ...</code> | <code>'''#''' apt-get install пакет1 пакет2 пакет3 ...</code> | ||
а после повторите сборку (возврат к шагу 3). | а после повторите сборку (возврат к шагу 3). | ||
Строка 52: | Строка 52: | ||
'''5. Автоматический поиск зависимостей для вновь собираемого пакета''' | '''5. Автоматический поиск зависимостей для вновь собираемого пакета''' | ||
Если вы собираете новый пакет, а не пересобираете уже существующий srpm, то хорошим подспорьем в рамках оформления (поиска и прописывания) нужных зависимостей в спек вам послужит утилита {{cmd|[[ | Если вы собираете новый пакет, а не пересобираете уже существующий srpm, то хорошим подспорьем в рамках оформления (поиска и прописывания) нужных зависимостей в спек вам послужит утилита {{cmd|[[buildreq]]}} из пакета {{pkg|rpm-utils}}: | ||
<code>buildreq имя_спек_файла.spec</code> | <code>'''$''' buildreq имя_спек_файла.spec</code> | ||
{{Category navigation|title=Сборка пакетов|category=Сборка пакетов|sortkey={{SUBPAGENAME}}}} | {{Category navigation|title=Сборка пакетов|category=Сборка пакетов|sortkey={{SUBPAGENAME}}}} | ||
[[Категория:Полезно]] | [[Категория:Полезно]] |
Версия от 12:38, 21 февраля 2019
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 из пакета rpm-utils:
$ buildreq имя_спек_файла.spec