He publicado this question buscando algo similar a Buildout para Perl. Creo que Shipwright es lo que estoy buscando, pero no estoy muy seguro. He jugado con eso y creé un proyecto, importé todas mis fuentes y dependencias y exporté todo a un barco, luego la documentación se detuvo. ¿Qué hago con un buque de astillero? ¿Realizo mi trabajo de desarrollo real en el barco, o hago mi desarrollo en el Astillero? Asumo que el barco es solo para el despliegue, pero ¿cómo realmente despliego un buque a un servidor web (digamos que estoy usando linux, apache y simplemente ejecutando cgi directamente).¿Cuál es una buena forma de implementar una aplicación Perl?
¿Es Shipwright lo correcto para lo que estoy tratando de lograr o hay algo más que sería más apropiado? Idealmente, podría usar Shipwright de forma similar a como uso Buildout. Utilizo Buildout para crear un entorno agradable y aislado para mi desarrollo, y también uso Buildout al implementar en servidores activos para administrar todas las dependencias de mi aplicación.
EDITAR: Estos son los aspectos más destacados de lo que puedo hacer con Buildout que me gustaría poder hacer en Perl.
Con Buildout, tengo un archivo en mi base de código que enumera las dependencias (que para Perl serían módulos de CPAN u otros repositorios de origen). Puedo ejecutar un script bootstrap que busque todas esas dependencias y las coloque en un directorio dentro de mi proyecto y NO las instale en un nivel de sistema. Buildout también crea scripts de utilidad que pueden hacer lo que quieras (ejecutar pruebas, otras herramientas de línea de comandos, cualquier cosa en realidad) y esos scripts agregan explícitamente las dependencias a la ruta para que mis scripts estén en ejecución y todas mis dependencias estén disponibles para importar.
Lo que realmente hace muy bien es que me permite administrar mis dependencias sin tener que instalar nada a nivel de sistema. Lo que hace que cambiar de una versión a otra sea muy fácil. Además, me permite tener múltiples proyectos Buildout ejecutándose en el mismo sistema usando diferentes versiones del mismo módulo. Finalmente, un gran beneficio es que con la estructura de directorios de Buildout, puedo simplemente comprometer las dependencias con el control de origen y desplegarlo en una nueva máquina. Solo necesito hacer un checkout y todas mis dependencias ya están satisfechas sin tener que tocar nada instalado en un nivel de sistema.
Las opciones que debe considerar dependen mucho de lo que está tratando de hacer. Es posible que desee echar un vistazo a PAR, también. – tsee
Curioso ya que nunca he Buildout; ¿Qué problema (s) resuelven sistemas como este? Distribuyendo el código? ¿Ejecutando el código? –
Para cualquiera que encuentre esto buscando información sobre Shipwright, aquí hay un tutorial muy bueno sobre cómo "enviar" su embarcación. http://serialized.net/2010/08/deploying-self-contained-perl-dancer-applications/ Actualmente estoy intentando crear un proceso de implementación para una aplicación web. – Relequestual