Руководство разработчика по пакетированию приложений

Ключевые слова, используемые в пакетах с архивом классов

Для поддержки этого нового формата архива класса, трем новым интерфейсам в виде ключевых слов присвоено особое значение в файле pkginfo. Эти ключевые слова используются для обозначения классов, требующих специального обращения. Формат каждой строки с ключевым словом таков: keyword=class1[class2 class3 ...]. Значения каждого ключевого слова определены в следующей таблице.

Ключевое слово 

Описание 

PKG_SRC_NOVERIFY

Сообщает команде pkgadd что не следует проверять существование и свойства файлов в поставляемых каталогах reloc или root пакета, если они принадлежат к именованному классу. Это требуется для всех заархивированных классов, поскольку эти файлы больше не содержатся в каталогах reloc или root. Они превратились в файл частного формата в каталоге archive.

PKG_DST_QKVERIFY

Файлы этого класса проверяются после установки с помощью быстрого алгоритма и почти не имеют текстового вывода. Функция быстрой проверки сначала правильно устанавливает атрибуты каждого файла, а затем проверяет, удачно ли прошла операция. Кроме того, существует тест на размер файла и время его изменения, результаты которого сравниваются с величинами, указанными в файле pkgmap. Проверка контрольной суммы не производится, и система восстановления после ошибки хуже, чем система, предлагаемая стандартным механизмом проверки. В случае отказа питания или сбоя диска в ходе установки содержимое может не соответствовать установленным файлам. Данное несоответствие всегда можно разрешить с помощью команды pkgrm.

PKG_CAS_PASSRELATIVE

Обычно установочный сценарий действия над классом получает из stdin (стандартного входного потока) список пар источник-адресат, который сообщает ему, какие файлы следует устанавливать. Классы, назначенные PKG_CAS_PASSRELATIVE, не получают пар источник-адресат. Вместо этого они получают список, первой записью в котором является расположение исходного пакета, а остальная часть списка - пути конечного каталога. Это сделано специально для упрощения процесса извлечения из архива. По положению исходного пакета можно найти архив в каталоге archive. После этого пути конечного каталога передаются в функцию, которая отвечает за извлечение содержимого архива. Каждый представленный путь конечного каталога является либо абсолютным, либо относительным по отношению к базовому каталогу в зависимости от того, располагался ли первоначально этот путь в каталоге root или reloc. При выборе этого варианта могут возникнуть сложности при объединении относительных и абсолютных путей в один класс.

Для каждого заархивированного класса требуется сценарий действия над классом. Это файл, содержащий команды интерпретатора sh, который выполняется командой pkgadd для фактической установки файлов из архива. Если сценарий действия над классом находится в каталоге install пакета, команда pkgadd передает всю ответственность за установку этому сценарию. Сценарий действия над классом выполняется с полномочиями администратора (пользователя root) и может помещать свои файлы практически в любое место целевой системы.


Примечание –

Единственное ключевое слово, являющееся абсолютно обязательным для создания пакета с архивом класса, - это PKG_SRC_NOVERIFY. Оставшиеся ключевые слова могут использоваться для увеличения скорости установки или для сохранения программного кода.