When creating an rpm package, the spec file can specify a number of scripts to be run before and after package install and uninstall. For the simple cases of a new install or an uninstall it is obvious which script runs when. However, the documentation didn’t seem very clear on the behavior during a package upgrade (rpm -U).
Documenting this as a note to my future self, for the next time I need it… The table shows which script runs when (and in what order) and what integer parameter it is given:
|Fresh install (rpm -i)||%pre 1
|Upgrade (rpm -U)||%pre 2
|Uninstall (rpm -e)||%preun 0
With this, the scripts can do something like:
%pre case "$*" in 1) echo package is about to be installed for first time ;; 2) echo package is about to be upgraded, prepare component echo for upgrade (e.g. stop daemons, etc) ;; esac exit 0