Hey everyone, isn't Mac OS X great? The only problem is that a lot of open-source software is only for Linux. Well, there will never be an end-all solution, but there's many ways of making it better.
Here are the solutions I recommend:
- Dual-booting Mac OS X and Linux (or triple-boot, in the case of Windows)
- Using Fink or Darwin Ports to provide an application-compatibility layer to Mac OS X
Dual-booting Mac OS X and Linux is, admitedly, not the easiest thing to do. Partitioning is relatively easy, with the help of the command-line diskutil to dynamically resize the HFS+ partition, and make a ext partition. However, drivers are difficult, and an attempt to install Ubuntu on my Macbook just didn't work. I ended up using Gentoo Minimal disk, which worked quite nice, except that I somehow couldn't get X to use my native resolution (1280x800), even with the help of 915resolution.
The second option is much easier. Fink and Darwin Ports (fink.sourceforge.net, and www.darwinports.com, respectively) have special patches and tools to get standard Linux packages to compile on Mac OS X. Fink typically creates a whole Debian subsystem in the /sw directory, and Darwin Ports installs its files in /opt. Fink is larger than Darwin Ports, but using them together allows more compatiblity with other apps.
Several things to note, though:
The best way to use Fink and Darwin ports is to use Apple's X11. This can optionally be installed when you're installing Mac OS X. NOTE: If you install XFree86 with Fink or Darwin ports, you will mess up your existing X11 setup. The only way to restore it, is to wipe the drive, and reinstall OS X.
Using Fink to install KDE on Intel Macs requires a little hack. KDE source for Intel Macs is listed under the Fink package database as unstable. By default, Fink only searches source listed under stable. The Fink FAQ provides a nice workaround.
You can install KDE or Gnome, and run it at the same time as Mac OS X. With Apple's X11, you can choose rootless or fullscreen mode, to get the best of both worlds. See screenshot below.