Build environment isolation and file system diffing

I would definitely consider something along the lines of:

A)

  • yum list (select your packages/dependencies whatever)
  • use yumdownloader on the previous list (or use th pkgs you have already downloaded)
  • createrepo
  • ship on media with install script that adds the cd repo to repolist, etc.

or B)

first two steps as above, then pack the rpms into an archive build a package that contains all of the above and kicks off the actual install of the rpms (along the lines of rpm -Uvh /tmp/repo/*) as a late script (in the cleanup phase, maybe). Dunno if this can be done avoiding locks on the rpm database.


I think you reached the point of complexity - indeed a frankenstein monster - where you should stop fearing of making proper packages with dependencies. We did this in my previous work - we had a set of fabricated rpm packages - and it was very easy and straightforward, including:

We never had to do anything you just described. And for the customer, installing even a set of packages was very easy!

You can follow a reference manual of how to build RPM package for more info.

EDIT: If you need a single installation package, then create this master packge, that would contain all the other packages (with dependencies set properly) and installed them in the post-install script (and uninstalled them in the uninstall script).