Installing Fink on Mac OS X

At its heart, Mac OS X is a Unix operating system. This means that plenty of Unix open source software compiles and runs on it. However, compiling software can be tedious, especially if it has many dependencies, or if it hasn't been tested on Mac OS X. You have to perform the usual configure/make/make install process and hope it all works fine. Maybe you have to tamper with the makefile or even the source code. Moreover, you'll need to make sure all libraries used by the software are installed.

The Fink project, which began in December 2000, has two goals. It aims to port all this software to Mac OS X ("porting") and makes it available for install ("packaging"). As a full package management system, based on Debian's apt system, it installs and uninstalls packages, tracks dependencies, installs the packages that are needed, updates the packages, etc. Bottom line: installing Unix software on Mac OS X with Fink is a piece of cake (most of the time). There can be challenges, however, and I'll cover those in a minute.

Fink isn't the only package management system available for Mac OS X. The DarwinPorts project, started in 2002, has similar goals. While DarwinPorts has fewer packages available than Fink, the available ones tend to get updated more frequently. The two package management systems can even coexist on the same system. So it's perfectly possible to use Fink for the packages it contains, while using DarwinPorts for the packages missing in Fink, but listed in DarwinPorts.

In June 2003, Fink, Gentoo Linux, and DarwinPorts announced the formation of a cooperative development alliance, the MetaPkg initiative. Their projects would share information to avoid duplication of effort and facilitate the development of the different projects. However, since the announcement, no substantial information seems to have been added to the website. This doesn't mean Metapkg is dead. Developers of Gentoo, Fink, and DarwinPorts frequent each other's chat rooms and are working together daily. The power of Metapkg really lies in the charter the different partners signed.

In July 2004, the Gentoo GNU/Linux project released their Portage package manager for Mac OS X. Gentoo for Mac OS X, as the project is called, hasn't been able to get a big fanbase, partly because many of the packages aren't tested. This could change in the future, but for now it seems Gentoo for Mac OS X can't beat the two other package managers.

Reasons to Use Fink

Fink has some attractive features. First of all, installing software with Fink is plain easy. If you want to install a package, Fink searches which other packages have to be installed to let the package work, downloads all packages, and installs them. Uninstalling or updating a package is as easy.

Maybe you're worried that Fink tinkers with Mac OS X. Keep in mind that you can use Fink safely because it doesn't alter anything in the operating system. All packages and Fink-related files get into their own directory: /sw. For example, executables go into /sw/bin and configuration files in /sw/etc. The whole Fink distribution with all packages can be uninstalled by deleting this directory. After that, Mac OS will still function properly. (Of course, if you used Fink-installed programs in scripts, these won't work anymore.)

Fink has a coherent collection of packages. Installed files all come in a standard place on your hard disk. Binaries, man pages, documentation, configuration files--all go in an easy to find place. If you update a package, its documentation and man pages get updated too. There's no need to download the documentation separately, with the chance of getting documentation for a different version of the software.

Reasons Not to Use Fink

For all of its great features, Fink isn't always the perfect solution to install Unix software on your Mac. First of all, it has the tendency to install its own versions of libraries, headers, and programs that are already on a standard Mac OS X installation. So if you have installed a lot of programs with Fink, you end up with a considerable amount of duplicate system software, with minor version differences. This could get you into trouble if you inadvertently use the wrong version.

Most of the time, package installation with Fink is simple. But things can go wrong. I have been a Fink user for many years now, and I've occasionally encountered problems. Sometimes packages didn't compile, other times the download servers were down, or the versions of the software I wanted to install were too old. But keep in mind, if all else fails, you can compile the software yourself.

I mentioned earlier that Fink and DarwinPorts can coexist peacefully. Most of the time, this is true. But I've run across some rough ground here too. For example, if you install Fink first, and then DarwinPorts, the last one will most likely choose to use the Fink version of some required libraries instead of the Mac OS X bundled version. If you remove Fink afterwards, your DarwinPorts installation will stop working.

Binary and Source Packages

You can install a package in two forms: source or binary. A binary package contains precompiled programs, ready to run. Installing a binary package with Fink simply means downloading and extracting the program. You can use it immediately.

Alternatively, a source package contains the source code of the program and Fink-specific patches and build instructions. Installing a source package means compiling the source code and creating the executable. Of course this requires more time than installing a binary package.