Catapult allows you to build a self-extracting installer from a set of RPMs. The installer is built by concatenating a self-extractor stub (the "sfx") with any binary RPMs (along with some extra metadata) which should be installed, producing a single binary which will install the RPMs on the system.
+-----------+-------+-------+-------+----+
| | | | |Meta|
| Installer | RPM 1 | RPM 2 | RPM 3 |data|
| | | | | |
+-----------+-------+-------+-------+----+
<------ Payload ------>
Catapult can be built in two varieties: firstly to build a relocatable installer, which will install a set of relocatable RPMs, prompting the user for the install prefix when first invoked. Alternatively it can build an system installer, which installs packages as normal on a Red Hat Linux (or other RPM-based) operating system. Catapult also supports optional packages; where the user is prompted for which packages they wish to install.
The RPM philosophy is that interactive configuration should not take place in %post or %pre scripts (i.e. during installation): Catapult allows you to specify a program to run after installation, which can perform any interactive configuration your product requries.
Download the source: catapult-1.0.1.tar.gz