Different visions of what packaging systems are for

January 16, 2010

I think I should write down one of my background views on what packaging systems are for, and what jobs they do, because there are competing (or somewhat clashing) visions about what is within their scope.

One view is that the job of a packaging system is more or less confined to properly installing, removing, and upgrading packages. This need not exclude things like apt-get; if you take a broad view of 'installing packages', this can easily include fetching packages and dependencies over the Internet. Additional features (such as asking the packaging system about file state) can be supported if they don't require any deep changes in the system.

(A packaging system that supports removing files needs to keep track of what files belong to what packages, and at that point it might as well let you look at that data.)

Another view is that packaging systems have at least two jobs; they should both deal with packages and also keep track of the system state. Features such as querying about file state are not 'if you can support it' things, they are a fundamental mission; they need to be supported even if they require deep changes to the system.

As you can tell from the previous entries, I am fairly strongly of the latter view. To put it one way, I think that something should be in charge of keeping track of the system state, and the packaging system is already doing this work for most of the files on the system. Doing it in anything other than the packaging system means redoing a lot of that work (especially in packaging systems that do not expose APIs for this).

To stereotype it, the first view is the developer view and the second is the sysadmin view. Developers mostly care about packaging things and installing them (and somewhat about clean removals); sysadmins spend relatively little time actually installing and removing packages but quite a lot of time trying to manage and sort out systems, so they care more about querying and fixing things that have gone wrong in existing package installations.

Written on 16 January 2010.
« Packaging systems should support overlays
I do not like Unix's fossilization »

Page tools: View Source, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Sat Jan 16 03:35:14 2010
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.