Процедурные сценарии позволяют установить набор инструкций, которые выполняются в конкретные моменты при установке или удалении пакета. Каждый из четырех процедурных сценариев должен иметь одно из четырех заранее определенных имен в зависимости от выполняемых инструкций. Сценарии выполняются без аргументов.
Выполняется перед запуском установки класса. При выполнении этого сценария установка файлов не производится.
Выполняется после установки всех томов.
Выполняется перед запуском удаления класса. При выполнении этого сценария удаление файлов не производится.
Выполняется после удаления всех классов.
Процедурные сценарии выполняются от имени uid=root и gid=other.
Каждый сценарий должен выполняться неоднократно, поскольку он выполняется по одному разу на каждый том пакета. Это означает, что выполнение сценария неограниченное количество раз с одними вводными данными позволяет получить те же результаты, что и при однократном выполнении.
Каждый процедурный сценарий, который выполняет установку объектов пакета не в файл pkgmap, должен использовать команду installf, чтобы передать сведения в БД пакета об изменении или добавлении путевого имени. По завершении внесения всех изменений или добавлений следует вызвать эту команду с параметром -f. Таким способом устанавливать объекты пакета могут только сценарии postinstall и postremove. Для получения дополнительной информации см. справочную страницу installf(1M) и Глава 5Практические примеры создания пакета.
При выполнении процедурных сценариев взаимодействие с администратором не допускается. Все взаимодействие с оператором ограничивается сценарием request.
Каждый процедурный сценарий, который производит удаление файлов, не имеющих записи в файле pkgmap, должен использовать команду removef для передачи данных в БД пакета о том, что он не производит удаление путевого имени. По завершении удаления следует вызвать эту команду с параметром -f. Более подробная информация и примеры приведены на справочной странице removef(1M) и в Глава 5Практические примеры создания пакета.
Команды installf и removef использовать не следует, поскольку процедурные сценарии не связываются автоматически с путевыми именами, указанными в файле pkgmap.