Tuesday, September 2, 2008

ESP package manager

EPM (ESP package manager), is the second package manager, which I used. In my previous organization Synopsys, I used Synopsys Installer, which is an internal package management tool used only in Synopsys. But it is good to know EPM is a free package manager developed by Easy software products.

The design goal of EPM is to solve the problem of software distribution with Unix/Linux OS. The problem is every OS supports it's own packaging tools and each has unique requirements for the software development environment. EPM provides solution to this problem by providing it's own portable distribution format and also vendor specific formats like rpm, depot, dpkg, pkgadd, etc. This allows you to build software distribution files for any OS from the same sources.

You can download EPM from http://www.epmhome.org/ and the EPM book at http://www.epmhome.org/documentation.php teaches you how to use EPM.

EPM requires few pre-installed softwares. They are C compiler, make utility, Bourne (or Korn or bash) shell and gzip. The optional Graphical setup program requires a C++ compiler, FLTK library. End user systems require Bourne shell, df, tar & gzip utilities to install portable distributions.

Basically EPM reads one or more software list files that describe a single software package. These list files needs to be written in specific format, Chapter 3 of EPM book explains it in detail.

To build a software package, epm program is used. For example to build a portable software package for an application called foo, type the following command
epm foo
This expects a list file by name foo.list. If your list file is created with different name, then you can mention the list file name by command line argument as
epm foo base.list

You can install the portable packages by calling an installation script product.install where product is the name of the package.
cd os-release-arch
./product.install
After answering few yes/no questions, product will be installed.

To create vendor specific packages use -f option
epm -f rpm foo base.list

EPM also supports preinstall, postinstall, prepatch, postpatch, preremove & postremove scripts. These scripts are bourne shell scripts, needs to be called from list file
It also supports init scripts and also patch software distributions.

For detailed usage refer EPM book at http://www.epmhome.org/documentation.php

Enjoy building software packages with EPM ..... :)