Wandering Thoughts archives


Another problem with building your own packages: dependency issues

I've written before about how I feel being forced to build software yourself is a waste, but this is not the only problem with the 'make our users build things themselves' approach to system packaging. Another one is interlocking dependencies, where OS packages depend on things that you (the end sysadmin) may want to replace with your own stuff.

Suppose that the base operating system supplies both a minimal mailer package and a 'smtp-notifier' package that sends mail when alert-worthy system level things happen, like faults being reported through the OS's fault management system. However you (the sysadmin) want to use an entirely different mailer, which is clearly not going to come from the OS's package set (the OS packaged only the minimal mailer it 'needs') and might even come from a completely different packaging system than the OS's one.

At a minimum there's a dependency issue here. A naively done smtp-notifier package will insist that you install the system's undesired mailer. Even a relatively sophisticated one is likely to insist that you install your choice of mailer using the OS's native packaging system so that it knows that smtp-notifier's dependency is satisfied. Of course life gets worse if you're not really supposed to install your things in the OS's directory hierarchies; how does smtp-notifier even find the right mailer binary to use? Normally it has every right to expect that said binary is living in the OS-owned area of the filesystem hierarchy.

All of this is solvable with effort, but it does require effort and it requires this sort of dependency interlock issue to be anticipated by the people who build OS packages and write the OS package manager. If they did not, you probably get to chose between smtp-notifier and your mailer.

Broadly speaking this sort of dependency issue can happen to anything that you can only really have one of on the system and that may be used by other OS packages (either directly by invoking its programs or indirectly by, eg, TCP services). Mailers are an obvious case because a lot of things want to send email (unless you deliberately make them less useful by breaking that).

PS: to be fair I'm not sure if this issue is really likely to come up for anything other than mailers, especially in OSes with minimal native package sets. They seem unlikely to have, eg, web-based management systems that require the OS-packaged webserver.

sysadmin/BuildingPackagesDependencyIssue written at 00:10:37; Add Comment

Page tools: See As Normal.
Login: Password:
Atom Syndication: Recent Pages, Recent Comments.

This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.