Server Build Instructions
This section describes the process for obtaining a copy of the RabbitMQ server source code, as well as instructions for building the server from source.
First, get the source code from our GitHub repositories:
git clone https://github.com/rabbitmq/rabbitmq-server.git rabbitmq
Then, use GNU Make to pull down dependencies and build the server and all plugins that ship with the RabbitMQ distribution:
cd rabbitmq make
In order to build RabbitMQ, a few tools must be installed.
RabbitMQ requires a recent version of Python and simplejson.py (an implementation of a JSON reader and writer in Python), for generating AMQP 0-9-1 framing code. simplejson.py is included as a standard json library in the Python core since 2.6 release.
Erlang/OTP Toolchain and Headers
On a Debian-based system, install the
See Erlang compatibility guide to learn more about supported versions of Erlang/OTP.
GNU make is the primary build tool used by RabbitMQ.
xsltproc and xmlto
A recent version of xsltproc, which is part of libxslt and xmlto must be available.
zip and unzip
Change to the
rabbitmq directory, and type
Makefile targets include
|all||The default target. Builds the server.|
|shell||Builds the client libraries and starts an Erlang shell with the libraries loaded.|
Builds the server and starts an instance with an
interactive Erlang shell. This will by default put
data, including the node’s data directory, under
make run-broker TEST_TMPDIR="/some/other/location/for/rabbitmq-test-instances"The Erlang node name can also be changed by setting
make run-broker RABBITMQ_NODENAME=rmqSee Configuration guide for other variables that may be useful.
|clean||Removes temporary build products.|
|distclean||Removes all build products, including fetched dependencies.|
|tests||Runs multiple server test suites. This is very resource-intensive and will take up to a few hours. Many nodes and clusters will be started, modified and destroyed by various test suites.|
In practice, building RabbitMQ server from source is of limited use unless an easy to deploy package (e.g. a generic binary build or Debian one) can be produced.
Everything related to packaging the RabbitMQ server is in the main RabbitMQ repository.
There is a number of top-level packaging Make targets available, one for each package type (or family of packages, such as RPM):