Graphite install for RHEL 5.7 from scratch.
Official Graphite documentation is at http://graphite.readthedocs.org/
export PATH=/usr/bin:/bin:/usr/sbin:/sbin
mkdir -p /graphite/src
cd /graphite/src
# Download Python 2.7.x source from python.org
# Unpackage
cd Python-2.7.2
./configure --prefix=/graphite
make
make install
cd ..
# Now make sure you get your python before RHEL's
export PATH=/graphite/bin:$PATH
# Download Django 1.x source from django.org
# Unpackage
cd Django-1.3
python setup.py install
cd ..
# Download django-tagging from http://code.google.com/p/django-tagging/
# Unpackage
cd django-tagging-0.3.1
python setup.py install
cd ..
# Download Twisted 11.x source here from http://twistedmatrix.com/
# Unpackage
cd Twisted-11.0.0
python setup.py install
cd ..
# Download setuptools from http://pypi.python.org/pypi/setuptools
# Unpackage
cd setuptools-0.6c11
python setup.py install
cd ..
# Download pip from http://pypi.python.org/pypi/pip
# Unpackage
cd pip-1.0.2
python setup.py install
cd ..
# Now you have to build the Cairo graphics library, as RHEL's
# is too old for py2cairo's needs.
# Start with pixman, a dependency for building cairo!
# Download pixman from http://www.cairographics.org/releases/
# Unpackage
cd pixman-0.22.2
./configure --prefix=/graphite
make
make install
# Download cairo from http://www.cairographics.org/releases/
# Unpackage
cd cairo-1.10.2
# Make sure we find our shit and don't have runtime linker problems
export LDFLAGS="-L/graphite/lib -Xlinker -rpath -Xlinker /graphite/lib"
# PKG_CONFIG_PATH is set below so pixman is found
export PKG_CONFIG_PATH=/graphite/lib/pkgconfig
# Turn off all the X shit and gobject since RHEL glib2 is too old
./configure --prefix=/graphite --without-x --enable-xlib=no \
--enable-xlib-xrender=no --enable-xcb-shm=no --enable-qt=no \
--enable-gl=no --enable-gobject=no
make
make install
# Download Pycairo (aka py2cairo) from http://www.cairographics.org/pycairo/
# Unpackage
# Had to add these to LDFLAGS or ./waf configure bombs on Python.h test
# due to not including them when it should be in its test
export LDFLAGS="$LDFLAGS -lm -ldl -lutil"
cd py2cairo-1.10.0
./waf configure --prefix=/graphite
./waf build
./waf install
cd ..
# Download carbon, whisper, and graphite-web from
# https://launchpad.net/graphite
# Unpackage
cd whisper-0.9.9
python setup.py install
cd ..
cd carbon-0.9.9
python setup.py install
cd ..
cd graphite-web-0.9.9
./check-dependencies.py # Ignore WARNINGs as you see fit
python setup.py install
cd ..
You might be interested in these RPMs:Â https://github.com/dcarley/graphite-rpms
The only essential dependency on EL5 that isn’t fulfilled by the stock CentOS and EPEL repositories is python-twisted-core, which can be easily rebuilt from the EL6 sources.
Thanks for commenting here Dan. I may go that route. I saw in the dep list of the official Graphite documentation “Python 2.4 or higher (2.6 recommended)” and just bailed on what I figured was going to be an inevitably failed package-based install of all of the pieces. I may redo the effort using RHEL5’s Python 2.4 after we’ve played with it a bit, or maybe just finally get a RHEL6 image finalized for our environment.
Others reading this post + comments may also be interested in https://gist.github.com/889297