EBUILD¶
НАЗВАНИЕ¶
ebuild - низкоуровневый интерфейс системы портежей
СИНТАКСИС¶
ebuild файл команда [команда] ...
ОПИСАНИЕ¶
Программа ebuild представляет собой прямой интерфейс системы Portage. Она обеспечивает возможность непосредственного взаимодействия с ебилдом при помощи специальных подкоманд или групп команд, выполняемых в контексте данного ебилда, и функций. Утилита ebuild принимает в качестве аргументов ebuild-сценарий и одну или более команд, подвергает сценарий синтаксическому анализу и выполняет указанные команды. Имеются отдельные команды для загрузки исходных файлов, их распаковки, компиляции, установки объектных файлов во временный каталог image, установки образа в локальную файловую систему, создания архива пакета из образа и т.д.
ФАЙЛ¶
Должен быть рабочим ebuild-сценарием. Подробнее см. в руководстве по ebuild(5).
КОМАНДЫ¶
По умолчанию portage выполняет все функции по порядку вплоть до указанной. Например, если вы дадите команду compile, то вызовете тем самым и предшествующие ей функции (такие как setup и unpack). Если вы хотите, чтобы запускалась только одна команда, вам следует добавить опцию noauto в значение переменной окружения FEATURES. Подробнее см. в справке по make.conf(5).
help
Выводит справочную информацию о программе в сжатом изложении, а также целый ряд сведений о пакете.
setup
Запускает все действия по настройке данного пакета, в том числе специфические системные тесты.
clean
Очищает временный каталог сборки, созданный Portage специально для этого ебилда. Временный каталог build обычно содержит извлеченный из архива исходный код, а также, возможно, так называемый установочный образ (все файлы, которые будут установлены в локальную файловую систему или сохранены в пакете). Расположение каталога сборки определяется значением переменной PORTAGE_TMPDIR. Чтобы узнать ее текущее значение, выполните emerge --info. О том, как переопределить эту переменную, см. в справке по make.conf(5).
Примечание: Portage удаляет практически все данные, оставшиеся после успешной установки пакета, за исключением тех случаев, когда в переменной FEATURES явно указано noclean. Если вы добавите noclean в значение FEATURES, очень скоро большой объем дискового пространства будет занят ненужными файлами. Не рекомендуется пользоваться этим режимом постоянно, а лишь в том случае, если исходники пакетов потребуются вам после установки. Впрочем, возможно и ручное удаление этих файлов: для этого следует выполнить rm -rf /var/tmp/portage.
fetch
Проверяет, все ли источники данных, фигурирующие в SRC_URI, доступны в каталоге DISTDIR (подробнее см. в make.conf(5)) и имеют верную контрольную сумму. Если исходные коды недоступны, будет предпринята попытка загрузить их с серверов, адреса которых указаны в SRC_URI. Если для того или иного файла имеется несколько адресов загрузки, Portage проверит каждый из них и выберет тот сервер, который ближе. (Точность этого выбора на данный момент не гарантируется.) В первую очередь всегда обрабатываются зеркала Gentoo Linux, содержащиеся в переменной GENTOO_MIRRORS. Если по какой-либо причине md5-дайджест текущих или только что загруженных исходных кодов не совпадает с дайджестом в files/digest-[пакет]-[версия-ревизия], выводится предупреждение, и ебилд завершает работу с кодом ошибки 1.
digest
В настоящее время - эквивалент команды manifest.
manifest
Обновляет Manifest-файл пакета. В результате создаются контрольные суммы для всех файлов, обнаруженных в одном каталоге с обрабатываемым ебилдом, а также содержимое вложенных каталогов подкаталога files. При этом контрольные суммы генерируются и для всех файлов, перечисленных в SRC_URI для каждого ебилда. Подробнее о поведении данной команды, см. в разделе о смысле значения assume-digests переменной FEATURES справочного руководства по make.conf(5). Если вы не хотите, чтобы дайджесты принимались неявно, см. опцию --force.
unpack
Извлекает исходные коды в подкаталог каталога build (BUILD_PREFIX), вызывая функцию src_unpack() внутри файла ебилда. Если параметры функции src_unpack() не были указаны, для распаковки всех файлов, перечисленных в SRC_URI, будет использована стандартная src_unpack(). Как правило, исходники распаковываются в каталог${BUILD_PREFIX}/[пакет]-[версия-ревизия]/work. Обращаться к нему можно с помощью переменной ${WORKDIR}.
Создавая ебилд самостоятельно, убедитесь, что переменная S (каталог исходных файлов), определенная в начале ebuild-сценария, указывает на каталог, в котором действительно содержатся распакованные исходные коды. По умолчанию он определяется как ${WORKDIR}/${P}, поэтому, как правило, ничего не требуется исправлять. Функция src_unpack() также отвечает за наложение патчей перед компиляцией пакетов.
prepare
Подготавливает извлеченные из архива исходные коды, вызывая функцию src_prepare(), параметры запуска которой определены в ebuild-файле. При запуске src_prepare() текущим рабочим каталогом становится ${S}. Данная функция поддерживается начиная с EAPI 2.
configure
Производит конфигурирование распакованных исходных кодов, вызывая функцию src_configure(), параметры запуска которой определены в ebuild-файле. При запуске src_configure() текущим рабочим каталогом становится ${S}. Данная функция поддерживается начиная с EAPI 2.
compile
Компилирует распакованные исходные коды, вызывая функцию src_compile(), параметры запуска которой определены в ebuild-файле. При запуске src_compile() текущим рабочим каталогом становится ${S}. По завершении работы src_compile() исходные коды должны быть полностью скомпилированы.
test
Выполняет специальные тесты для отдельных пакетов, проверяя сборку.
preinst
Выполняет специальные действия для отдельных пакетов, которые требуется произвести до установки пакета в текущую файловую систему.
install
Устанавливает пакет во временный каталог install, вызывая функцию src_install(). По завершении каталог установки в (${BUILD_PREFIX}/[пакет]-[версия-ревизия]/image) будет содержать все файлы, которые должны быть либо установлены в текущую файловую систему, либо включены в бинарный пакет.
postinst
Выполняет специальные действия для отдельных пакетов, которые требуется произвести после установки пакета в текущую файловую систему. Как правило, при этом выводятся полезные сообщения.
qmerge
Эта функция устанавливает все файлы в каталог install в текущей файловой системе. Это производится следующим образом: сначала запускается функция pkg_preinst() (если указана). Затем все файлы устанавливаются в файловую систему, а их дайджесты контрольной суммы записываются в /var/db/pkg/${CATEGORY}/${PN}-${PVR}/CONTENTS. Наконец, по завершении установки всех файлов выполняется функция pkg_postinst() (если указана).
merge
Обычно для установки ебилда, необходимо последовательно выполнить следующие действия: fetch, unpack, compile, install и qmerge. Если вам нужно только установить ебилд, вы можете использовать данную команду: она сама выполнит все перечисленные операции и остановится в процессе выполнения только в том случае, если какая-либо функция отрабатывает с ошибкой.
unmerge
Эта команда сначала вызывает функцию pkg_prerm() (если та указана). Затем она удаляет все файлы из текущих файловых систем, файл содержимого пакета для которых имеет неверные контрольную сумму и время изменения. Все пустые каталоги удаляются вместе с вложенными. Наконец, команда запускает функцию pkg_postrm() (если та указана). Можно сначала установить новую версию пакета, а затем удалить прежнюю - собственно, именно в этом заключается рекомендуемый метод обновления.
prerm
Запускает для определенного пакета действия, которые необходимо выполнить до удаления пакета из файловой системы. См. также unmerge.
postrm
Запускает для определенного пакета действия, которые необходимо выполнить после удаления пакета из файловой системы. См. также unmerge.
config
Запускает для определенного пакета действия, которые необходимо выполнить до начала установки. Как правило, это настройка конфигурационных файлов или другие настроечные действия, назначаемые пользователем.
package
Эта команда очень напоминает merge, за исключением того, что после загрузки, распаковки, компиляции и установки создается .tbz2-архив бинарного пакета, который затем сохраняется в каталоге PKGDIR (см. make.conf(5)).
rpm
Собирает RPM-пакет RedHat из файлов во временном каталоге install. На данный момент сведения о зависимостях ебилда не включаются в RPM.
ОПЦИИ¶
--debug
Запустить bash с опцией -x option, в результате чего стандартный вывод будет включать подробную отладочную информацию.
--color < y | n >
Включить или отключить цветное отображение. Эта опция переопределяет значение переменной NOCOLOR (см. make.conf(5)) и может быть использована для принудительного назначения цвета в том случае, если стандартный вывод - не терминал (по умолчанию цвет включен только в том случае, если стандартный вывод - терминал).
--force
При использовании в связке с командой digest или manifest данная опция принудительно генерирует новые дайджесты для всех файлов исходного кода, относящихся к данному ебилду. Если в каталоге ${DISTDIR} требуемых исходников нет, они будут автоматически загружены.
--ignore-default-opts
Не использовать переменную окружения EBUILD_DEFAULT_OPTS.
--skip-manifest
Пропустить проверку Manifest-файлов.
БАГТРЕКЕР¶
Об обнаруженных ошибках сообщайте на
АВТОРЫ¶
- Achim Gottinger <achim@gentoo.org>
- Daniel Robbins <drobbins@gentoo.org>
- Nicholas Jones <carpaski@gentoo.org>
- Mike Frysinger <vapier@gentoo.org>
ФАЙЛЫ¶
/etc/make.conf
Содержит переменные сборки, имеющие приоритет перед значениями, указанными в файле make.globals.
/etc/portage/color.map
Содержит переменные, позволяющие назначать пользовательские настройки цветного вывода.
СМ. ТАКЖЕ¶
emerge (1), ebuild (5), make.conf (5), color.map (5)
Сценарий /usr/sbin/ebuild.sh.
Вспомогательные приложения в каталоге /usr/lib/portage/bin.
ПЕРЕВОД¶
- Елена Гаврилова <e.vl.gavrilova@yandex.ru>
Февраль 2011