Subject: Merging pkg_* and epkg/encap
To: None <>
From: Jonathan Perkin <>
List: tech-pkg
Date: 10/16/2002 12:34:21
I've been pondering this a while, and unsure if anyone else has or
whether someone has been working on it at all..

The encap package manager[1] is based around installing all software
packages under their own directory in a specific hierarchy.  It's
something I use a great deal for locally-installed software as it keeps
everything neat and tidy, and makes it trivial to keep multiple versions
of software around and able to switch between them.  An installed
package is symlinked back into the main hierarchy and available for use.

For instance, my packages live in /cache/local/encap (e.g. epkg-2.2.6)
and are symlinked back into the /cache/local hierarchy so that:

lrwxrwxrwx   1 jonp     inet           28 Oct  3 13:54 /cache/local/bin/epkg -> ../encap/epkg-2.2.6/bin/epkg*


After the standard "./configure --prefix=/cache/local/encap/<package>-<rev>
make && make install" dance, software is installed to the /cache/local
hierarchy with a userland epkg(1) utility which creates the symlinks,
checks for clashes and creates a log.  Deleting the software is simply a
matter of removing the symlinks (which epkg(1) handles automatically).

I can see great benefits in merging this system into pkg_*, as it will
greatly help having multiple versions of binaries/libraries installed,
and also help the "make update" problem of re-installing everything if
one single package lower down the dependancy graph changes.

There are issues, especially having everything symbolically linked
(having to traverse those symlinks to get to real file for stat(2)
information etc, and speed issues), but hopefully with the recent
ld.so_elf updates the second shouldn't be that bad.

I'm willing to work on this, but need feedback as to whether it's worth
starting, or whether anyone has already done some work in this area, or
even if the pkg_* meisters have something cleverer up their sleeves for
future development.


Jonathan Perkin - Internet Operations Engineer - BBC Internet Services