Скрипты должны быть исполняемыми читаемыми файлами для всех и не должны быть доступны для записи другим, а также идемпотентны, то есть написаны таким образом, чтобы конечный результат их работы не зависел от количества запусков, и чтобы целостность системы не нарушалась при повторном их запуске.
Скрипты гарантированно имеют управляющий терминал, поэтому могут взаимодействовать с пользователем. Тем не менее, рекомендуется не злоупотреблять этим фактом и для автоматизации установки или обновления большого количества пакетов одновременно использовать систему debconf, которая может задавать пользователю вопросы о настройках всех устанавливаемых пакетов заранее, или же использовать сохраненный набор ответов при установке идентичной системы.
Параметры, с которыми вызываются скрипты:
При корректной инсталяции порядок вызова следующий:
new-preinst install
<распаковываются файлы>
new-postinst install
При апгрейде:
old-prerm upgrade new-version
new-preinst upgrade old-version
<распаковываются файлы>
old-postrm upgrade new-version
<удаляются лишние файлы>
<заменяются основные файлы>
<заменяются скрипты>
<удаляются backup'ы>
<статус меняется на unpacked>
new-postinst configure