问题
I'm working on a bug in our rpm scriptlets which is probably originating from order in which our scriptlets are executed during package install/removal/upgrade. We are using yum on Redhat Enterprise.
Obviously I first need a good understanding of the order of the rpm scriptlets - and interestingly enough I have not found a good summary of this anywhere.
From what I gather this is the scriptlet ordering for upgrades:
%pretrans
of new package%pre
of new packageprein
- package install
%post
of new packagepostin
%preun
of old package- removal of old package
%postun
of old package%posttrans
of new package
However it doesn't list the scriptlet orderings for installing a new package not previously on the system (i.e. not an upgrade) and for removing one? From the above ordering I am able to guess how these orderings might look, but I'd like to get some educated opinion on this as well...
回答1:
Package order for installing a single package for the first time:
%pretrans
of new package%pre
of new package- package install
%post
of new package%posttrans
of new package
Package order for removing a single package:
%preun
of old package- removal of old package
%postun
of old package
回答2:
If you are installing two different packages at once (e.g. primary
, secondary
), where one depends on the other (secondary
requires primary
), the order is:
%pretrans
ofprimary
%pretrans
ofsecondary
%pre
ofprimary
- installation of
primary
%post
ofprimary
%pre
ofsecondary
- installation of
secondary
%post
ofsecondary
%posttrans
ofprimary
%posttrans
ofsecondary
When removing these packages at once, the order is:
%preun
ofsecondary
- removal of
secondary
%postun
ofsecondary
%preun
ofprimary
- removal of
primary
$postun
ofprimary
回答3:
Your educated guess is correct - only the steps that are relevant.
来源:https://stackoverflow.com/questions/22456217/rpm-scriptlet-ordering-for-install-remove-upgrade-using-yum