The Unified Package Meta-Manager

In the previous article in this series, we discussed how it might be possible to produce a unified package management system. Probably, though, I've personally had more trouble from package meta-managers (such as yum, apt, and up2date).

They have lots of features, but not always the ones I want. The answer is increased modularity, configurability, and standardisation.

Increased modularity

Package meta-managers typically perform the following four functions:

  • Perform actions on packages (much as dpkg and rpm do, and sometimes using these tools directly)
  • Interact with repositories
  • Resolve dependencies
  • Select versions to install

It would be great if these were all separate modules that could easily be replaced. For example, I worked at a company that didn't want to upgrade any software until it had been tested in their test environment. While we got it to happen eventually, if we'd been able to get control of the "Select versions to install" module and replace it with one of our own (which might even have called upon the original at some points), it would've made things a lot easier.

Increased configurability

If, in addition to modularising as suggested above, it were possible to specify in a configuration file which version selector was to be used (as opposed to, for example, having to modify some code somewhere), that would make the whole process much easier.

Increased standardisation

Additionally, if yum and apt (and hopefully up2date) were to agree on the interface of these modules, then it would be possible, for example, to use the yum resolver with the apt repository management stuff. Of course, this level of standardisation would be much more useful after the unification of the package formats (see previous post).