Переменные среды можно использовать в обязательных информационных файлах, pkginfo и prototype. Кроме того, можно использовать параметр для команды pkgmk, используемой для сборки пакета. Поскольку в данной главе обсуждаются эти файлы и команды, здесь представлена дополнительная информации по переменным, зависящая от контекста. Однако перед началом сборки пакета следует ознакомиться с различными типами переменных и их возможным влиянием на успешное создание пакета.
Существуют два типа переменных:
Переменные, используемые при сборке пакета (переменные сборки)
Переменные сборки начинаются со строчной буквы, и их значение определяется в период сборки, когда производится сборка пакета с помощью команды pkgmk.
Переменные, используемые при установке пакета (переменные установки)
Переменные установки начинаются с заглавной буквы, и их значения определяются в период установки, когда пакет устанавливается с помощью команды pkgadd.
В файле pkginfo определение переменной имеет форму PARAM=value (Параметр=значение), и первая буква в PARAM является заглавной. Значения этих переменных определяются только во время установки. Если значение одной из этих переменных не может быть определено, выполнение команды pkgadd прерывается, и выдается сообщение об ошибке.
В файле prototype определение переменной может принять форму !PARAM=value или $variable. PARAM и variable могут начинаться как с заглавной, так и со строчной буквы. Вычисляются значения только для переменных, значения которых известны в период сборки. Если PARAM или variable является переменной сборки или установки, значение которой неизвестно во время сборки пакета, работа команды pkgmk прерывается, и появляется сообщение об ошибке.
Параметр PARAM=value можно включить и в качестве параметра команды pkgmk. Этот параметр работает так же, как в файле prototype, за исключением того, что область его действия является глобальной для всего пакета. Определение !PARAM=value в файле prototype является локальным для этого файла и той части пакета, который оно определяет.
Если PARAMявляется переменной установки, а variable - переменной установки или сборки с известным значением, то команда pkgmk вставляет определение в файл pkginfo, и это определение будет доступно в период установки. Однако команда pkgmk не определяет значения PARAM, содержащиеся в именах путей, указанных в файле prototype.
В таблице ниже представлен краткий обзор форматов, местоположения и области применения переменных.
Таблица 2–2 Краткий обзор переменных среды пакета
Место определения переменной |
Формат определения переменной |
Тип определяемой переменной |
Когда определяется значение переменной |
Где определяется значение переменной |
Элементы, которые переменная может заменить |
---|---|---|---|---|---|
Файл pkginfo |
PARAM=value |
Переменная сборки |
Игнорируется во время сборки |
нет |
Нет |
Установка |
Во время установки |
В файле pkgmap |
owner (владелец), group (группа), path (путь) или цель ссылки |
|
|
Файл prototype |
!PARAM=value |
Переменная сборки |
Во время сборки |
В файле prototype и любых включенных файлах |
mode (режим), owner (владелец), group (группа) или path (путь) |
Установка |
Во время сборки |
В файле prototype и любых включенных файлах |
Только в командах !search и !command |
|
|
Командная строка pkgmk |
PARAM=value |
Переменная сборки |
Во время сборки |
В файле prototype |
mode (режим), owner (владелец), group (группа) или path (путь) |
Установка |
Во время сборки |
В файле prototype |
Только команда !search |
|
|
Во время установки |
В файле pkgmap |
owner (владелец), group (группа), path (путь) или link target (целевая ссылка) |
|
|
|