2006-10-24

Robust Packaging System

Far too long since I last posted. Ah well.

One thing that's bothered me for a long time is how fragile Debian's package architecture is. Currently over 15000 packages, most with dozens of versions over the years, if not hundreds or even thousands. To install a package you must first download an archive, then extract all of the files as if you had compiled and installed it locally without a package system, and then run various scripts which may do even more. A myriad of things can (and do) go wrong.

The name "Debian unstable" refers not to the software, but to the packages themselves. It takes an immense amount of effort to get things right, and although the debian community should certainly be lauded for providing that effort, mistakes still slip through. Even after all that, it's a very slow process.

It shouldn't be this way.

We need a packaging system that's inherently robust. Minimal moving parts to wear out, less interaction between packages. I believe this means that the concept of extracting from an archive needs to be scrapped, replaced with a kernel module that makes the contents directly accessible. Then we need to eliminate the global namespace that is /usr/bin, giving each installed program its own namespace with only relevant packages (and of the right version!) exposed. Finally, most installation scripts should be replaced with a description file (probably XML based, for extensibility).

Although implementing this would require a large amount of up front work, the long run payoff would be enormous. How could you not want to do this or something similar to it?