Skip to content. | Skip to navigation

Installing Deliverance on Ubuntu Hardy Heron LTS at Slicehost

 

Deliverance is a lightweight proxy that applies a theme to content according to a set of rules. It provides a quick and simple way to re-brand content from any mainstream content provider or technology.

Deliverance is currently being touted in the Plone community as a simpler solution to Theming.  Currently theming in Plone is a non-trivial effort that requires developer talent in addition to creative design.

See Also: Nate Aune's Slides from Plone Symposium East 2009

 

Getting There from Here

To install Deliverance on Hardy Heron Ubuntu Linux, I began by following the Quickstart directions at http://deliverance.openplans.org/quickstart.html.

The following are notes based on the steps in the Quickstart.

Before you begin

Note that I needed to install libxml-dev, libxml2-dev, and libxslt-dev in my system before starting down this road.

 apt-get install libxml-dev libxml2-dev libxslt-dev
Starting with virtualenv

This process begins by setting up a virtual environment which is important for isolating some of the build steps from other parts of your system and giving you an easyout later by just blowing away the build directory.

Installing the Software

This is where I first encountered build errors which appear related to libxml or libxslt and the differences between 32bit and 64 bit hosts.

SAMPLE ERROR

gcc -g -O2 -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -o xmllint xmllint.o  ./.libs/libxml2.a -ldl -lz -lm
/usr/bin/ld: i386 architecture of input file `xmllint.o' is incompatible with i386:x86-64 output
...

 This was the error that led my to discover that I needed to install Python developer tools and Cython.

Take a Big Step Back

I've run through this setp process a couple times now and I've concluded that Kees Hink'S blog post Installing deliverance provided the best guide to this process. He provides directions based on installing from a subversion checkout.Martin Aspeli's Manual Steps directions complement Hink's and OpenPlans'.

Here I reproduce Kees Hink's process with some modifications of my own.

# root level permission, sudo or something like it maybe required here

# Get development libraries (i'm on Ubuntu)
apt-get install libxml-dev libxslt-dev
apt-get install python-dev

# Decide where to install Deliverance.  I chose "/opt/deliverance-prod"
# as the path to my production installation
mkdir /opt/deliverance-prod
cd /opt/deliverance-prod

# Get virtualenv.py from http://svn.colorstudy.com/virtualenv/trunk/virtualenv.py
wget http://svn.colorstudy.com/virtualenv/trunk/virtualenv.py

# Create virtualenv. "deliverance_svn" will be the sub-directory of the deliverance installation
python virtualenv.py --no-site-packages deliverance_svn
cd deliverance_svn

# activate the virtual environment
. bin/activate
cd bin

# Install Cython 
./easy_install Cython==0.11

# Install latest version of setuptools to prevent error "global name 'log' is not defined"
easy_install -U setuptools
cd ..

# Checkout deliverance from svn
svn co http://codespeak.net/svn/z3/deliverance/trunk/ deliverance
cd deliverance

# Install deliverance
../bin/python setup.py install

# Install paster in virtualenv
../bin/easy_install PasteScript
cd ..

# Create deliverance instance, replace "your-name-here" with the name for this configuration
./bin/paster create -t deliverance your-name-here

# Answer the questions...

# Start the proxy
./bin/deliverance-proxy your-name-here/etc/deliverance.xml

 

Cython

For me the real key was getting the Python and Cython developer tools running.  After that the process went a lot smoother

 apt-get install python-dev
 ./easy_install Cython==0.11

  

Other references

http://www.openplans.org/projects/deliverance/getting-started

Martin Aspeli's Manual Setup Steps

 Kees Hink'S blog post Installing deliverance

how to build lxml from source     http://codespeak.net/lxml/build.html

Document Actions

installing subversion

sudo apt-get install subversion

Install Python Developer Tools and Cython

sudo apt-get install python-dev

/opt/deliverance/DelivTest/bin# ./easy_install Cython==0.11

paster bug work-around

For some reason in my installation the paster create command (last one above before startup) failed because paster-templates were not installed with deliverance. I created a symbolic link that solved it, as in:

$ pwd
/home/ftoth/deliverance_svn/lib/python2.6/site-packages/deliverance-0.3dev_r0-py2.6.egg/deliverance
$ ln -s /home/ftoth/deliverance_svn/deliverance/deliverance/paster-templates

It's python-devel on my boxes

Not python-dev. Maybe different on ubuntu.