SPS - The Selective Packaging System

SPS is a system that allows users to be extremely selective about what packages are present in their environment. /usr is traditionally a simple filesystem with packages and their versions managed by root and root alone. With SPS, each user is able to select what packages (and versions) are in their environment. /usr is mounted as a FUSE filesystem which intelligently unions all of the packages the user has requested. There is a global package list in /sps/pkgs.conf, and each user can customize their own packages in ~/.sps/pkgs or the environment variable $SPS_PKGS. An example of how SPS works:
~# gcc --version
-su: gcc: command not found
~# sps with gcc -- gcc --version
gcc (Debian 4.3.1-2) 4.3.1

~# sps with 'gcc < 4:4.3' -- gcc --version
gcc (GCC) 4.1.3 20080623 (prerelease) (Debian 4.1.2-23)

~# sps with 'gcc < 4:4.1' -- gcc --version
gcc (GCC) 3.3.6 (Debian 1:3.3.6-15)


SPS uses the Debian packaging system, and fetches packages with apt-get, so installing packages is as easy as sps install <package>.

SPS is currently extremely alpha. The source (including a binary for x86 GNU/Linux) can be downloaded here, and the newest version is always available via CVS:
cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/sps co sps


Older versions:
2008-01-29

SPS is licensed under the GNU General Public License v3, and written in the D programming language with the Tango core library.