Pregunta

Tengo la tarea de replicar un entorno de producción para crear muchos entornos de prueba / sit.

Una de las cosas que debo hacer es construir Perl, con todos los módulos que se han instalado (incluidos los módulos internos y externos) a lo largo de los años. Simplemente podría usar CPAN.pm autobundle, pero esto dará como resultado que el entorno de prueba tenga versiones mucho más nuevas de los módulos externos que tiene la producción.

¿Cuál es la manera más fácil / mejor de obtener e instalar (muchos) módulos de Perl específicos de la versión?

¿Fue útil?

Solución

Haz tu propio espejo CPAN con exactamente lo que quieres. Stratopan.com , un servicio y Pinto , herramientas integradas encima, pueden ayudarlo a hacerlo.

Las herramientas CPAN solo instalan la última versión de cualquier distribución porque PAUSE solo indexa la última versión. Sin embargo, puede crear su propia CPAN privada que tenga exactamente las distribuciones que desee. Una vez que tenga su propio espejo CPAN con solo lo que desea, apunte sus herramientas CPAN solo a ese espejo para que solo instale esas versiones. Más sobre eso en un minuto.

Ahora, quieres tener varias versiones de eso. Puede crear tantos espejos como desee, y también puede poner los espejos en el control de origen para que pueda ver cualquier versión del espejo que desee.

Herramientas como CPAN :: Mini :: Inject pueden ayudarlo a configurar su propio CPAN. Consulte mis charlas en Slideshare para ver los ejemplos básicos, y algunos de mis videos en Vimeo para algunas de las demostraciones. Mire cualquier cosa que tenga & Quot; CPAN & Quot; o " BackPAN " En el título. Creo que podría tener algunas cosas al respecto en The Perl Review también, o debería hacerlo en el próximo número. :)

Últimamente, he estado trabajando en un programa llamado dpan (para DarkPAN) que puede mirar directorios aleatorios, encontrar distribuciones de Perl en ellos y crear la estructura y los archivos de índice que necesita. Ejecutas dpan, obtienes una URL para apuntar a tu cliente CPAN y listo. Es parte de mi proyecto MyCPAN-Indexer, que se encuentra en Github . No está del todo listo para uso público sin supervisión porque principalmente trabajo con clientes corporativos para personalizar su configuración. Si está interesado en eso, no dude en hacerme preguntas.

Además, recientemente lancé CPAN :: PackageDetails que puede ayudarlo a construir el derecho archivo de índice Todavía es un poco joven también, pero de nuevo, si necesita algo especial, solo pregunte.

Otros consejos

bdfoy tiene la mejor solución a gran escala, pero si solo desea instalar algunos módulos, puede solicitar al shell CPAN que instale una distribución específica haciendo referencia a una ruta a un tarball (en relación con la parte superior del árbol CPAN).

cpan> install MSCHWERN/Test-Simple-0.62.tar.gz

Agregue una URL a BackPAN en su lista de URL y podrá instalar cualquier versión anterior.

cpan> o conf urllist push http://backpan.perl.org/

Esto se encuentra en las CPAN.pm FAQ en " ¿cómo instalo? ¿Una 'LIBERACIÓN DE DESARROLLADOR' de un módulo? "

cpan install App::cpanminus
cpanm Your::Module@1.23

(Carton, como se menciona en otras respuestas, usa cpanm debajo para resolver requisitos de versión explícitos)

[Han pasado casi cinco años y esta es una pregunta bien hecha y bien contestada que ha tenido muchas opiniones. Dado que esta página aún debe aparecer en las búsquedas de Google, una actualización no puede dañar.]

Carton vale la pena mencionar aquí. App::cpanminus es una herramienta relativamente reciente en el mismo estilo que App::cpanoutdated, perlbrew, Pinto, et. al. El autor (Miyagawa) lo llama " alpha " calidad, pero incluso en su estado actual, la caja de cartón ayuda a simplificar el mantenimiento de múltiples entornos de módulos de versión ajustada en todas las máquinas.

<=> también es otra herramienta reciente relevante para algunas de las respuestas (de hecho, uno de los encuestados es un contribuyente) .

Stratopan.com es otra alternativa. Stratopan proporciona CPAN privados en la nube. Puede llenar su repositorio Stratopan con versiones específicas de módulos (y sus dependencias) y luego instalarlos utilizando la cadena de herramientas estándar de Perl. El repositorio cambia solo cuando usted decide cambiarlo, por lo que siempre obtendrá las versiones de los módulos que desee.

Descargo de responsabilidad: opero Stratopan.

Parece que crear una cpanfile lista de todos sus módulos y versiones deseadas (usando la sintaxis == <version> para bloquearlo en una versión específica) también podría servir aquí. Eso significaría usar Carton o cpanm para instalar los módulos.

Hacer esto tendría la ventaja de poder ajustar rápida / fácilmente el archivo para probar la actualización de módulos específicos en un entorno de desarrollo o de preparación, algo que un espejo privado de CPAN no le permitiría hacer (sin crear múltiples espejos).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top