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:
~# ls /usr/bin/gcc
ls: /usr/bin/gcc: No such file or directory
~# sps with gcc -- ls /usr/bin/gcc
/usr/bin/gcc
~# echo gcc >> .sps/pkgs
~# ls /usr/bin/gcc
/usr/bin/gcc


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


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