9.4.5 Определение установочных скриптов

В дополнение к макросам и командам сборки-установки-очистки разработчик может определить в spec-файле собственные скрипты. RPM поддерживает выполнение скриптов перед установкой (задаются маркером %pre) и скриптов после установки (маркер %post). В том же стиле можно выполнять скрипты перед удалением пакета (%preun) и после удаления пакета (%postun).

После ввода строки с нужным маркером задаются команды shell в необходимой последовательности. В примере показаны скрипты из пакета ypbind:

%post

/sbin/chkconfig --add ypbind

%preun

if [ "$1" = 0 ] ; then

/sbin/service ypbind stop > /dev/null 2>&1

/sbin/chkconfig --del ypbind

fi

exit 0

%postun

if [ "$1" -ge 1 ]; then

/sbin/service ypbind condrestart > /dev/null 2>&1

fi

exit 0

Здесь после установки сервис запускается и прописывается в список сервисов, запускаемых при каждом старте системы. После удаления соответственно необходимо остановить сервис, который загружен в текущей сессии и обновить список.

Скрипты %pre также встречаются довольно часто, так как многие пакеты требуют перед своей установкой проведение определенной работы.

Настоятельно не рекомендуется в данном стиле определять интерактивные скрипты. Если пакеты устанавливаются списком автоматически, или используется графическая утилита, вывод будет потерян.

Команда rpm принимает один параметр для скриптов, показанный в примере как $1. Параметр содержит количество версий пакета, которые установлены в систему. Возможные значения параметра даны в таблице.

Действие

Значение параметра

Установка в первый раз

1

Обновление

2 или больше

Удаление последней версии пакета

0

В предыдущем примере скрипт получает значение через shell-переменную $1.

Далее - Заполнение списка файлов
Назад - Очистка после сборки
Содержание