I just played around with Fink and it was not as scary as it sounds. As an experienced Linux user switched into a Mac user, I used Terminal from time to time to bypass the limitation of Mac’s GUI. Some tasks are easier to be done with CLI especially if you were used to use CLI for quite some times.

Mac OS X, Darwin and UNIX

One nice thing about using Mac OS X is the fact that it used Darwin as its core engine, which is also an UNIX-based system, so practically I could do any UNIX-related commands and operations. This include the ability to set up a “stage web server” as my development server before I could launched any of my web-related jobs in the published server. Of course I could also do that using Windows-based PC easily by using XAMPP but let’s not change the subject now ;).

But being some kind of a fork#[1] from UNIX, Darwin has limited UNIX-based tools and commands. Some of crucial UNIX applications are not installed by default or aren’t even exists in the binary format#[3] for Darwin. Of course because of its UNIX nature I could easily porting#[2] those applications myself by recompiling the source code but I rather have installed the binary. Call me lazy ;).

Fink to the rescue!

Then I read about Fink.

Fink is a project that wants to bring the full world of Unix Open Source software to Darwin and Mac OS X. As a result, we have two main goals. First, to modify existing Open Source software so that it will compile and run on Mac OS X. (This process is called porting.) Second, to make the results available to casual users as a coherent, comfortable distribution that matches what Linux users are used to. (This process is called packaging.) The project offers precompiled binary packages as well as a fully automated build-from-source system.

To achieve these goals, Fink relies on the excellent package management tools produced by the Debian project – dpkg, dselect and apt-get. On top of that, Fink adds its own package manager, named (surprise!) fink. You can view fink as a build engine – it takes package descriptions and produces binary .deb packages from that. In the process, it downloads the original source code from the Internet, patches it as necessary, then goes through the whole process of configuring and building the package. Finally, it wraps the results up in a package archive that is ready to be installed by dpkg.

Since Fink sits on top of Mac OS X, it has a strict policy to avoid interference with the base system. As a result, Fink manages a separate directory tree and provides the infrastructure to make it easy to use.

Taken from About page at Fink’s website

Hmm. Sounds promising, isn’t it? And guess what, Fink is great! If Perl users have CPAN then Mac OS X users, who want to play around with UNIX, have Fink. GUI is of course available, it’s Mac OS X anyway, it is called FinkCommander.

Anyway, I am having fun playing around with Fink nowadays. Fun? Yeah, I am so easily amused nowadays. Sue me.

[1]: In software, a project fork or branch happens when a developer (or a group of them) takes code from a project and starts to develop independently of the rest. The term is also used more loosely to represent a similar branching of any work (for example, there are several forks of the English language Wikipedia). (source)

[2]: In computer science, porting is the adaptation of a piece of software so that it will function in a different computing environment to that for which it was originally written. (source)

[3]: Also known as “executable” or “executable file”. Also know as “.exe” files in Windows. It is a file whose contents are meant to be interpreted as a program by a computer. (source)