Linux package management stinks
November 14, 2007
I’ve been meaning to write this for awhile, and saw a post (and the post it was in reply to) which made me put pen to paper, so to speak. Writing about synaptic on ubuntu knowing the related packages to install for mysql, Mark Pilgrim wrote “It’s called dependency management, and it’s built into all modern Linux distributions.”. His post was in reply to a step by step build and install procedure for MySQL on OSX, which apparently still requires a lot of steps. Well, building always does. Not sure why the author was advocating building on OSX specifically, though there are some, but relatively few, reasons for building from scratch applicable to the average joe.
In any event, what’s bugged me for some time is something my brother has been able to put in to words better than I can. Linux distro package management sucks. The current implementations on just about every distro I’ve seen are flawed when compared to MS and OSX. “What’s flawed?” you ask. The combining of userland applications and core system-level packages in to the same repositories. Actually no, what I’m meaning is that the mechanism for installing, say, “frozenbubble” is the exact same mechanism used to install “glibc”. The same level of rollback functionality, dependancy resolution, etc., exists for both, but they are vastly different in terms of system functionality, impact, benefit, etc.
From what I’ve seen OSX and MS have differing mechanisms for providing system-level updates than they do for providing userland applications. I’ve found it relatively easy to get myself in to untenable system situations which required nothing short of a disk wipe with modern linux distros (mandriva and ubuntu versions in the last 2 years) but I’ve not been able to do that with WinXP or OSX. Granted, I ended up normally using ‘experimental’ repositories to get access to current/updated applications that I wanted (and didn’t want to have to compile by hand), but the fact that I could still do it just with the standard distro package management tools should be a red flag.
I’m not in a position to write much more about this, but I may come back to it at some point, or perhaps someone out there (you?) will flame back telling me how ridiculous I am and that I don’t understand “the linux way” and all that jazz. Go on… I dare you. ![]()
Posted in




November 15th, 2007 at 9:52 am
Based on my brief but painful experience trying to get an Ubuntu desktop box into a productive state, I wholeheartedly agree with you.
I did check out that Mark Pilgrim post and a few others on his site. My goodness - apparently Google doesn’t mind hiring engineers who swear a lot. (?)
IMHO, Linux is experiencing a painful transition from a server-only OS to a desktop OS. The latter is a whole different animal, and good user application-level package management is key to making it work. Actually, this is one thing Microsoft does better than Apple. OS X has no standard repository (akin to the Windows Registry) when it comes to installing apps, so when you install apps that are not totally self-contained you never know what you might be doing to your system, and un-installing is totally non-standardized.
November 15th, 2007 at 9:58 am
What apps aren’t totally self-contained? Are you talking about things like mysql? Most apple apps I’ve installed have been the self-contained type.
November 15th, 2007 at 11:06 am
A good example is http://scplugin.tigris.org/ - an SVN “shell extension” client for the mac. From the installation instructions:
If you want to remove the product, you need to Remove these:
/Library/Contextual Menu Items/SCFinderPlugin.plugin
/Library/Receipts/SCPlugin.pkg
November 17th, 2007 at 2:45 am
I told you to never stop using Slackware