The DUB package manager

Nick Sabalausky SeeWebsiteToContactMe at semitwist.com
Mon Feb 18 03:51:06 PST 2013


On Mon, 18 Feb 2013 06:59:39 +0000
Russel Winder <russel at winder.org.uk> wrote:

> On Sun, 2013-02-17 at 16:32 -0500, Nick Sabalausky wrote:
> […]
> > I'm not real big on the idea of OS package managers. Not when Unix
> > is in the picture anyway. I'm getting really fed up with software
> > that has a "download / install" webpage populated with totally
> > different instructions for an endless, yet always incomplete, list
> > of Linux variants. And *maybe* BSD. And then on top of that, the
> > poor *project* maintainers have to maintain all of that
> > distro-specific cruft. Unless they're lucky and the project is big
> > enough that the ditro maintainers are willing to waste *their* time
> > converting the package into something that only works on their own
> > distro.
> > 
> > I believe I can sum up my thoughts with: "Fuck that shit."
> 
> Generally I am of the opposite view, that using the distribution's
> package management is by far the best way (*). When a language decides
> it has to ignore platforms and provide it's own, I generally think
> "Another introverted, self obsessed language, ignoring platform's
> management structures."
> 
> Trying to cover every platform is though a real pain in the
> proverbials, I totally agree with that. But let's look at the need
> for coverage:
> 
> 	Windows, OS X, Debian (hence Ubuntu, Mint), Fedora (hence
> RHEL, CentOS)
> 
> after that the user base is currently so low that people probably
> expect to fend for themselves.  Windows and OS X require handling
> because of the very nature of the infrastructure. Debian and Fedora
> need a good relationship with a recognized packager to get stuff into
> the distributions and repackaged for each version. This also goes for
> MacPorts, and Brew (I am guessing Fink is dying?).
> 
> 
> (*) Debian has GCC and Python management taped nicely, multiple
> separate versions installable side-by-side and usable. On the other
> hand Debian totally sucks at handling anything related to Java
> because they insist on one and only one version of an artefact. It
> seems they believe the WORA fiction.
> 

I do like when I can just "apt-get install whatever" and be done.
(Assuming I happen to know the package name used, and they're not
always entirely intuitive). But then you always come across stuff that
isn't in the repos or, almost as bad, needs requires jerking around with
sources.list and then installing a key. May as well just download &
unzip a file and be done with it (if linux actually had real binary
compatibility).

But even that problem isn't because of anyone doing anything wrong, or
app/lib developers failing to "see the light" of OS package managers. 
It's because of all the roadblocks in the way of making "proper"
packages and getting them into the official repos. And keeping them
properly up-to-date. And *those* roadblocks *aren't* the fault of the
OS people or the OS package manager people. There isn't really anything
they *can* do about it - it's all natural consequences of the whole
OS-level package manager system. The fault lies with the model itself.

In other words, having OS package managers be the be-all-end-all of
package management is a wonderful idea in theory, but it's a
pie-in-the-sky dream. It's just not realisticlly feasable because the
model just doesn't work well enough at scale:

Getting stuff into the right package formats, knowing how to even do
that, getting it into the official repos, getting it *past* whatever
testing/staging repos there may be, and then actually *to* people, and
then getting updates promptly handled. And that's just public OSS
stuff, there's a whole different set of issues for anything
privately-distributed. It's all far too much to expect from the lib/app
devs who already have more than enough to do.

So they don't do it. Why deal with all that red tape when you can just
toss up a zip, while also giving your users the benefit of not having
to wait for all those middlemen, or deal with a totally different set of
install instructions for each system, or creating extra hurtles for
less-major OSes, etc. It's a win-win devs and their users. So
ultimately, OS-level package managers *encourage* developers not to use
them. So yea, I like "apt-get install foobar" when it works, but it
*can't* always work.

The whole thing is just a big broken dynamic that only works well for
the big-name packages.



More information about the Digitalmars-d mailing list