About EPM

EPM is an open source UNIX software and file packaging program that generates distribution archives from a list of files. EPM provides a complete, cross-platform software distribution solution for your applications.

EPM generates both native and "portable" script-based distribution packages complete with installation and removal scripts and standard install/uninstall GUIs. The installers can be customized with product logos, "readme" files, and click-wrap licenses as desired.

  • Creates software packages that can be distributed on disc or over the Internet!
  • Supports AIX, Debian GNU/Linux, FreeBSD, HP-UX, IRIX, OS X, NetBSD, OpenBSD, Red Hat Linux, Slackware Linux, Solaris, and Tru64 UNIX.
  • Provided as free software under the GNU General Public license.

The EPM book teaches you how to create your own software packages that can be distributed over the Internet and on disc.


EPM 4.2 Jan 1, 2011

EPM 4.2 is now available for download from:


The new release fixes several AIX, BSD, HP-UX, Linux, and Solaris packaging issues and adds support for LSB and signed RPM package generation. Changes include:

  • EPM now supports a %arch conditional directive (Bug #289)
  • EPM now uses hard links whenever possible instead of copying files for distribution (Bug #283)
  • EPM no longer puts files in /export in the root file set for AIX packages (Bug #277)
  • EPM did not work with newer versions of RPM (Bug #285, Bug #287)
  • EPM did not clean up temporary files from Solaris packages (Bug #282)
  • Building Solaris gzip'd packages failed if the pkg.gz file already existed (Bug #278)
  • Fixed handling of %preremove and %postremove for AIX packages (Bug #284)
  • Fixed directory permissions in HP-UX packages (Bug #286)
  • Removed unnecessary quoting of "!" in filenames (Bug #288)
  • Added support for signed RPM packages (Bug #281)
  • Added support for inclusion of format-specific packaging files and directives via a %literal directive (Bug #267)
  • *BSD init scripts were not installed properly.
  • EPM now displays a warning message when a variable is undefined (Bug #272)
  • *BSD dependencies on versioned packages are now specified correctly (Bug #266)
  • EPM now uses /usr/sbin/pkg_create on FreeBSD (Bug #264)
  • FreeBSD packages are now created with a .tbz extension (Bug #263)
  • FreeBSD packages incorrectly assumed that chown was installed in /bin (Bug #265)
  • Added support for an "lsb" package format which uses RPM with the LSB dependencies (Bug #269)
  • The configure script now supports a --with-archflags and no longer automatically builds universal binaries on Mac OS X.
  • The epm program now automatically detects when the setup GUI is not available, displays a warning message, and then creates a non-GUI package.
  • RPM packages did not map %replaces to Obsoletes:



View All Articles