Скрипты ментейнера пакета и процедура инсталляции
Скрипты - необязательная часть, исполняются автоматически системой управления пакетами во время установки/удаления пакетов. Служат для конфигурации/деконфигурации пакета. Например, они создают системных пользователей, необходимых для функционирования пакета, либо создают конфигурационные файлы (на основе базы debconf, что предпочтительно, либо задавая вопросы самостоятельно), прописываю/удаляют программу из меню и т.д.
Скрипты должны быть исполняемыми читаемыми файлами для всех и не должны быть доступны для записи другим, а также идемпотентны, то есть написаны таким образом, чтобы конечный результат их работы не зависел от количества запусков, и чтобы целостность системы не нарушалась при повторном их запуске.
Скрипты гарантированно имеют управляющий терминал, поэтому могут взаимодействовать с пользователем. Тем не менее, рекомендуется не злоупотреблять этим фактом и для автоматизации установки или обновления большого количества пакетов одновременно использовать систему debconf, которая может задавать пользователю вопросы о настройках всех устанавливаемых пакетов заранее, или же использовать сохраненный набор ответов при установке идентичной системы.
Параметры, с которыми вызываются скрипты:
preinst
install, upgrade, abort-upgrade
postinst
configure, abort-upgrade, abort-remove, abort-deconfigure
prerm
remove, upgrade, faled-upgrade, deconfigure
postrm
remove, purge, upgrade, failed-upgrade, abort-install, abort-upgrade, disappear
Процедура инсталляции проходит в 13 этапов3. Кратко, preinst и postrm зовутся, когда файлов пакета нет в файловой системе.
При корректной инсталяции порядок вызова следующий:
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
Zhenja Kaluta 2002-12-12