"We're involved in a sport here. We can't start asking each other what we "need" because we don't need any of this. We want it because it defines us to ourselves. If your self reference doesn't include fancy boots, so be it. Mine doesn't include a 'stitch. Others include one or the other or both and that's right for them because we are all an experiment of one being run one time for as long as we can before we die. That's what life is and we're all mucking through it as we see fit."
Back at the beginning of the year I switched from Quicken to GNUCash for managing my finances. So far things have worked out pretty well. The only real down side is that GNUCash needs a little compiling to make it work.
I recently took the plunge and bought my first new Mac in quite some time. A nice, shiny new iMac. Yeah, not quite the desktop Mac I wanted, but what I want and what I can afford are often quite different.
I needed to run through the compiling process one more time to get GNUCash running on the new iMac. Unfortunately the web page at captnswing.net I had previously used as a build guide the first time has gone off the air. So here’s a run down of what I did to make it work. I can’t take credit for coming up with this, I just pulled it from the Google cache of the previous site I used.
A note to the wise. This process requires that you have some aptitude for tinkering. You need to know what a terminal is and how to use it. If you don’t, figure it out first before moving on. Also, there are several step here and a number of things could go wrong. You need an aptitude for problem solving. The steps I post may not work for everyone, and I’m not good enough to support the world installing GNUCash on their Macs.
First you will need to install X11 and Xcode. Both of these ship with every Mac out there, but they aren’t installed by default. Once you’ve got them installed you should also run software update to make sure both packages are at the latest release.
You need X11 because GNUCash needs it to display a window. It’s not a native Mac app. You need Xcode because it’s the compiler and we’re going to be building a bunch of things.
Next, go download fink and install it. Fink is a project which helps bring open source software to OS X. It takes some of the compiling guesswork out of the equation.
The version of GNUCash I installed (2.2.1 as of this writing) isn’t in the stable fink tree so we need to make some modifications.
Once you’ve installed fink, the following lines will update it appropriately.
fink -y selfupdate; fink -y update-all; sudo apt-get update
Now we need to tell fink to go ahead and use the unstable tree. This is necessary as GNUCash uses some files that haven’t been proven stable on the Mac yet. Does this mean it won’t work? No. It means there aren’t enough people trying things out to prove they do work.
sed -e '/^Trees/s/$/ unstable\/main unstable\/crypto/' /sw/etc/fink.conf >/tmp/t sudo mv /tmp/t /sw/etc/fink.conf fink -y selfupdate; fink -y update-all; sudo apt-get update
Next we need to install some bits for Perl.
fink install expat expat-shlibs perl -MCPAN -e shell
CPAN may need an update, you can follow the commands given at the prompt to do so. Once it’s update we can continue to install the bits we want.
on the CPAN prompt, type
cpan> look XML::Parser perl Makefile.PL EXPATLIBPATH=/sw/lib EXPATINCPATH=/sw/include make make test sudo make install exit exit
I also install the Finance::Quote module for Perl. Get the CPAN prompt back if you’ve already exited and type:
install Finance::Quote
Let it run through and install any additional bits it wants and exit cpan when done.
Now install all the bits that GNUCash depends on:
fink -y -b install freetype219 freetype219-shlibs g-wrap \ g-wrap-dev gconf2 gconf2-dev gconf2-shlibs gtkhtml3 \ gtkhtml3-dev gtkhtml3-shlibs glib2 glib2-dev \ glib2-shlibs gtk+2 gtk+2-dev gtk+2-shlibs libart2 \ libart2-shlibs libglade2 libglade2-shlibs \ libgnomeprint2.2 libgnomeprint2.2-dev \ libgnomeprint2.2-shlibs libgnomeprintui2.2 \ libgnomeprintui2.2-dev libgnomeui2 libgnomeui2-dev \ libgnomeui2-shlibs libgsf libgsf-dev libxml libxml2 \ libxml2-bin libxml2-shlibs pango1-dev pango1-xft2 \ pango1-xft2 pango1-xft2-ft219 pango1-xft2-ft219-dev \ pango1-xft2-ft219-shlibs pango1-xft2-shlibs pkgconfig \ slib slib-gu16
Note, this can take a long time to do. You also will need to make sure that everything gets installed. If you didn’t update fink properly this bit can fail. If it does fail you will need to work out what happened and how to fix it.
Now we finally get to the part you’ve all been waiting for; installing GNUCash. Believe it or not all of the above work goes to support this. You will need to download the source code and pay attention to what you are getting. They sometimes post beta code there. While beta’s can be fun, they are beta for a reason; they’re generally not stable. I don’t know about you, but when it comes to my finances I want to know the software is going to work.
Unpack the source code. How you unpack it depends on which format you downloaded. I picked up a file with the extension .tar.gz and unpacked it as follows:
tar -zxf *.tar.gz
This creates a directory with the source code in it. Change to that directory and then we need to set some environment variables:
export CFLAGS="-L/sw/lib -I/sw/include" export CPPFLAGS="-L/sw/lib -I/sw/include" export LDFLAGS="-L/sw/lib" export PATH=$PATH:/sw/share/guile/1.6/scripts/binoverride/
Now we’re ready to configure the software so that we can compile it:
./configure --with-g-wrap-prefix=/sw --enable-compile-warnings
This step must pass. If it fails for any reason you need to figure out why it failed and how to fix it.
Once that’s completed, you can finally build and install it:
make sudo make install
To run it simply type:
open-x11 /usr/local/bin/gnucash
It’s not the Mac interface most people know but it does work and more importantly for me, it doesn’t hold my data hostage. Free yourself from Quicken.