Introducción
Este tutorial pretende mostrar una forma de instalar cynin en un home de usuario donde no requiera un python del sistema operativo
Instalar dependencias
aptitude install build-essential libssl-dev libjpeg62-dev libreadline5-dev libxml2-dev libxslt1-dev libsasl2-dev libdb4.5-dev libldap2-dev zlib1g zlib1g-dev poppler-utils wv xpdf
Instalar Python 2.4.6
Descargar
aricalso@000PaRaDoX000:~/instances/cynin/narratopedia$ wget http://www.python.org/ftp/python/2.4.6/Python-2.4.6.tar.bz2 --2010-12-01 05:43:48-- http://www.python.org/ftp/python/2.4.6/Python-2.4.6.tar.bz2 Resolving www.python.org... 82.94.164.162, 2001:888:2000:d::a2 Connecting to www.python.org|82.94.164.162|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 8154677 (7.8M) [application/x-bzip2] Saving to: `Python-2.4.6.tar.bz2' 100%[==============================================================================================================================>] 8,154,677 485K/s in 22s 2010-12-01 05:44:10 (363 KB/s) - `Python-2.4.6.tar.bz2' saved [8154677/8154677]
Instalar
aricalso@000PaRaDoX000:~/instances/cynin/narratopedia$ tar xvjf Python-2.4.6.tar.bz2 aricalso@000PaRaDoX000:~/instances/cynin/narratopedia/Python-2.4.6$ ./configure --prefix=/home/aricalso/instances/cynin/narratopedia/python2.4.6 --with-threads --enable-unicode=ucs4 --with-readline aricalso@000PaRaDoX000:~/instances/cynin/narratopedia$ make aricalso@000PaRaDoX000:~/instances/cynin/narratopedia$ make install
Instalar CYNIN con Virtualenv y descargando código del SVN
Descargar ez_setup para instalar easy_install
aricalso@000PaRaDoX000:~/instances/cynin/narratopedia$ wget http://peak.telecommunity.com/dist/ez_setup.py --2010-12-01 05:57:53-- http://peak.telecommunity.com/dist/ez_setup.py Resolving peak.telecommunity.com... 209.190.5.234 Connecting to peak.telecommunity.com|209.190.5.234|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 10285 (10K) [text/plain] Saving to: `ez_setup.py' 100%[==============================================================================================================================>] 10,285 39.1K/s in 0.3s 2010-12-01 05:57:54 (39.1 KB/s) - `ez_setup.py' saved [10285/10285] aricalso@000PaRaDoX000:~/instances/cynin/narratopedia$
Instalar ez_setup
Para faciitar vamos a poner en el PATH de manera temporal el python que acabamos de instalar
aricalso@000PaRaDoX000:~/instances/cynin/narratopedia$ export PATH=/home/aricalso/instances/cynin/narratopedia/python2.4.6/bin:$PATH aricalso@000PaRaDoX000:~/instances/cynin/narratopedia$ python ez_setup.py Downloading http://pypi.python.org/packages/2.4/s/setuptools/setuptools-0.6c11-py2.4.egg Processing setuptools-0.6c11-py2.4.egg creating /home/aricalso/instances/cynin/narratopedia/python2.4.6/lib/python2.4/site-packages/setuptools-0.6c11-py2.4.egg Extracting setuptools-0.6c11-py2.4.egg to /home/aricalso/instances/cynin/narratopedia/python2.4.6/lib/python2.4/site-packages Adding setuptools 0.6c11 to easy-install.pth file Installing easy_install script to /home/aricalso/instances/cynin/narratopedia/python2.4.6/bin Installing easy_install-2.4 script to /home/aricalso/instances/cynin/narratopedia/python2.4.6/bin Installed /home/aricalso/instances/cynin/narratopedia/python2.4.6/lib/python2.4/site-packages/setuptools-0.6c11-py2.4.egg Processing dependencies for setuptools==0.6c11 Finished processing dependencies for setuptools==0.6c11 aricalso@000PaRaDoX000:~/instances/cynin/narratopedia$
Instalar virtualenv
aricalso@000PaRaDoX000:~/instances/cynin/narratopedia$ easy_install virtualenv Searching for virtualenv Reading http://pypi.python.org/simple/virtualenv/ Reading http://virtualenv.openplans.org Best match: virtualenv 1.5.1 Downloading http://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.5.1.tar.gz#md5=3daa1f449d5d2ee03099484cecb1c2b7 Processing virtualenv-1.5.1.tar.gz Running virtualenv-1.5.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-KswExV/virtualenv-1.5.1/egg-dist-tmp-aEA8hA warning: no previously-included files matching '*.*' found under directory 'docs/_templates' Adding virtualenv 1.5.1 to easy-install.pth file Installing virtualenv script to /home/aricalso/instances/cynin/narratopedia/python2.4.6/bin Installed /home/aricalso/instances/cynin/narratopedia/python2.4.6/lib/python2.4/site-packages/virtualenv-1.5.1-py2.4.egg Processing dependencies for virtualenv Finished processing dependencies for virtualenv
Crear instancia de virtualenv para nuestro proyecto
aricalso@000PaRaDoX000:~/instances/cynin/narratopedia$ virtualenv --no-site-packages /home/aricalso/instances/cynin/narratopedia/venv New python executable in /home/aricalso/instances/cynin/narratopedia/venv/bin/python Installing setuptools.............done. aricalso@000PaRaDoX000:~/instances/cynin/narratopedia$
Instalar dependencias dentro del virtualenv
# ESTA LINEA ACTIVA LA VIRTUALENV ( LOS PATH DE LA INSTANCIA DE VIRTUALENV ) aricalso@000PaRaDoX000:~/instances/cynin/narratopedia/venv$ source bin/activate aricalso@000PaRaDoX000:~/instances/cynin/narratopedia/venv$ easy_install ZopeSkel aricalso@000PaRaDoX000:~/instances/cynin/narratopedia/venv$ easy_install lxml aricalso@000PaRaDoX000:~/instances/cynin/narratopedia/venv$ easy_install python-ldap aricalso@000PaRaDoX000:~/instances/cynin/narratopedia/venv$ easy_install PIL aricalso@000PaRaDoX000:~/instances/cynin/narratopedia/venv$ easy_install ftp://xmlsoft.org/libxml2/python/libxml2-python-2.4.30.tar.gz aricalso@000PaRaDoX000:~/instances/cynin/narratopedia/venv$ easy_install --find-links=http://download.zope.org/distribution PILwoTk
Descargar código fuente de cynin
(venv)aricalso@000PaRaDoX000:~/instances/cynin/narratopedia/venv$ svn --force export http://odn.cynapse.com/svn/cynin/tags/cynin_3_1_3 . (venv)aricalso@000PaRaDoX000:~/instances/cynin/narratopedia/venv$ ls Additional Terms.txt bootstrap.py ez_setup.py include noldap.cfg README.txt src user.cfg bin buildout.cfg GNU GENERAL PUBLIC LICENSE.txt lib products related_files ubify.kpf versions.cfg (venv)aricalso@000PaRaDoX000:~/instances/cynin/narratopedia/venv$
Configurar e instalar cynin
(venv)aricalso@000PaRaDoX000:~/instances/cynin/narratopedia/venv$ python bootstrap.py
Se configura el usuario efectivo editando user.cfg
1 [buildout] 2 extends = 3 buildout.cfg 4 5 [instance] 6 debug-mode = off 7 verbose-security = off 8 effective-user = aricalso 9 10 zope-conf-additional += 11 enable-ms-author-via on 12 <webdav-source-server> 13 # valid keys are "address" and "force-connection-close" 14 address 1980 15 force-connection-close off 16 </webdav-source-server>
Se ejecuta el buildout
(venv)aricalso@000PaRaDoX000:~/instances/cynin/narratopedia/venv$ ./bin/buildout -N -c user.cfg
Se ejecuta la instancia finalmente
aricalso@000PaRaDoX000:~/instances/cynin/narratopedia/venv$ ./bin/instance fg
/home/aricalso/instances/cynin/narratopedia/venv/parts/instance/bin/runzope -X debug-mode=on
2010-12-01 06:50:24 INFO ZServer HTTP server started at Wed Dec 1 06:50:24 2010
Hostname: 0.0.0.0
Port: 8080
2010-12-01 06:50:24 INFO ZServer Clock server for "/cynin/@@tickupdate" started (user: Anonymous, period: 60)
2010-12-01 06:50:29 INFO ZServer WebDAV server started at Wed Dec 1 06:50:29 2010
Hostname: 0.0.0.0
Port: 1980
/home/aricalso/instances/cynin/narratopedia/venv/products/ATRatings/indexableattributes.py:72: DeprecationWarning: The registerIndexableAttribute hook has been deprecated and will be
removed in Plone 4.0. Please use the following pattern instead:
>>> from plone.indexer.decorator import indexer
>>> @indexer(Interface)
... def my_indexer(object):
... return <some value>
Then register the indexer as an adapter in ZCML:
<adapter factory='.indexers.my_indexer' name='my_attribute' />
Note that you can (and should) use a more specific interface for your
indexer to ensure that it only applies to a particular content type.
registerIndexableAttribute("getCyninRating", getCyninRating)
2010-12-01 06:50:31 INFO CMFNotification Monkey-patched CMFCore.RegistrationTool
2010-12-01 06:50:31 INFO CMFNotification Monkey-patched CMFCore.MemberDataTool
2010-12-01 06:50:32 INFO Plone PlonePAS: Wrapping method at LDAPPluginBase.getPropertiesForUser
2010-12-01 06:50:32 INFO Plone PlonePAS: Wrapping method at LDAPMultiPlugin.getGroupsForPrincipal
Exception caught during check for ssopubkey, so mod_auth_pubtkt cannot be supported
2010-12-01 06:50:35 INFO Plone Dependency
Unable to detect Zope version. Please make sure you have Zope 2.10.4 or newer installed.
/home/aricalso/instances/cynin/narratopedia/venv/src/ubify.cyninv2theme/ubify/cyninv2theme/__init__.py:164: SyntaxWarning: import * only allowed at module level
def validatePasteData(context,data):
/home/aricalso/instances/cynin/narratopedia/venv/parts/zope2/lib/python/zope/configuration/xmlconfig.py:323: DeprecationWarning: zope.app.annotation has moved to zope.annotation. Import of zope.app.annotation will become unsupported in Zope 3.5
__import__(arguments[0])
2010-12-01 06:50:38 INFO p4a.z2utils.patches Extending CMFDynamicViewFTI's dynamic view support with interfaces.
/home/aricalso/instances/cynin/narratopedia/venv/products/Plone4ArtistsCalendar/pythonlib/p4a/common/configure.zcml:19: DeprecationWarning: The five:localsite directive is deprecated and will be removed in Zope 2.12.
See Five/doc/localsite.txt .
<five:localsite class=".Portal.PloneSite" />
/home/aricalso/instances/cynin/narratopedia/venv/src/ubify.coretypes/ubify/coretypes/content/wiki.py:50: DeprecationWarning: Non-ASCII character '\x92' in file /home/aricalso/instances/cynin/narratopedia/venv/src/ubify.coretypes/ubify/coretypes/content/wiki_start_page.py on line 45, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
from wiki_start_page import *
/home/aricalso/instances/cynin/narratopedia/venv/parts/zope2/lib/python/zope/configuration/config.py:184: DeprecationWarning: zope.app.event.interfaces has moved to zope.lifecycleevent.interfaces. Import of zope.app.event.interfaces will become unsupported in Zope 3.5
mod = __import__(mname, *_import_chickens)
/home/aricalso/instances/cynin/narratopedia/venv/parts/zope2/lib/python/zope/configuration/config.py:692: DeprecationWarning: The five:traversable statement is no longer needed and will be removed in Zope 2.12.
actions = self.handler(context, **args)
/home/aricalso/instances/cynin/narratopedia/venv/eggs/Products.GenericSetup-1.4.5-py2.4.egg/Products/GenericSetup/registry.py:744: DeprecationWarning: Version for profile Products.CMFNotification:default taken from version.txt. This is deprecated behaviour and will be removed in GenericSetup 1.5: please specify the version in metadata.xml.
DeprecationWarning)
/home/aricalso/instances/cynin/narratopedia/venv/eggs/Products.GenericSetup-1.4.5-py2.4.egg/Products/GenericSetup/registry.py:744: DeprecationWarning: Version for profile Products.OpenXml:default taken from version.txt. This is deprecated behaviour and will be removed in GenericSetup 1.5: please specify the version in metadata.xml.
DeprecationWarning)
/home/aricalso/instances/cynin/narratopedia/venv/eggs/Products.GenericSetup-1.4.5-py2.4.egg/Products/GenericSetup/registry.py:744: DeprecationWarning: Version for profile Products.ZipFileTransport:default taken from version.txt. This is deprecated behaviour and will be removed in GenericSetup 1.5: please specify the version in metadata.xml.
DeprecationWarning)
2010-12-01 06:50:53 INFO Application New disk product detected, determining if we need to fix up any ZClasses.
2010-12-01 06:50:53 INFO Zope Ready to handle requests
Blog
Status Log
Wiki