Though we are deploying on Linux, we do all our development on Mac OS X. It turned out that it was a bit more tweaky to get RabbitMQ to install on Mac OS X if we wanted to use the latest version of RabbitMQ and its underlying Erlang Environment.
So this is what we’ve done so far to get it installed.
The core of this information came from the blog entry of Ben Hood, RabbitMQ contributor How I Install RabbitMQ On OSX
I’ve added a few things that were important in our environment.
Make sure MacPorts bin is before default bin
Your Unix PATH must have the MacPorts bin (/opt/local/bin before /usr/bin or /bin)
Ideally change it in the Mac OS X environment and not just your shell. You can use the RCEnvironment (Environment Variables) System Preference to set/update the PATH Environment variable. Or you can edit ~/.MacOSX/environment.plist file. Make sure that you don’t override this in your .bachrc or .tcshrc shell startup files. Or that you do it properly there as well.
This is mainly needed to make sure that you are using the python and python libraries from MacPorts and not the default Apple Leopard python in /usr/bin. It is also needed for the path to the Erlang binaries.
* Use MacPorts via command line or Portecus to install Erlang. We did use R12B-5 with hipe, ssl, and smp options.
* Link erl_call into /opt/local/bin
UnixPrompt> sudo ln -s /opt/local/lib/erlang/lib/erl_interface-3.5.9/bin/erl_call /opt/local/bin
This is needed to install RabbitMQ from the default branch (this is a stable branch but may be beyond the current release). RabbitMQ 1.4.0 will not work with Erlang/OTP R12B-5. Please use R12B-4 or earlier by default.
Get a Mac Binary package.
Install python simple json
Using MacPorts, you can use the following commands:
UnixPrompt> sudo port install py25-simplejson UnixPrompt> sudo port install python_select UnixPrompt> sudo python_select python25
Make sure that you have the right python in your path:
UnixPrompt> which python /opt/local/bin/python
Get RabbitMQ via mercurial
UnixPrompt> hg clone http://hg.rabbitmq.com/rabbitmq-codegen UnixPrompt> hg clone http://hg.rabbitmq.com/rabbitmq-server
Build and run the rabbitMQ
UnixPrompt> cd rabbitmq-server
UnixPrompt> make -j run
Should then see something like:
NODE_IP_ADDRESS= NODE_PORT= NODE_ONLY=true LOG_BASE=/tmp RABBIT_ARGS=" -s rabbit" MNESIA_DIR=/tmp/rabbitmq-rabbit-mnesia ./scripts/rabbitmq-server Erlang (BEAM) emulator version 5.6.4 [smp:2] [async-threads:30] [kernel-poll:true] Eshell V5.6.4 (abort with ^G) (rabbit@xlr8)1> RabbitMQ %%VERSION%% (AMQP 8-0) ... Logging to "/tmp/rabbit.log" SASL logging to "/tmp/rabbit-sasl.log" starting database ...done starting core processes ...done starting recovery ...done starting persister ...done starting builtin applications ...done starting TCP listeners ...done broker running
You are now up and running!
TBD: Figure out how to integrate it into Mac OS X so its treated as a system service started at bootup.