Parece que la mayoría de los instaladores de Perl se centran en la instalación de módulos Perl, no en aplicaciones. Cosas como ExtUtils :: MakeMaker y Module :: Build son muy adecuadas para los módulos, pero requieren un trabajo adicional para las aplicaciones web.¿Cuál es el mejor sistema para instalar una aplicación web de Perl?
Lo ideal sería agradable ser capaz de hacer lo siguiente después de la salida de la fuente desde el repositorio:
- tienen dependencias faltantes detectados
- Descargar e instalar las dependencias de CPAN
- Ejecutar un comando para "compilar" la fuente en un estado final (realizar cualquier análisis fuente o configuración necesaria para el entorno local).
- Ejecute un comando para instalar los archivos creados en las ubicaciones adecuadas. No solo los módulos perl, sino también elementos como archivos de plantilla (.tt) y scripts CGI, JS y archivos de imágenes que deben ser accesibles desde la web.
- Asegúrese de que se establezcan los permisos adecuados en los archivos instalados (y contexto de SELinux si es necesario).
En este momento tenemos un sistema basado en módulo :: Build que hace la mayor parte de este. El trabajo fue realizado por mi compañero de trabajo que estaba aprendiendo a usar Module :: Build en ese momento, y nos gustaría obtener algunos consejos para generalizar nuestra solución, ya que es bastante específica de la aplicación en este momento. En particular, nuestro sistema requiere que instalemos dependencias a mano (aunque sí las detecta).
¿Hay algún sistema en particular que haya utilizado que haya sido particularmente exitoso? ¿Tiene que escribir un instalador basado en Module :: Build o ExtUtils :: MakeMaker que sea particular para su aplicación, o hay algo más general disponible?
EDIT: Para responder a las preguntas de Brian siguientes:
- Podemos iniciar sesión en las máquinas
- No tenemos acceso root a las máquinas
- Las máquinas están (aparentemente) se basa idénticos de RHEL5 con SELinux habilitado
- Actualmente, las personas que instalan las máquinas son solo programadores de nuestro grupo, y nuestra fuente no está disponible para el público en general. Sin embargo, es concebible que nuestra fuente pueda eventualmente instalarse en las máquinas de otra persona en nuestra organización, para que la instalen sus programadores o personas de sistemas.
- Lo instalamos desde el repositorio, aunque nos gustaría tener la opción de utilizar un archivo distribuido (ver arriba).