rpm scriptlet ordering for install/remove/upgrade using yum

fgysin picture fgysin · Mar 17, 2014 · Viewed 7.3k times · Source

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 package prein
  • package install
  • %post of new package postin
  • %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...

Answer

donmarjanus picture donmarjanus · May 29, 2015

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 of primary
  • %pretrans of secondary
  • %pre of primary
  • installation of primary
  • %post of primary
  • %pre of secondary
  • installation of secondary
  • %post of secondary
  • %posttrans of primary
  • %posttrans of secondary

When removing these packages at once, the order is:

  • %preun of secondary
  • removal of secondary
  • %postun of secondary
  • %preun of primary
  • removal of primary
  • $postun of primary