Current

This document is valid for the current version of Plone.

Problem deploying Unified Installer on Linux 64b

by Andy Ferguson last modified Dec 02, 2011 10:58 PM
If you experience problems deploying versions of Plone 4 requiring python 2.6 on 64b platforms or distributions, this may help

The problem described below is fixed in the 4.1.3 installer and in later releases of the 4.1.2 installer. If you encounter installation problems on Linux or BSD systems, please file a bug report.

While attempting to deploy Plone 4.1.2 using the UnifiedInstaller on a very new openSuSE 12.1 64b platform, I kept getting errors like

LookupError: unknown encoding: zip
Python zlib support is missing; something went wrong in the zlib or python build.

and I could not progress installation. To successfully complete a build of python 2.6, a number of libraries and their development support packages (-devel) need to be installed. Such packages include libxml, libxslt2, readline, zlib and openssl. Make sure these are installed for your distribution. If you still get an error like the above, this may indicate that python has not been built or installed correctly. Try this...

  1. pick out the python tarball from your Plone package (it should be below packages in the Unified Installer folder) and try and build an independent version of python 2.6 or alternatively build a python version using another means
  2. once you can demonstrate a functional version of python 2.6 you can then deploy Plone using the Unified Installer by passing it the switch --with-python=/usr/local/bin/python2.6 or similar pointing at an appropriate python binary
To resolve the original error caused during the building of the the python binary, try this sequence of steps

  1. unpack the Python tarball as described above and follow a build sequence of ./configure; make
  2. if all the appropriate libraries are available, this should build successfully creating a python binary at the top of the build tree
  3. execute this binary and verify that you can import modules like xml, readline, zlib and ssl
  4. make install can now be invoked to deploy the package; this should install a binary in /usr/local/bin
  5. again attempt to verify that these imports will succeed using this installed binary
  6. if these modules now fail to load, check if there is a tree in /usr/local/lib64/python2.6 containing folders such as config or lib-dynload - these probably should have been installed below /usr/local/lib/python2.6. Make symbolic links to the actual directories in local/lib/python2.6 and try the imports again. Hopefully they will now work
There may be other parts of python also installed below local/lib64, try linking these as well.

lib-dynload contains libraries for many of the external packages such as readline, zlib and friends so if they cannot be found, their python packages will fail to load and import statements will throw an error.

the config tree is required when building new extensions for python and its absence will prevent buildout deploying any components as it tries to install Plone and Zope

Contribute

Something wrong or out of date? Anybody can edit or create a new article in the knowledge base. Simply create an account on this site, log in, and click the Edit button to contribute.