Введение в создание пакетов для дистрибутива GNU Debian Linux

       

Скрипты ментейнера пакета и процедура инсталляции


Скрипты - необязательная часть, исполняются автоматически системой управления пакетами во время установки/удаления пакетов. Служат для конфигурации/деконфигурации пакета. Например, они создают системных пользователей, необходимых для функционирования пакета, либо создают конфигурационные файлы (на основе базы 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



Содержание раздела