Parte 1: Configuración de Python, Zope y Plone
1. Instalar Plone
- Unified Installer
- Buildout
- Instalador p/windows
- Paquetes de Distribuciones
Buildout
Buidlout automatiza el mantenimiento y configuración de entornos de
desarrollo. Con buildout se crean entornos autocontenidos totalmente
independientes entre si o replicar una aplicación
completa junto con sus dependencias.
En algún sentido es similar a los mecanismos de paquetes de distribuciones como debian (deb) o redhat-like (rpm) pero tiene algunas diferencias sutiles:
- Buidlout es independiente de plataforma. Solo requiere svn,
python y un compilador C. Gracias a este punto se puede automatizar la
creación de instancias zope/plone entre distintos sistemas operativos o
distribuciones.
- Buildout permite hacer tus propias "recetas". Una receta define que software y dependencias tiene, mientras que en una distro la tabla de dependencias está atada a la distribución.
Si se compara buildout con otros mecanismos, como por ejemplo usar unfied installer/codigo fuente, instalador para windows o paquetes de distribución:
| caracteristicas |
buildout |
unified installer codigo fuente |
instalador windows |
paquetes de distros (debian, redhat, etc) |
|---|---|---|---|---|
| facilidad p/replicar instancias |
++ |
-- |
-- |
- |
| automatización de creación de instancias |
++ |
- |
- |
+ |
| manejo de actualizaciones |
+ |
-- | -- |
+ |
| automatizacion de busqueda de dependencias por producto |
++ |
-- |
-- |
- |
| flexibilidad para crear nuevas configuraciones |
+ |
- |
- |
-- |
| soporte de la comunidad / productos de tercero |
+ |
+ |
- |
-- |
Referencias:
++ mucho
+ medio
- poco
-- nada
1.1. Dependencias
- Python Image Library (en ubuntu python2.4-imaging)
- Python Dev (en ubuntu python2.4-dev)
- Libc (en ubuntu libc6-dev)
1.2. Instalando entorno local de Python
Virtualenv es una herramienta para crear entornos de Python aislados.Para configurar virtualenv se debe seguir:
$ cd $HOME
$ mkdir proyecto ; cd proyecto
$ wget http://svn.colorstudy.com/virtualenv/trunk/virtualenv.py
$ python2.4 virtualenv.py python
$ ls python/bin/
activate easy_install easy_install-2.4 python2.4
$ source python/bin/activate
ZopeSkel
ZopeSkel es una collección de esqueletos para crear automáticamente paquetes e instancias en Zope.Instalación:
$ cd python
$ bin/easy_install ZopeSkel
$ ls bin/
cheetah cheetah-compile easy_install easy_install-2.4 paster python
Uso:
$ bin/paster create --list-templates
Available templates:
archetype: A Plone project that uses Archetypes
basic_namespace: A project with a namespace package
basic_package: A basic setuptools-enabled package
basic_zope: A Zope project
nested_namespace: A project with two nested namespaces.
paste_deploy: A web application deployed through paste.deploy
plone: A Plone project
plone2.5_buildout: A buildout for Plone 2.5 projects
plone2.5_theme: A Theme for Plone 2.5
plone2_theme: A Theme Product for Plone 2.1 & Plone 2.5
plone3_buildout: A buildout for Plone 3 projects
plone3_portlet: A Plone 3 portlet
plone3_theme: A Theme for Plone 3.0
plone_app: A Plone App project
1.3. Creando una instancia de Zope con Plone 3
$ paster create -t plone3_buildout plone3.buildout
$ cd plone3.buildout
$ python bootstrap.py
$ bin/buildout -v
$ bin/instance fg
$ bin/instance test -s plone.portlets
1.4 Terminología
- Instalación Zope
- Software home (variable de entorno $SOFTWARE_HOME)
- Instancia Zope
- Instance home (variable de entorno $INSTANCEHOME)
- Python path (entorno de variable $PYTHONPATH, aka sys.path)
- Paquete Python / Python package
- Producto Zope
- Python egg
- Cheese Shop (aka PyPI, the Python Package Index)
- easy_install
- Namespace package
1.5 Buildout en detalle
- bin
- eggs
- downloads
- var
- src
- products
- parts
La parte mas importante de buildout es buildout.cfg. Esta compuesto por secciones:
-
sección buildout
-
sección plone
- sección zope2
- sección productdistros
- sección instance
- sección zopepy
Opciones por defecto de buildout
- executable
- eggs-directory
- download-directory
[buildout]
executable = /opt/python24/bin/python
eggs-directory = /home/username/.buildout/eggs
download-cache = /home/username/.buildout/downloads
1.6. Instalando productos Zope 2
[productdistros]
recipe = plone.recipe.distros
urls =
http://www.zope.org/Members/shh/DocFinderTab/1.0.2/DocFinderTab-1.0.2.tar.gz
http://plone.org/products/cachefu/releases/1.1/CacheFu-1.1.tgz
http://plone.org/products/clouseau/releases/0.8.1/clouseau-0-8-1.zip
http://plone.org/products/collage/releases/1.1/collage-1.1.tar.gz
http://weblion.psu.edu/static/products/cssmanager/cssmanager-0.9.1.tar.gz
nested-packages =
CacheFu-1.1.tgz
version-suffix-packages =
$ ./bin/buildout
1.7. Instalando paquetes eggs
eggs =
elementtree
collective.portletpage
plone.app.gloworm>=0.1a4,<0.1a5
webcouturier.dropdownmenu
...
zcml =
collective.portletpage
plone.app.gloworm
webcouturier.dropdownmenu
Mas Lectura:
- Iniciandose en el desarrollo de paquetes para Plone 3
- Using Virtualenv for a clean Grok installation
- VirtualEnv Package documentation
- ZopeSkel
- Using virtualenv under Linux
- Buildout reloaded (en español)
- Managing projects with zc.buildout
- Recetas de plone