The Achilles’ Heel of Darwin

Or, “Why I Was Up So Bloody Late Last Night.”

It’s true. I did a dumb thing. I used apt-get to install Apache 2.0, then tried to load up PHP5 compiled for Apache 2.0 using the recommended installers from PHP.net. I should have known that Apache was still at 1.3 (which I later discovered after the fact with httpd -v), that mixing and matching between the Debian-bound apt-get and the Darwin package manager was a bad idea. I spent hours scraping and reinstalling my system when dependencies failed for just about every command line app I use–including the app I live my life in–ssh.

This brings up a couple points. The first is that Darwin should have been called DINQU–Darwin Is Not Quite UNIX. Because it’s true. Maybe the Mach kernel is still there, but just about every other piece seems to have been heavily modded by the troops in Cupertino. So, the more you start doing things the UNIX way, and not the Apple way, the more you take your life in your hands.

The second point will probably shock you: I found something that Windows does better!
More shock: I’m not just talking about Darwin. I’m talking about better than UNIX. What could it be? Pray tell? The Uninstaller.

My system went insane due to failed dependencies–shared libraries that had been overwritten which I could not roll back to a previous state. While it is sometimes questionable how good a job they do, Windows installers (for the most part) do include an uninstall script that will roll back shared libraries (in this case DLLs) so that your system does not go insane. There are even deeper rollback features now in XP. No such luck in the UNIX world. Not even the RPM architecture does this right.

Apple has taken a huge step forward for UNIX-based systems. Indeed, they are at the very forefront of injecting UNIX systems into the mainstream (sorry, Gimp). So, naturally these issues of useability are falling firmly in their court. Fink and apt-get are sorely lacking here. Time for Apple to step up and address this sore point.

The day I see an OS X package installer for a complex UNIX app with shared libraries, and an Uninstaller right next to it–I will know that UNIX has indeed become safe for public consumption. Until then, I’ll just keep hacking around, knowing more than I should have to, relishing the power and sometimes regretting that I know enough to be dangerous at the command line–to myself!