Plone 4 com virtualenv no Linux [republicado]

Estou republicando este ótimo artigo de taniaa.objects.net, para mais pessoas tenha acesso a este conteúdo. ;)
Plone 4 com virtualenv no Linux

Autora: Tânia Andrea
Como instalar e configurar um ambiente isolado de Python no Linux (rotina validada no Debian e Ubuntu).
Esta configuração eu utilizo desde 2008 (mas era pra Plone 3), mas resolvi postar o passo a passo com Plone 4, já que havia enviado esta rotina para configuração do ambiente da minha Oficina no Consegi 2011. Espero que seja útil e aguardo sugestões de melhoria :)
Obs: Escolha a pasta de sua preferência: /home/zope, /opt, etc.

1) Instalar pacotes básicos:
$ sudo apt-get install gcc g++ make
2) Adicionar user zope:
$ sudo adduser zope
3) Instalar o Subversion (SVN):
$ sudo apt-get install subversion

Instalação do Plone 4

1) Instalar ambiente python isolado do sistema:
$ sudo apt-get install python-virtualenv
2) Se não tiver, instalar python-setuptools:
$ sudo apt-get install python-setuptools
3) Uma das bibliotecas necessárias para compilar coisas no python:
$ sudo apt-get install zlib1g-dev
4) Criar área de desenvolvimento, que poderá ser apagada depois. Usada para dar o bootstrap no buildout do python que gerou o novo python2.6 a ser utilizado:
$ cd /home/zope
$ virtualenv desenvolvimento
$ sudo chown zope:zope desenvolvimento/ -R
$ sudo su zope
5) Atualizar o setuptools mais novo do que o que provavelmente tem no Debian:
$ desenvolvimento/bin/easy_install -U setuptools
6) Baixar python's:
$ cd /home/zope
$ exit
$ sudo su
# svn co http://svn.plone.org/svn/collective/buildout/python
# chown zope:zope python/ -R
7) Usar o python local para dar início ao processo:
# sudo su zope
$ cd python
$ ../desenvolvimento/bin/python bootstrap.py
8) Executar:
$ bin/buildout -v
9) Pode apagar a pasta /home/zope/desenvolvimento.
10) Instalar o ZopeSkel:
$ cd /home/zope/python
$ ./python-2.6/bin/easy_install ZopeSkel
11) Atualizar o ZopeSkel:
$ ./python-2.6/bin/easy_install -U ZopeSkel
12) Compilar PIL:
$ cd /tmp
$ wget http://effbot.org/downloads/Imaging-1.1.7.tar.gz
$ tar -zxvf Imaging-1.1.7.tar.gz
$ cd Imaging-1.1.7
$ /home/zope/python/python-2.6/bin/python setup.py install
13) Verificar se libjpeg está linkada:
$ exit
$ sudo su
# ldd /home/zope/python/python-2.6/lib/python2.6/site-packages/PIL/_imaging.so
Deve aparecer algo assim:
linux-gate.so.1 =>  (0xb7f8b000)
        libjpeg.so.7 => not found
        libz.so.1 => /usr/lib/libz.so.1 (0xb7f34000)
        libpthread.so.0 => /lib/i686/cmov/libpthread.so.0 (0xb7f1a000)
        libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7dbf000)
        /lib/ld-linux.so.2 (0xb7f8c000)
Se não tiver, edite o arquivo:
# vim /etc/ld.so.conf.d/libc.conf
E insira a linha abaixo:
/home/zope/python/python-2.6/lib/
Refazer links:
# ldconfig
Conferir:
# ldd /home/zope/python/python-2.6/lib/python2.6/site-packages/PIL/_imaging.so
Deve aparecer algo assim:
linux-gate.so.1 =>  (0x007b6000)
    libjpeg.so.8 => /home/zope/python/python-2.6/lib/libjpeg.so.8 (0x00805000)
    libz.so.1 => /home/zope/python/python-2.6/lib/libz.so.1 (0x0041f000)
    libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0x005ae000)
    libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x00154000)
    /lib/ld-linux.so.2 (0x00d77000)
Reiniciar Zope.
14) Para compilar libxml2-python:
# exit
$ cd /tmp
$ wget http://xmlsoft.org/sources/libxml2-2.7.6.tar.gz
$ tar -zxvf libxml2-2.7.6.tar.gz
$ cd libxml2-2.7.6
$ ./configure
$ make
15) Verificar se precisa configurar encode, senão edite o arquivo:
$ exit
$ sudo su
# cd /home/zope/python/python-2.6/lib/python2.6/site-packages/
# vim sitecustomize.py
E insira as linhas abaixo:
import sys
sys.setdefaultencoding("utf-8")

Instalação do buildout do Plone 4

1) Criar buildout do Plone 4, executar:
# cd /home/zope/
# ./python/python-2.6/bin/paster create -t plone4_buildout
Obs: Sobre o paster você pode saber mais aqui!

E siga os passos, que deve começar com:
Selected and implied templates:
  ZopeSkel#plone4_buildout  A buildout for Plone 4 developer installation

Enter project name: buildout
Variables:
  egg:      buildout
  package:  buildout
  project:  buildout
...
# chown zope:zope /home/zope/buildout -R
2) Executar comando que criará a pasta bin e executável que permitirá usar o buildout:
# cd /home/zope/buildout/  # Pasta com dois arquivos: buildout.cfg e bootstrap.py
# su zope
$ /home/zope/python/python-2.6/bin/python bootstrap.py
3) Editar buildout.cfg para por PIL, reload e gloworm nos eggs e endereço do repoze (http://dist.repoze.org/plone/latest):
$ cd /home/zope/buildout
$ vim buildout.cfg
Deve ficar algo assim:
[buildout]
...
eggs =
    PIL
Veja um exemplo de buildout.cfg para Plone 4.0.5, com Zeo e 2 instâncias.
4) Reconstruir o ambiente:
$ bin/buildout -v
$ sudo chown zope:zope /home/zope/buildout -R

Levantamento do Zope em modo debug

$ cd /home/zope/buildout
$ bin/instance fg
Testar no browser com admin:admin: http://localhost:8080/manage

Até a próxima! Que pretendo fazer no Mac OS. Só tenho que arranjar antes um ambiente "cru", pra testar o passo a passo... :/


Extras

Depois de tudo pronto, tente rodar o buildout com o parâmetro -o:
$ bin/buildout -o
Se der o erro abaixo...
While:
  Initializing.
Error: Couldn't download 'http://dist.plone.org/release/4.0.5/versions.cfg' in offline mode.
... vai ter que adicionar uma nova linha no buildout rodando com "-v", depois testa de novo com "-o":
extends-cache = downloads



Outras referências:



Comentários