EBUILD
Section: Portage (1)
Updated: Jan 2014
Page Index
НАЗВАНИЕ
ebuild - низкоуровневый интерфейс системы Portage
СИНТАКСИС
ebuild
файл команда [команда]...
ОПИСАНИЕ
Программа ebuild представляет собой низкоуровневый интерфейс
системы Portage. Она обеспечивает возможность непосредственного
взаимодействия со сценарием ebuild при помощи специальных
подкоманд или групп команд, выполняемых в контексте данного файла,
и функций. Утилита ebuild принимает в качестве аргументов
ebuild-сценарий и одну или более команд, подвергает сценарий
синтаксическому анализу и выполняет указанные команды. Имеются
отдельные команды для загрузки исходных файлов, их распаковки,
компиляции, установки объектных файлов во временный каталог image,
установки образа в локальную файловую систему, создания архива
пакета из образа и т.д.
ФАЙЛ
Должен быть рабочим ebuild-сценарием. Подробнее смотри в руководстве
по
ebuild(5).
КОМАНДЫ
По умолчанию portage выполняет все функции по порядку вплоть до
указанной, кроме функций, которые уже были вызваны в предыдущих
вызовах ebuild. Например, если вы дадите команду
compile, то
вызовете тем самым и предшествующие ей функции (такие как
setup и
unpack), если они не были запущены в
предыдущем запуске ebuild. Если вы хотите быть уверенным, что
все они были выполнены, вам нужно сначала использовать команду
clean. Если вы хотите, чтобы запускалась только одна команда,
вам следует добавить опцию
noauto к значению переменной
окружения
FEATURES. Подробнее смотри в справке по
make.conf(5).
- help
-
Выводит справочную информацию о программе в сжатом изложении,
а также целый ряд сведений о пакете.
- setup
-
Запускает все действия по настройке данного пакета, в том числе
специфические системные тесты.
- clean
-
Очищает временный каталог сборки, созданный Portage специально для
этого файла ebuild. Временный каталог сборки обычно содержит
извлеченный из архива исходный код, а также, возможно, так называемый
установочный образ (все файлы, которые будут установлены в локальную
файловую систему или сохранены в пакете). Расположение каталога
сборки определяется значением переменной 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. Если по какой-либо
причине контрольная сумма текущих или только что загруженных исходных
кодов не совпадает с контрольной суммой, записанной в файле
files/digest-[пакет]-[версия-ревизия], выводится предупреждение, и
программа ebuild завершает работу с кодом ошибки 1.
- digest
-
В настоящее время - эквивалент команды manifest.
- manifest
-
Обновляет Manifest-файл пакета. В результате создаются контрольные суммы
для всех файлов, обнаруженных в одном каталоге с обрабатываемым файлом
ebuild, а также содержимое вложенных каталогов подкаталога files.
При этом контрольные суммы генерируются и для всех файлов, перечисленных
в SRC_URI для каждого файла ebuild. Подробнее о поведении данной команды,
см. в разделе о смысле значения assume-digests переменной
FEATURES справочного руководства по make.conf(5). Если вы
не хотите, чтобы дайджесты принимались неявно, см. опцию --force.
- unpack
-
Извлекает исходные коды в подкаталог каталога сборки (BUILD_PREFIX),
вызывая функцию src_unpack() внутри файла ebuild. Если функция
src_unpack() не определена, для распаковки всех файлов, перечисленных в
SRC_URI, будет использована стандартная src_unpack(). Как правило,
исходники распаковываются в каталог ${BUILD_PREFIX}/[пакет]-[версия-ревизия]/work.
Обращаться к нему можно с помощью переменной ${WORKDIR}.
Создавая файл ebuild самостоятельно, убедитесь, что переменная 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
-
Устанавливает пакет во временный каталог установки, вызывая
функцию src_install(). По завершении каталог установки в
(${BUILD_PREFIX}/[пакет]-[версия-ревизия]/image) будет содержать
все файлы, которые должны быть либо установлены в текущую файловую
систему, либо включены в бинарный пакет.
- postinst
-
Выполняет специальные действия для отдельных пакетов, которые
требуется произвести после установки пакета в текущую файловую
систему. Как правило, при этом выводятся полезные сообщения.
- qmerge
-
Эта функция устанавливает все файлы в каталоге установки на
текущую файловую систему. Это производится следующим образом:
сначала запускается функция pkg_preinst() (если она существует).
Затем все файлы устанавливаются в файловую систему, а их
контрольные суммы записываются в
/var/db/pkg/${CATEGORY}/${PN}-${PVR}/CONTENTS. Наконец, по
завершении установки всех файлов выполняется функция
pkg_postinst() (если она существует).
- merge
-
Обычно для установки файла ebuild, необходимо последовательно выполнить
следующие действия: fetch, unpack, compile,
install и qmerge. Если вам нужно только установить
файл ebuild, вы можете использовать данную команду: она сама выполнит
все перечисленные операции и остановится в процессе выполнения только
в том случае, если какая-либо функция отрабатывает с ошибкой.
- unmerge
-
Эта команда сначала вызывает функцию pkg_prerm() (если она существует).
Затем она удаляет все файлы из текущих файловых систем, файл содержимого
пакета для которых имеет верную контрольную сумму и время изменения.
Все пустые каталоги удаляются вместе с вложенными. Наконец, команда
запускает функцию pkg_postrm() (если она существует). Можно сначала
установить новую версию пакета, а затем удалить прежнюю - собственно,
именно в этом заключается рекомендуемый метод обновления.
- prerm
-
Запускает для определенного пакета действия, которые необходимо выполнить
до удаления пакета из файловой системы. См. также unmerge.
- postrm
-
Запускает для определенного пакета действия, которые необходимо выполнить
после удаления пакета из файловой системы. См. также unmerge.
- config
-
Запускает для определенного пакета действия, которые необходимо выполнить
до начала установки. Как правило, это настройка конфигурационных файлов
или другие настроечные действия, которые пользователь может захотеть
выполнить.
- package
-
Эта команда очень напоминает merge, за исключением того, что после
загрузки, распаковки, компиляции и установки создается .tbz2-архив
бинарного пакета, который затем сохраняется в каталоге PKGDIR
(см. make.conf(5)).
- rpm
-
Собирает RPM-пакет RedHat из файлов во временном каталоге установки.
На данный момент сведения о зависимостях файла ebuild не включаются в RPM.
ОПЦИИ
- --debug
-
Запустить bash с опцией -x, в результате чего стандартный вывод будет
включать подробную отладочную информацию.
- --color < y | n >
-
Включить или отключить цветное отображение. Эта опция переопределяет
значение переменной NOCOLOR (см. make.conf(5)) и может быть
использована для принудительного назначения цвета в том случае, если
стандартный вывод - не терминал (по умолчанию цвет включен только в том
случае, если стандартный вывод - терминал).
- --force
-
При использовании в связке с командой digest или manifest данная опция
принудительно генерирует новые дайджесты для всех файлов исходного кода,
относящихся к данному файлу ebuild. Если в каталоге ${DISTDIR} требуемых
исходников нет, они будут автоматически загружены.
- --ignore-default-opts
-
Не использовать переменную окружения EBUILD_DEFAULT_OPTS.
- --skip-manifest
-
Пропустить проверку Manifest-файлов.
БАГТРЕКЕР
Об обнаруженных ошибках сообщайте на
https://bugs.gentoo.org/
АВТОРЫ
Achim Gottinger <achim@gentoo.org>
Daniel Robbins <drobbins@gentoo.org>
Nicholas Jones <carpaski@gentoo.org>
Mike Frysinger <vapier@gentoo.org>
ФАЙЛЫ
- /etc/portage/make.conf
-
Содержит переменные сборки, имеющие приоритет перед значениями,
указанными в файле make.globals.
- /etc/portage/color.map
-
Содержит переменные, позволяющие назначать пользовательские настройки
цветного вывода.
СМОТРИ ТАКЖЕ
emerge(1),
ebuild(5),
make.conf(5),
color.map(5)
- Сценарий /usr/lib/portage/bin/ebuild.sh.
-
- Вспомогательные приложения в /usr/lib/portage/bin.
-
ПЕРЕВОД
Переводчик: Елена Гаврилова <e.vl.gavrilova@yandex.ru>
Правка и обновление: Романов Владимир <blueboar2@gmail.com>
Переведенная версия соответствует английской версии от 2013-07-31