10. Использование ebuild¶
- Использование ebuild
- emerge и ebuild
- Ручная установка программ
- Извлечение исходных кодов и проверка контрольных сумм
- Распаковка исходных кодов
- Компиляция исходных кодов
- Установка файлов во временное место
- Помещение файлов в рабочую файловую систему
- Очистка временного каталога
- Дополнительные возможности Ebuild
- Запуск всех команд установки
- Выполнение действий по настройке
- Сборка пакета (RPM)
- Дополнительная информация
emerge и ebuild¶
Программа ebuild — это низкоуровневый интерфейс системы Portage. С ее помощью можно выполнять определенные действия над заданными сборками ebuild. Например, вы можете самостоятельно выполнить отдельные этапы установки.
Программа ebuild предназначена в основном для разработчиков, поэтому более подробная информация находится в
Ручная установка программ¶
Извлечение исходных кодов и проверка контрольных сумм¶
Каждый раз, когда вы вызываете ebuild для какого-то ebuild-файла, проверяется совпадение контрольной суммы всех задействованных файлов с указаной в файлах Manifest
или files/digest-<имя>-<версия>
. Проверка выполняется после загрузки исходных кодов.
Чтобы загрузить исходные коды с помощью ebuild, запустите:
ebuild путь/к/файлу-ebuild fetch
Если контрольная сумма md5 сборочного файла не совпадает с той, что указана в файле Manifest
, или же один из загруженных файлов не совпадает с описанием в файле files/digest<пакет>
, вы получите сообщение об ошибке, похожее на такое:
!!! File is corrupt or incomplete. (Digests do not match) >>> our recorded digest: db20421ce35e8e54346e3ef19e60e4ee >>> your file's digest: f10392b7c0b2bbc463ad09642606a7d6 (!!! Файл поврежден или усечен. (Контрольные суммы не совпадают) )
На следующей строке указывается проблемный файл.
Если вы абсолютно уверены, что загруженные исходные коды и сам сборочный файл ebuild именно те, что вам нужны, можете пересоздать файлы Manifest
и digest-<пакетe>
, используя фукцию digest программы ebuild. Пример создания новых файлов Manifest и digest:
ebuild путь/к/файлу-ebuild digest
Распаковка исходных кодов¶
Чтобы рапаковать исходные коды в /var/tmp/portage
(или любой другой каталог, указанный в /etc/make.conf), запустите функцию unpack программы ebuild. Пример распаковки исходных кодов:
ebuild путь/к/файлу-ebuild unpack
Эта команда выполнит функцию src_unpack() программы ebuild (которая по умолчанию просто выполняет распаковку, если функция src_unpack() не определена). Все необходимые заплатки накладываются также на этом этапе.
Компиляция исходных кодов¶
Следующий шаг в процессе установки — компиляция исходных кодов. Для этого выполняется функция src_compile() вашего сборочного файла. Если нужно, заодно выполняется конфигурация. Пример компиляции исходных кодов:
ebuild путь/к/файлу-ebuild compile
Если вы хотите изменить инструкции компиляции, советуем отредактировать функцию src_compile(). Однако, вы можете также обмануть Portage, заставив ее поверить, что программа ebuild уже завершила компиляцию. Запустите нужные команды самостоятельно и создайте пустой файл .compile
в рабочем каталоге:
touch .compiled
Установка файлов во временное место¶
Следующий шаг — установка всех необходимых файлов во временный каталог. В него помещаются все файлы, подлежащие включению в рабочую файловую систему. Вы можете выполнить этот этап, запустив функцию установки программы ebuild, которая исполняет функцию src_install() сборочного файла:
ebuild путь/к/файлу-ebuild install
Помещение файлов в рабочую файловую систему¶
Последний этап — перенос всех файлов в рабочую файловую систему и их регистрация в системе Portage. В ebuild этот этап называется "qmerge", и включает следующие действия:
- выполняется функция pkg_preinst(), если она определена
- все файлы копируются в рабочую файловую систему
- файлы регистрируются в системе Portage
- выполняется функция pkg_postinst(), если она определена
Запустите функцию qmerge программы ebuild, чтобы выполнить этот этап:
ebuild путь/к/файлу-ebuild qmerge
Очистка временного каталога¶
Наконец, можно очистить временный каталог, используя команду clean программы ebuild:
ebuild путь/к/файлу-ebuild clean
Дополнительные возможности Ebuild¶
Запуск всех команд установки¶
С помощью функции merge программы ebuild, можно запустить команды извлечения, распаковки, компиляции, установки и помещения за один раз:
ebuild путь/к/файлу-ebuild merge
Выполнение действий по настройке¶
В некоторых приложениях содержатся инструкции по дальнейшей настройке установленного пакета. Эти инструкции могут потребовать участия пользователя, и, следовательно, не выполняться автоматически. Для запуска шагов настройки, указанных в необязательной функции config() сборочного файла, используйте команду config программы ebuild. Пример настройки пакета:
ebuild путь/к/файлу-ebuild config
Сборка пакета (RPM)¶
Вы можете попросить Portage создать двоичный пакет или даже RPM из вашего сборочного файла, воспользовавшись командами package и rpm, соответственно. Эти команды несколько различаются:
- команда package во многом похожа на merge, выполняя все необходимые шаги (извлечение, распаковку, компиляцию, установку) перед созданием пакета
- команда rpm собирает пакет RPM из файлов созданных после запуска окончания функции install программы ebuild
Пример создания пакетов:
#(cоздание двоичного пакета, совместимого с Portage) ebuild путь/к/файлу-ebuild package #(создание пакета RPM) ebuild путь/к/файлу-ebuild rpm
Созданный RPM, однако, не будет содержать информацию о зависимостях из сборочного файла ebuild.
Дополнительная информация¶
За дополнительными сведениями о системе Portage, программе ebuild и сценариях ebuild обращайтесь к следующим страницам справки man:
man portage (сама система Portage) man emerge (команда emerge) man ebuild (команда ebuild) man 5 ebuild (синтаксис файлов ebuild)
Кроме того, дополнительные сведения, относящиеся к разработке, находятся в