Upgrading software components has become an ubiquitous need: if Mac OS X and Windows users have seen nice, flashy popups proposing "software updates" for years, iPhone users upgrade their full OS every few months and get proposed updates from the AppStore daily.

In the Free Software world, we have been living with sophisticated tools to manage installation, removal and upgrade of software components for more than ten years, and we are used to be more picky and sophisticated in our desiderata than the average user on a proprietary platform: we do no just casually click on the 'OK' button in a popup, even if this kind of GUI gadgets is making its way into GNU/Linux distributions that are more end-user oriented.

According to our goals, we might have in mind precise upgrade policies, like "only get updates of system packages from the stable release finalised last year", or "install this new package, but please, please try not to touch anything else on my machine".

This is why we ended up with a whole wealth of different package managers, that try to offer appealing features for a user base that might range from the casual computer user for the advanced system administrator.

In recent years the growth of the available package base has been so impressive (in the picture above, you can see the evolution of the number of packages in the different Debian releases), that traditional package managers have started to show some serious limitations: algorithms and methodologies that were reasonable for small-scale collections of packages are hitting severe limitations now that the number of available components in a GNU/Linux distribution has passed the 25.000 unit mark.

The Mancoosi project, that I am happy to lead, started in 2008 to address some of these limitations, and the preliminary results coming out after less than two years of work show enough promise to justify a series of posts on the difficulties that we are all facing when managing our GNU/Linux distributions with traditional tools, and on the solutions that Mancoosi may have in store for us.

We start here with some concrete examples of issues faced when trying to install or upgrade a software component on a recent Debian distribution.

Lire la suite