Package Managers Hurt Open Source

June 21, 2010

In the good old days, before fancy modern package managers like apt-get and yum, if you wanted an open-source program you had to download the source tarball, compile it, and install it. I kept the source around under my download directory. Several times I had an itch, and it was easy to go into the source, tweak something, and install it again. A few times I submitted the changes back to the maintainer of the program. (Vim’s incsearch option was one of these.)

With package managers life is vastly better. I was recently reminded of this when I tried to install the code-review tool Review Board, which was too young to be in any package and depended on cutting-edge version of other libraries, also not in any package. I spent two full days failing to get all the related software installed properly.

And yet by removing the initial hurdle to installing a program, packages create a large hurdle to scratching an itch. Today if I want to add a flag to netcat (which I did years ago to add a delay), it would be enough work that I wouldn’t bother. Before package managers we were forced to do the work, which then made it easy to tweak the code. It also made it easy to examine core dumps when programs crashed.

I was excited to try the Linux distribution Gentoo years ago because everything is compiled from scratch, but I found that they weren’t keeping the source around in a way that you could easily go in and mess with. Perhaps I missed a configuration setting somewhere.

I suspect that package managers have substantially hurt the open source movement. They’ve raised the bar of the commitment needed to contribute. As Wikipedia has shown, it’s critical to have a large number of people who just want to fix small things here and there. I wish Ubuntu had a flag to apt-get install that would install from source Gentoo-style and keep the whole thing in your home directory where you could muck with it.