Наиболее эффективным способом изменить несколько файлов в ходе установки является определение класса и создание сценария действия над классом. При использовании подхода с классом build необходимо поставлять один сценарий класса build для каждого изменяемого файла crontab. Более общим подходом будет создание класса cron. Для изменения файлов crontab при этом подходе необходимо:
Определить файлы crontab, которые будут изменяться, в файле prototype.
Создайте запись в файле prototype для каждого файла crontab, который будет изменен. Для каждого файла определите класс как cron и тип файла как e. Используйте действительное имя изменяемого файла.
Создать для пакета файлы crontab.
В этих файлах содержится информация, которую необходимо добавить к одноименным существующим файлам crontab.
Создать установочный сценарий действия над классом для класса cron.
Приведенный в примере сценарий класса i.cron делает следующее:
Определяет идентификатор пользователя (UID).
Сценарий i.cron устанавливает значение переменной user равной базовому имени выполняемого сценария класса cron. Это имя и является идентификатором пользователя (UID). Например, базовым именем /var/spool/cron/crontabs/root является root, который одновременно представляет собой UID.
Выполняет команду crontab с использованием UID и параметра -l.
Использование параметра -l означает для команды crontab, что следует направить содержимое файла crontab для определенного пользователя на стандартный вывод.
Передает результаты выполнения команды crontab в сценарий sed, который удаляет все предыдущие записи, добавленные с помощью данного метода установки.
Помещает измененное содержимое во временный файл.
Добавляет файл данных для корневого UID (поставленного с пакетом) во временный файл и добавляет метку о происходжении записей.
Выполняет команду crontabс тем же UID и передает результаты во временный файл в качестве входных данных.
Создать удаляющий сценарий действия над классом для класса cron.
Сценарий r.cron похож на установочный сценарий, за исключением отсутствия процедуры добавления данных в файл crontab.
Эти процедуры выполняются для каждого файла в классе cron.