SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
menttes
 corporate training




                      zc.buildout para
                      desarrolladores Plone


                      Emanuel Sartor
                      emanuel@menttes.com
¿Qué es un buildout?




                       menttes
¿Qué es un buildout?




 La palabra buildout hace referencia a una
 descripción de un conjunto de partes y al software
 para crear y ensamblar esas partes.


 A menudo se usa informalmente para hacer
 referencia a un sistema instalado basado en la
 definición de un buildout.




                                             menttes
¿Qué es un buildout?




 Por ejemplo, si estamos creando una aplicación
 llamada Foo, entonces el buildout de Foo será la
 colección de configuraciones y aplicaciones
 específicas que permiten crear una instancia de la
 aplicación.

 Informalmente podríamos referirnos a tal instancia
 como el buildout de Foo.




                                            menttes
¿Qué es un buildout?



 zc.buildout es una herramienta que nos permite
 definir buildouts. Estas son sus principales
 características:

 ● Permite defnición de buildouts de forma declarativa
 ● Basado en python

 ● Orientado a desarrollador

 ● Repetible

 ● Es fácil trabajar con eggs




                                             menttes
Todo muy lindo...

¿Pero cómo me ayuda esto en el desarrollo
                Plone?




                                  menttes
Desarrollo Plone


 Para configurar un entorno de desarrollo,
 usualmente los siguientes pasos son requeridos:

 ● Descargar, compilar e instalar Zope
 ● Crear una instancia Zope y configurarla

 ● Descargar e instalar Plone

 ● Instalar productos y eggs adicionales requeridos


   por mi proyecto
 ● Agregar a la instancia productos y paquetes que


   estoy desarrollando



                                             menttes
Desarrollo Plone


 Todos estos pasos se pueden realizar manualmente,
 pero esto genera una serie de problemas:

 ● Lento para generar nuevos entornos de desarrollo.
 ● Cada desarrollador es responsable de crear su


   entorno de desarrollo, y algunas diferencia sutiles
   en la configuración puede desembocar en errores
   en el código.

 Todo esto puede ser automático usando
 zc.buildout.


                                              menttes
Mmm... suena bien, pero seguro que tengo
 que leer cientos de tutoriales y un par de
       libros para usar zc.buildout.

  ¿Cómo harías todo eso con zc.buildout?




                                    menttes
Desarrollo Plone con zc.buildout



Vamos a empezar creando un buildout que descargue
Zope, lo compile, lo instale, cree una instancia y la
configure.

 $ mkdir buildout

 $ cd buildout

 $ wget http://svn.zope.org/zc.buildout/trunk/bootstrap/bootstrap.py

 $ vim buildout.cfg




                                                          menttes
buildout.cfg

 [buildout]
 parts =
   zope2
   instance


 [zope2]
 recipe = plone.recipe.zope2install
 url = http://www.zope.org/Products/Zope/2.10.5/Zope-2.10.5-final.tgz


 [instance]
 recipe = plone.recipe.zope2instance
 zope2-location = ${zope2:location}
 user = admin:admin
 http-address = 8080
 debug-mode = on
 verbose-security = on



                                                                 menttes
buildout.cfg




 La sección [buildout] es el punto de inicio del
 archivo. Este lista un número de partes las cuales
 serán configuradas más adelante en el archivo.




                                             menttes
buildout.cfg




 Cada parte tiene una receta (recipe) asociada, la
 cual es el nombre de un egg que sabe cómo realizar
 una tarea determinada, por ejemplo, compilar Zope
 o crear una instancia.




                                           menttes
buildout.cfg




 Una receta toma típicamente algunas opciones de
 configuración.




                                          menttes
Hasta ahora tenemos...




 ●   bootstrap.py: es un script que va a instalar
     setuptools y zc.buildout en el directorio buildout
     que creamos sin interferir con los paquetes
     instalados globalmente.

 ●   buidout.cfg: la definición de un buildout que
     instala Zope y configura una instancia.




                                                 menttes
zc.buildout en acción


 $ python2.4 bootstrap.py

 $ bin/buildout

 [esperamos un rato]

 $ bin/instance fg

 Listo, ya podemos acceder a nuestra instancia Zope
 2.10.5 apuntando nuestro navegador a
 http://localhost:8080


                                           menttes
zc.buildout en acción


 Supongamos que por error instalamos Zope 2.10.5,
 pero que en realidad necesitabamos instalar la
 versión 2.10.4. Supongamos también que queremos
 que la instancia ocupe el puerto 8090 en lugar del
 8080.

 En ese caso, en el archivo buildout.cfg modificamos
 la URL de la cuál se descarga Zope, así también
 como el número de puerto y luego volvemos a
 ejecutar:

 $ bin/buildout

                                            menttes
Bien... comienzo a sentirme mejor.

    ¿Cómo instalamos Plone?




                               menttes
buildout.cfg (primera parte)


 [buildout]
 parts =
   zope2
   instance
   plone
 eggs =


 [plone]
 recipe = plone.recipe.plone
 # recipe = plone.recipe.plone==3.0.1


 [zope2]
 recipe = plone.recipe.zope2install
 url = ${plone:zope2-url}



                                        menttes
buildout.cfg (segunda y última parte)



 [instance]
 recipe = plone.recipe.zope2instance
 zope2-location = ${zope2:location}
 user = admin:admin
 http-address = 8080
 debug-mode = on
 verbose-security = on
 eggs =
    ${buildout:eggs}
    ${plone:eggs}
 zcml =

 products =
   ${plone:products}




                                        menttes
buildout.cfg



 Las recetas pueden exponer variables para ser
 usadas por otras partes en la configuración del
 buildout.

 Por ejemplo, en [zope2] se hace referencia
 a ${plone:zope2-url}, que es una variable emitida
 por la parte [plone] y que tiene como valor el URL
 del Zope adecuado para la versión de Plone a
 instalar.




                                             menttes
buildout.cfg




 Se puede especificar explícitamente la versión de la
 receta a utilizar (recordar que las recetas son eggs).
 Un ejemplo de esto es el comentario en la sección
 [plone] en el que se especifica que se usará la
 versión 3.0.1 de la receta plone.recipe.plone.




                                               menttes
menttes
 corporate training




                      Muchas gracias

Más contenido relacionado

Similar a Desarrollo Plone con zc.buildout

Desplegando Proyectos Symfony2 con Capistrano-Capifony y Git
Desplegando Proyectos Symfony2 con Capistrano-Capifony y GitDesplegando Proyectos Symfony2 con Capistrano-Capifony y Git
Desplegando Proyectos Symfony2 con Capistrano-Capifony y Gitmoisesgallego
 
Curso Plone Secundo Sesion
Curso Plone   Secundo SesionCurso Plone   Secundo Sesion
Curso Plone Secundo Sesionajussis
 
Plone - Introducción y instalación
Plone - Introducción y instalaciónPlone - Introducción y instalación
Plone - Introducción y instalaciónajussis
 
Equipo9
Equipo9Equipo9
Equipo9CUI
 
Crea tus instaladores para linux (fedora, ubuntu, etc) sencillamente
Crea tus instaladores para linux (fedora, ubuntu, etc) sencillamenteCrea tus instaladores para linux (fedora, ubuntu, etc) sencillamente
Crea tus instaladores para linux (fedora, ubuntu, etc) sencillamenteKuboosoft
 
Greach 2011 : Creando Plugins Con Griffon
Greach 2011 : Creando Plugins Con GriffonGreach 2011 : Creando Plugins Con Griffon
Greach 2011 : Creando Plugins Con GriffonMario García
 
Compilación del Kernel
Compilación del KernelCompilación del Kernel
Compilación del KernelJuan Sánchez
 
CURSO DE PROGRAMACION BASICA - Cap 4
CURSO DE PROGRAMACION BASICA - Cap 4CURSO DE PROGRAMACION BASICA - Cap 4
CURSO DE PROGRAMACION BASICA - Cap 4Daniel Irene
 
2290277 Instalacion De Un Servidor De Base De Datos Postgre Sql Apache Jboss ...
2290277 Instalacion De Un Servidor De Base De Datos Postgre Sql Apache Jboss ...2290277 Instalacion De Un Servidor De Base De Datos Postgre Sql Apache Jboss ...
2290277 Instalacion De Un Servidor De Base De Datos Postgre Sql Apache Jboss ...Freddy Banguero
 

Similar a Desarrollo Plone con zc.buildout (20)

Desplegando Proyectos Symfony2 con Capistrano-Capifony y Git
Desplegando Proyectos Symfony2 con Capistrano-Capifony y GitDesplegando Proyectos Symfony2 con Capistrano-Capifony y Git
Desplegando Proyectos Symfony2 con Capistrano-Capifony y Git
 
Anatomia de Plone
Anatomia de PloneAnatomia de Plone
Anatomia de Plone
 
Curso Plone Secundo Sesion
Curso Plone   Secundo SesionCurso Plone   Secundo Sesion
Curso Plone Secundo Sesion
 
Plone - Introducción y instalación
Plone - Introducción y instalaciónPlone - Introducción y instalación
Plone - Introducción y instalación
 
Equipo9
Equipo9Equipo9
Equipo9
 
Practica adicional
Practica adicionalPractica adicional
Practica adicional
 
Despues de instalar fedora 14
Despues de instalar fedora 14Despues de instalar fedora 14
Despues de instalar fedora 14
 
Crea tus instaladores para linux (fedora, ubuntu, etc) sencillamente
Crea tus instaladores para linux (fedora, ubuntu, etc) sencillamenteCrea tus instaladores para linux (fedora, ubuntu, etc) sencillamente
Crea tus instaladores para linux (fedora, ubuntu, etc) sencillamente
 
TALLER DE REDES 2 PERIODO
TALLER DE REDES 2 PERIODO TALLER DE REDES 2 PERIODO
TALLER DE REDES 2 PERIODO
 
Taller de redes
Taller de redesTaller de redes
Taller de redes
 
Taller de redes
Taller de redesTaller de redes
Taller de redes
 
Greach 2011 : Creando Plugins Con Griffon
Greach 2011 : Creando Plugins Con GriffonGreach 2011 : Creando Plugins Con Griffon
Greach 2011 : Creando Plugins Con Griffon
 
Visual studio code
Visual studio codeVisual studio code
Visual studio code
 
Visual studio c_
Visual studio c_Visual studio c_
Visual studio c_
 
sistema operativo
sistema operativosistema operativo
sistema operativo
 
Compilación del Kernel
Compilación del KernelCompilación del Kernel
Compilación del Kernel
 
CURSO DE PROGRAMACION BASICA - Cap 4
CURSO DE PROGRAMACION BASICA - Cap 4CURSO DE PROGRAMACION BASICA - Cap 4
CURSO DE PROGRAMACION BASICA - Cap 4
 
Instalar odoo 9 en Linux Debian
Instalar odoo 9 en Linux DebianInstalar odoo 9 en Linux Debian
Instalar odoo 9 en Linux Debian
 
2290277 Instalacion De Un Servidor De Base De Datos Postgre Sql Apache Jboss ...
2290277 Instalacion De Un Servidor De Base De Datos Postgre Sql Apache Jboss ...2290277 Instalacion De Un Servidor De Base De Datos Postgre Sql Apache Jboss ...
2290277 Instalacion De Un Servidor De Base De Datos Postgre Sql Apache Jboss ...
 
Getting Started with ChatBots
Getting Started with ChatBotsGetting Started with ChatBots
Getting Started with ChatBots
 

Más de Roberto Allende

Fearless Coding with Test Driven Development
Fearless Coding with Test Driven DevelopmentFearless Coding with Test Driven Development
Fearless Coding with Test Driven DevelopmentRoberto Allende
 
Creencias y cultura popular para armar el equipo de un Startup
Creencias y cultura popular para armar el equipo de un StartupCreencias y cultura popular para armar el equipo de un Startup
Creencias y cultura popular para armar el equipo de un StartupRoberto Allende
 
11 Slides de Droidcon NYC
11 Slides de Droidcon NYC11 Slides de Droidcon NYC
11 Slides de Droidcon NYCRoberto Allende
 
Startup escalables y organicos
Startup escalables y organicosStartup escalables y organicos
Startup escalables y organicosRoberto Allende
 
Microservices y la era Post Industrial de la Web
Microservices y la era Post Industrial de la WebMicroservices y la era Post Industrial de la Web
Microservices y la era Post Industrial de la WebRoberto Allende
 
La idea, de la epifanía a la empresa escalable
La idea, de la epifanía a la empresa escalableLa idea, de la epifanía a la empresa escalable
La idea, de la epifanía a la empresa escalableRoberto Allende
 
Emprender en Argentina: 8 creencias y algunas experiencias
Emprender en Argentina: 8 creencias y algunas experienciasEmprender en Argentina: 8 creencias y algunas experiencias
Emprender en Argentina: 8 creencias y algunas experienciasRoberto Allende
 
Innovar: comunicar y hacer
Innovar: comunicar y hacerInnovar: comunicar y hacer
Innovar: comunicar y hacerRoberto Allende
 
Introducción a Leanstartup
Introducción a LeanstartupIntroducción a Leanstartup
Introducción a LeanstartupRoberto Allende
 
PloneGov: Cooperación, participación y Software Libre en Gobierno
PloneGov: Cooperación, participación y Software Libre en Gobierno PloneGov: Cooperación, participación y Software Libre en Gobierno
PloneGov: Cooperación, participación y Software Libre en Gobierno Roberto Allende
 
Menttes: exportando servicios basados en Software Libre
Menttes: exportando servicios basados en Software LibreMenttes: exportando servicios basados en Software Libre
Menttes: exportando servicios basados en Software LibreRoberto Allende
 
Introducción al desarrollo en Plone
Introducción al desarrollo en PloneIntroducción al desarrollo en Plone
Introducción al desarrollo en PloneRoberto Allende
 
Desarrollo de Productos con Archetypes y ArchGenXML
Desarrollo de Productos con Archetypes y ArchGenXMLDesarrollo de Productos con Archetypes y ArchGenXML
Desarrollo de Productos con Archetypes y ArchGenXMLRoberto Allende
 
Curso Zope Page Templates y Metal
Curso Zope Page Templates y MetalCurso Zope Page Templates y Metal
Curso Zope Page Templates y MetalRoberto Allende
 
AJAX a cuerda Lo básico sobre AJAX y su funcionamiento
AJAX a cuerda
Lo básico sobre AJAX y su funcionamientoAJAX a cuerda
Lo básico sobre AJAX y su funcionamiento
AJAX a cuerda Lo básico sobre AJAX y su funcionamientoRoberto Allende
 
Desarrollando aplicaciones web con Zope 3
Desarrollando aplicaciones web con Zope 3Desarrollando aplicaciones web con Zope 3
Desarrollando aplicaciones web con Zope 3Roberto Allende
 
PloneGov: un proyecto internacional de cooperación entre Gobiernos abierto a ...
PloneGov: un proyecto internacional de cooperación entre Gobiernos abierto a ...PloneGov: un proyecto internacional de cooperación entre Gobiernos abierto a ...
PloneGov: un proyecto internacional de cooperación entre Gobiernos abierto a ...Roberto Allende
 
Introduccion a Python por Facundo Batista
Introduccion a Python por Facundo BatistaIntroduccion a Python por Facundo Batista
Introduccion a Python por Facundo BatistaRoberto Allende
 

Más de Roberto Allende (20)

Fearless Coding with Test Driven Development
Fearless Coding with Test Driven DevelopmentFearless Coding with Test Driven Development
Fearless Coding with Test Driven Development
 
Creencias y cultura popular para armar el equipo de un Startup
Creencias y cultura popular para armar el equipo de un StartupCreencias y cultura popular para armar el equipo de un Startup
Creencias y cultura popular para armar el equipo de un Startup
 
11 Slides de Droidcon NYC
11 Slides de Droidcon NYC11 Slides de Droidcon NYC
11 Slides de Droidcon NYC
 
Startup escalables y organicos
Startup escalables y organicosStartup escalables y organicos
Startup escalables y organicos
 
Microservices y la era Post Industrial de la Web
Microservices y la era Post Industrial de la WebMicroservices y la era Post Industrial de la Web
Microservices y la era Post Industrial de la Web
 
La idea, de la epifanía a la empresa escalable
La idea, de la epifanía a la empresa escalableLa idea, de la epifanía a la empresa escalable
La idea, de la epifanía a la empresa escalable
 
Emprender en Argentina: 8 creencias y algunas experiencias
Emprender en Argentina: 8 creencias y algunas experienciasEmprender en Argentina: 8 creencias y algunas experiencias
Emprender en Argentina: 8 creencias y algunas experiencias
 
Innovar: comunicar y hacer
Innovar: comunicar y hacerInnovar: comunicar y hacer
Innovar: comunicar y hacer
 
Introducción a Leanstartup
Introducción a LeanstartupIntroducción a Leanstartup
Introducción a Leanstartup
 
Taller de Gamification
Taller de GamificationTaller de Gamification
Taller de Gamification
 
PloneGov: Cooperación, participación y Software Libre en Gobierno
PloneGov: Cooperación, participación y Software Libre en Gobierno PloneGov: Cooperación, participación y Software Libre en Gobierno
PloneGov: Cooperación, participación y Software Libre en Gobierno
 
Menttes: exportando servicios basados en Software Libre
Menttes: exportando servicios basados en Software LibreMenttes: exportando servicios basados en Software Libre
Menttes: exportando servicios basados en Software Libre
 
Introducción al desarrollo en Plone
Introducción al desarrollo en PloneIntroducción al desarrollo en Plone
Introducción al desarrollo en Plone
 
Catedral y Bazaar
Catedral y BazaarCatedral y Bazaar
Catedral y Bazaar
 
Desarrollo de Productos con Archetypes y ArchGenXML
Desarrollo de Productos con Archetypes y ArchGenXMLDesarrollo de Productos con Archetypes y ArchGenXML
Desarrollo de Productos con Archetypes y ArchGenXML
 
Curso Zope Page Templates y Metal
Curso Zope Page Templates y MetalCurso Zope Page Templates y Metal
Curso Zope Page Templates y Metal
 
AJAX a cuerda Lo básico sobre AJAX y su funcionamiento
AJAX a cuerda
Lo básico sobre AJAX y su funcionamientoAJAX a cuerda
Lo básico sobre AJAX y su funcionamiento
AJAX a cuerda Lo básico sobre AJAX y su funcionamiento
 
Desarrollando aplicaciones web con Zope 3
Desarrollando aplicaciones web con Zope 3Desarrollando aplicaciones web con Zope 3
Desarrollando aplicaciones web con Zope 3
 
PloneGov: un proyecto internacional de cooperación entre Gobiernos abierto a ...
PloneGov: un proyecto internacional de cooperación entre Gobiernos abierto a ...PloneGov: un proyecto internacional de cooperación entre Gobiernos abierto a ...
PloneGov: un proyecto internacional de cooperación entre Gobiernos abierto a ...
 
Introduccion a Python por Facundo Batista
Introduccion a Python por Facundo BatistaIntroduccion a Python por Facundo Batista
Introduccion a Python por Facundo Batista
 

Último

LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxkimontey
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Marketing BRANDING
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadEduardoSantiagoSegov
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 

Último (20)

LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedad
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 

Desarrollo Plone con zc.buildout

  • 1. menttes corporate training zc.buildout para desarrolladores Plone Emanuel Sartor emanuel@menttes.com
  • 2. ¿Qué es un buildout? menttes
  • 3. ¿Qué es un buildout? La palabra buildout hace referencia a una descripción de un conjunto de partes y al software para crear y ensamblar esas partes. A menudo se usa informalmente para hacer referencia a un sistema instalado basado en la definición de un buildout. menttes
  • 4. ¿Qué es un buildout? Por ejemplo, si estamos creando una aplicación llamada Foo, entonces el buildout de Foo será la colección de configuraciones y aplicaciones específicas que permiten crear una instancia de la aplicación. Informalmente podríamos referirnos a tal instancia como el buildout de Foo. menttes
  • 5. ¿Qué es un buildout? zc.buildout es una herramienta que nos permite definir buildouts. Estas son sus principales características: ● Permite defnición de buildouts de forma declarativa ● Basado en python ● Orientado a desarrollador ● Repetible ● Es fácil trabajar con eggs menttes
  • 6. Todo muy lindo... ¿Pero cómo me ayuda esto en el desarrollo Plone? menttes
  • 7. Desarrollo Plone Para configurar un entorno de desarrollo, usualmente los siguientes pasos son requeridos: ● Descargar, compilar e instalar Zope ● Crear una instancia Zope y configurarla ● Descargar e instalar Plone ● Instalar productos y eggs adicionales requeridos por mi proyecto ● Agregar a la instancia productos y paquetes que estoy desarrollando menttes
  • 8. Desarrollo Plone Todos estos pasos se pueden realizar manualmente, pero esto genera una serie de problemas: ● Lento para generar nuevos entornos de desarrollo. ● Cada desarrollador es responsable de crear su entorno de desarrollo, y algunas diferencia sutiles en la configuración puede desembocar en errores en el código. Todo esto puede ser automático usando zc.buildout. menttes
  • 9. Mmm... suena bien, pero seguro que tengo que leer cientos de tutoriales y un par de libros para usar zc.buildout. ¿Cómo harías todo eso con zc.buildout? menttes
  • 10. Desarrollo Plone con zc.buildout Vamos a empezar creando un buildout que descargue Zope, lo compile, lo instale, cree una instancia y la configure. $ mkdir buildout $ cd buildout $ wget http://svn.zope.org/zc.buildout/trunk/bootstrap/bootstrap.py $ vim buildout.cfg menttes
  • 11. buildout.cfg [buildout] parts = zope2 instance [zope2] recipe = plone.recipe.zope2install url = http://www.zope.org/Products/Zope/2.10.5/Zope-2.10.5-final.tgz [instance] recipe = plone.recipe.zope2instance zope2-location = ${zope2:location} user = admin:admin http-address = 8080 debug-mode = on verbose-security = on menttes
  • 12. buildout.cfg La sección [buildout] es el punto de inicio del archivo. Este lista un número de partes las cuales serán configuradas más adelante en el archivo. menttes
  • 13. buildout.cfg Cada parte tiene una receta (recipe) asociada, la cual es el nombre de un egg que sabe cómo realizar una tarea determinada, por ejemplo, compilar Zope o crear una instancia. menttes
  • 14. buildout.cfg Una receta toma típicamente algunas opciones de configuración. menttes
  • 15. Hasta ahora tenemos... ● bootstrap.py: es un script que va a instalar setuptools y zc.buildout en el directorio buildout que creamos sin interferir con los paquetes instalados globalmente. ● buidout.cfg: la definición de un buildout que instala Zope y configura una instancia. menttes
  • 16. zc.buildout en acción $ python2.4 bootstrap.py $ bin/buildout [esperamos un rato] $ bin/instance fg Listo, ya podemos acceder a nuestra instancia Zope 2.10.5 apuntando nuestro navegador a http://localhost:8080 menttes
  • 17. zc.buildout en acción Supongamos que por error instalamos Zope 2.10.5, pero que en realidad necesitabamos instalar la versión 2.10.4. Supongamos también que queremos que la instancia ocupe el puerto 8090 en lugar del 8080. En ese caso, en el archivo buildout.cfg modificamos la URL de la cuál se descarga Zope, así también como el número de puerto y luego volvemos a ejecutar: $ bin/buildout menttes
  • 18. Bien... comienzo a sentirme mejor. ¿Cómo instalamos Plone? menttes
  • 19. buildout.cfg (primera parte) [buildout] parts = zope2 instance plone eggs = [plone] recipe = plone.recipe.plone # recipe = plone.recipe.plone==3.0.1 [zope2] recipe = plone.recipe.zope2install url = ${plone:zope2-url} menttes
  • 20. buildout.cfg (segunda y última parte) [instance] recipe = plone.recipe.zope2instance zope2-location = ${zope2:location} user = admin:admin http-address = 8080 debug-mode = on verbose-security = on eggs = ${buildout:eggs} ${plone:eggs} zcml = products = ${plone:products} menttes
  • 21. buildout.cfg Las recetas pueden exponer variables para ser usadas por otras partes en la configuración del buildout. Por ejemplo, en [zope2] se hace referencia a ${plone:zope2-url}, que es una variable emitida por la parte [plone] y que tiene como valor el URL del Zope adecuado para la versión de Plone a instalar. menttes
  • 22. buildout.cfg Se puede especificar explícitamente la versión de la receta a utilizar (recordar que las recetas son eggs). Un ejemplo de esto es el comentario en la sección [plone] en el que se especifica que se usará la versión 3.0.1 de la receta plone.recipe.plone. menttes
  • 23. menttes corporate training Muchas gracias