So, today I set about installing gearmand on my laptop, to test out some massively distributed computing ideas I’m working on. Turns out, it’s not just a matter of downloading the .dmg file and hitting ‘RUN’. Nope.. you better have 1/2 a pot of coffee and your copy of XCode installed on the machine or you are dead in the water.
Actually, you’re going to need more than that, if you are working with a vanilla Snow Leopard install.
Step 1 – install XCode:
But first things first. You can download XCode from the Apple website, or you can install it from your ‘Extras’ folder on the OS disk. I did the later, since the distro is pretty big, something like 600MB. Get that done first.
Step 2 – install MacPorts:
Now this is where the fun begins. Now, if you followed my other blog page on installing MacPorts, you can move onto Step 3. If you have not, then, proceed at hast to installing it (follow this link too).
Step 3 – install libevent
If you enjoyed installing MacPorts, you are going to LOVE this! 🙂 Now, the step of building libevent from source, probably not *required* but, after three installs that were not picked up by the gearmand, I though I’d just, do this the old fashioned way too. I have a writeup for installing libevent here (link to my page).
Step 3 – install wget
wget. How I love you, let me count the ways… MANY. wget is great. It’s a non-interactive text web client. Some of the cool things that wget can do, is recursively traverse a page, grabbing all the content, images, links pages (and their images, objects etc.). It’s also almost impossible to compromise with conventional XSS or other tricky DOM / JavaScript methods. No drive-by downloads here folks!
So, go ahead and get wget installed, because it’s going to be used to reach the final objective, retrieving gearman.
#root: port install wget
For me, on my lousy ComCrap connection, it took me a fairly long time. I think it’s safe to say, run the install command, and walk away. Check back in 10-15 minutes, see if it’s done. How will you konw if it worked? Simple, if you download the file in Step 5, it worked.
Step 5 – Finally, download and extract the Gearman bundle
This is where wget comes into play. Make sure you are in the directly you want. I suggest /opt. And execute the wget command to grab the distro. NOTE: The current distribution might be later than this (higher number). A check of the Gearman main site will probably give you the number you need, if this is not the latest and greatest:
#root: wget http://launchpad.net/gearmand/trunk/0.12/+download/gearmand-0.12.tar.gz
#root: gunzip gearmand-0.12.tar.gz,
#root: tar xvf gearmand-0.12.tar
Step 6 – BUILD!
Build the package. This part is the simplest of all the steps.
#root: ./configure
#root: make
#root: make install
YOU ARE DONE (installing that is)
Next article, will be a writeup on how to use Gearman, some time in the next week.
NOTE: This is part of a series of posts, centered around installation and evaluation of Gearman as a distributed scheduling product. Here are the other articles in this group:
Installing Gearman APIs for JAVA and PERL
Many thanks. This was very useful and saved me heaps of time.
This was really helpful, thanks.
Gearmand is in ports, so why not just run ‘sudo port install gearmand’?
Yeah, Eric is right, maybe when you wrote this article gearmand wasn’t in ports, but now it is so the only thing you need to do is to install MacPorts and then run (without the “$”):
$ sudo port install gearmand
It’ll install all dependencies as well 😉
Fantastic. Thanks for the update!
The current port of Gearman is 0.14. The current release is 0.18.
Thanks for the heads up. We tabled the project at work, and I have not had much time to continue my research. Hopefully this fall I’ll be working on a full end-to-end prototype installation.
Wow 😀 I wanted to give up already, but your blog is extremely helpful.
From me just note, that you don’t have to use gunzip followed by tar. Usually it’s enough to type ‘open xxxxxx.tar.gz’ (not always, but in most cases)
Thank you. I have installed Gearman. But i don’t know how to restart the server. Can you help me.