Installing Plone 4.0a1 on Debian

I just read on a tweet that the first alpha release of Plone 4 is already available for testing and I wasn’t able to resist the temptation. 😛  As some people have already pointed out, Python 2.6 for Debian is only available from the experimental repository, and most of us prefer to stay testing or unstable at most. :)

Thanks god, there’s a buildout recipe (we should create a Linux distro based on buildout someday, alecm 😉 to build Python from source in an isolated environment. Steps:

  1. svn co https://svn.plone.org/svn/collective/buildout/python/ buildout.python
  2. cd buildout.python; python bootstrap.py
  3. Edit buildout.cfg to fit your needs. You might want to comment out the references to the Python versions you don’t want to install.
  4. bin/buildout
  5. cd to-another-directory; paster create -t plone3_buildout plone4.
  6. Enter “4.0a1” (without quotes) when asked about “Which Plone version to install”. Make sure you have the last version of ZopeSkel (2.14.1 while I’m writing this – easy_install -U ZopeSkel) or the generated buildout.cfg won’t be valid for Plone 4 otherwise. Thanks to MatthewWilkes for the pointer and of course for the ZopeSkel release. :)
  7. path-to-buildout.python/python-2.6/bin/python bootstrap.py
  8. bin/buildout. If you get tons of lines in your console output about fetching distribute, see this post by Reinout van Rees.
  9. You’ll need to install PIL to run Plone, so do either:
    1. python-2.6/bin/easy_install-2.6 http://dist.repoze.org/PIL-1.1.6.tar.gz, or
    2. Add PIL or PILwoTk to any of the eggs sections of your Plone 4 buildout and re-run bin/buildout.

If you stumble upon an error message similar to:

Downloading http://dist.repoze.org/PIL-1.1.6.tar.gz
Processing PIL-1.1.6.tar.gz
Running PIL-1.1.6/setup.py -q bdist_egg --dist-dir /tmp/easy_install-Fev48C/PIL-1.1.6/egg-dist-tmp-SNtCRu
In file included from decode.c:608:
libImaging/Zip.h:11:18: error: zlib.h: No such file or directory
In file included from decode.c:608:
libImaging/Zip.h:37: error: expected specifier-qualifier-list before ‘z_stream’
error: Setup script exited with error: command 'gcc' failed with exit status 1

try “aptitude install zlib1g-dev”. Thanks davisagli!

The previous procedure should work… But it didn’t in my system. :(  I get an error in the buildout.python bin/buildout:

SystemError: ('Failed', 'patch -p0 < /somepath/buildout.python/parts/readline-patch/readline.patch')

I’ve already tweeted fschulze (who is presumably the author of the collective.buildout.python stuff, according to comments in the #plone IRC channel) about this issue. I hope it will get solved soon! :)

In the meanwhile, removing or commenting out the stuff about readline.patch in the collective.buildout.python buildout.cfg before running bin/buildout appears to be a valid workaround, at least for me.

4 thoughts on “Installing Plone 4.0a1 on Debian

  1. You don’t need to modify the buildout config, just use ZopeSkel as I suggested:

    nimbus:~ matthewwilkes$ paster create -t plone3_buildout
    Selected and implied templates:
    ZopeSkel#plone3_buildout A buildout for Plone 3 projects

    Enter project name: plone4
    Variables:
    egg: plone4
    package: plone4
    project: plone4
    Enter plone_version (Which Plone version to install) [‘3.2.2’]: 4.0a1

    I know it looks weird, but as there’s so much work going on with ZopeSkel at the moment I didn’t want to introduce a new template just to (potentially) remove it again in a few weeks.

    Putting 4.0a1 as the version number to either plone2.5_buildout or plone3_buildout will create a working Plone 4 buildout.

    N.B.: Make sure you have the latest ZopeSkel release. If the plone3_buildout doesn’t default to 3.2.2 it’s not the latest, do easy_install -U ZopeSkel to fix that.

  2. Hey Matthew, thanks for the info.

    But I recall some problems with the plone.recipe.zope2instance and zope2-location, since now Zope is provided as an egg (as far as I’ve understood). Anyway, I’ll try again to install Plone 4 with the plone3_buildout skeleton as you suggest. :)

Leave a Reply to Matthew Wilkes Cancel reply

Your email address will not be published. Required fields are marked *