SpecTips/triggers
Материал из ALT Linux Wiki
(Различия между версиями)
м (более точная категория) |
(→Порядок выполнения скриптов) |
||
Строка 4: | Строка 4: | ||
Для справки: порядок, в котором выполняются скрипты при обновлении одного пакета (<code>/usr/share/doc/rpm-4.0.4/manual/triggers</code>): | Для справки: порядок, в котором выполняются скрипты при обновлении одного пакета (<code>/usr/share/doc/rpm-4.0.4/manual/triggers</code>): | ||
- | <pre>new-%pre для новой версии пакета (которая устанавливается) | + | <pre> new - %pre для новой версии пакета (которая устанавливается) |
... (установка всех новых файлов) | ... (установка всех новых файлов) | ||
new-%post для новой версии пакета (которая устанавливается) | new-%post для новой версии пакета (которая устанавливается) | ||
- | any-%triggerin (%triggerin из других пакетов, сработавшие на установку новой версии) | + | any - %triggerin (%triggerin из других пакетов, сработавшие на установку новой версии) |
- | new-%triggerin | + | new - %triggerin |
- | old-%triggerun | + | old - %triggerun |
- | any-%triggerun (%triggerun из других пакетов, сработавшие на удаление старой версии) | + | any - %triggerun (%triggerun из других пакетов, сработавшие на удаление старой версии) |
- | old-%preun для старой версии пакета, которая удаляется | + | old - %preun (для старой версии пакета, которая удаляется) |
- | ... | + | ... (удаление всех старых файлов) |
- | old-%postun для старой версии пакета, которая удаляется | + | old - %postun (для старой версии пакета, которая удаляется) |
- | old-%triggerpostun | + | old - %triggerpostun |
- | any-%triggerpostun (%triggerpostun из других пакетов, сработавшие на удаление старой версии)</pre> | + | any - %triggerpostun (%triggerpostun из других пакетов, сработавшие на удаление старой версии)</pre> |
=== Примеры === | === Примеры === |
Версия 08:19, 12 мая 2009
Содержание |
Порядок выполнения скриптов
Для справки: порядок, в котором выполняются скрипты при обновлении одного пакета (/usr/share/doc/rpm-4.0.4/manual/triggers
):
new - %pre для новой версии пакета (которая устанавливается) ... (установка всех новых файлов) new-%post для новой версии пакета (которая устанавливается) any - %triggerin (%triggerin из других пакетов, сработавшие на установку новой версии) new - %triggerin old - %triggerun any - %triggerun (%triggerun из других пакетов, сработавшие на удаление старой версии) old - %preun (для старой версии пакета, которая удаляется) ... (удаление всех старых файлов) old - %postun (для старой версии пакета, которая удаляется) old - %triggerpostun any - %triggerpostun (%triggerpostun из других пакетов, сработавшие на удаление старой версии)
Примеры
Наиболее типичная проблема, которая может потребовать этого знания, описана в PseudoUserPolicy.
Вторая — переименование сервиса; примером предложен пакет etcnet:
$ rpm -q --triggers etcnet triggerun script (through /bin/sh) -- etcnet < 0.5.1 if [ $2 -gt 0 ]; then # This is etcnet upgrade. /sbin/chkconfig --del etcnet /sbin/chkconfig --add network fi
Определение типа операции с пакетом
1) пакет ставится в систему в первый раз
[ $1 -eq 1 ]
в %post
и %pre
2) пакет обновляется (удаляется старый и ставится одновременно новый)
[ $1 -eq 2 ]
в %post
и %pre
, [ $1 -eq 1 ]
в %preun
и %postun
3) пакет вообще удаляется из системы
[ $1 -eq 0 ]
в %preun
and %postun