Archive for November, 2007

Packaging Software

Tuesday, November 6th, 2007

Ian Murdock, the founder of Debian, has written about how package management changed everything in the software world:

http://ianmurdock.com/2007/07/21/how-package-management-changed-everything/

I’m certainly a big fan of Debian and apt-get, it makes life much easier when I’ve got my sysadmin’s hat on. Having to hunt for individual packages using Google would take much longer. Compare installing Apache, MySQL and PHP on windows (an EXE, an MSI and a ZIP) to installing the same on Debian. With Debian, I have some assurance that all my packages will work together as I know that each package in the Debian repositories has been extensively battle tested before it reaches the stable section.

This centralised system is also a weakness. I’ve written before about the need for systems to be distributed here. One of the fun things about running an XP desktop is that there are hundreds of thousands of applications for it, just waiting to be downloaded and installed installed. Of course, something similar is possible with Debian or Ubuntu and .DEB on web sites. In order to use a package on Debian or Ubuntu, it doesn’t have to be blessed by the powers that be first, which would defeat the whole point of the open source community. Attempts are underway with AutoPacakage and Luau to make the system more decentralised.

A system wide framework like apt is only useful to a point. Many applications share libraries so updating one package to meet the dependency requirements of a new application might clobber another application that uses the library in the package. Web apps that use plug-ins tend to get around this problem by making each instance of the program have its own copies of the plug-in libraries and code. The space inefficiency is a price worth paying in return for not having to test a site that is working and has been signed off after you install a new library for a different client.

A really small packaging system for web apps that allowed rapid application development and deployment would continue the revolution (evolution?) that Ian Murdock spoke about. It would need to have lots of useful plug-ins, of course. And it should be possible to have lots of copies of the same plug-in installed on the same server without one interfering in anyway with a different version of the same plug-in used by a different site. Ideally, these plug-ins could come from anywhere and rival teams would be competing to write the best plug-in for a purpose. But most important of all, the framework shouldn’t try to do anything other than manage plug-ins. This seems to be lacking (or not lacking enough) from Word Press, Drupal, Joomla et al.