Descarga de todas las dependencias para un módulo de Perl

Esta puede ser una pregunta duplicada, así que disculpe mis habilidades de búsqueda.

Necesito descargar todas las dependencias para un módulo Perl específico (local :: lib y otros) en una máquina Windows / cygwin (con Perl 5.10.1) y moverlas a una máquina Solaris (con Perl 5.8.8) que no tiene Internet conexión.

He visto minicpan sugerido en esta pregunta, pero crear una réplica completa de un CPAN no es una opción ya que estoy en una red corporativa con ancho de banda limitado. CPAN :: Mini tiene algunas opciones de filtrado, pero trata con rutas en lugar de dependencias.

¿Hay alguna manera de lograr esto?

Gracias,

Ivan

preguntado el 10 de mayo de 11 a las 13:05

2 Respuestas

Primero echa un vistazo al sitio web de la cpan2dist utilidad contenida en la distribución de Perl. (Está dentro /usr/bin en mi instalación de Cygwin).

cpan2dist --help

Creará una distribución de tipo FMT de los módulos especificados en la línea de comando, y todos sus prerrequisitos.

También puede crear una distribución de tipo FMT a partir de un archivo local y todos sus requisitos previos

No lo he probado, pero parece lo que buscas.

respondido 24 nov., 15:11

Esperaba la respuesta típica de "perl -MCPAN -e 'instalar módulo'" y me sorprendió gratamente. Tendré que probar esto en algún momento. - ericslaw

¡Gracias! Acepto esta respuesta, pero no la he probado yo mismo (solo usé una máquina diferente con acceso a Internet :-P). Pero por lo que he visto en las opciones de cpan2dist, aún debe compilar todos los paquetes y dependencias. Usé el siguiente comando: cpan2dist --format CPANPLUS::Dist::Build --buildprereq --skiptest --keepsource local::lib y me dio errores al compilar los requisitos previos, por lo que no lo investigué más. Si alguien tiene una forma más limpia de descargar las fuentes, avíseme. - imírico

cpanminus tiene una opción para hacer exactamente eso: --scandeps y --save-dists. Lea más sobre esa opción en una publicación de blog que explica las nuevas características de cpanm 1.4.

contestado el 12 de mayo de 11 a las 09:05

Gracias, esto se ve bien. Pero todavía tengo el problema que tenía antes con las diferentes versiones de Perl. Corriendo cpanm --scandeps --save-dists -L /tmp/perl5 local::lib con Perl 5.12.3 produce local :: lib solo porque todas las demás dependencias ya están en el núcleo. Pero necesitaría una forma de especificar para qué versión de Perl quiero probar; algo así como una herramienta automatizada para descargar la salida de deps.cpantesters.org. Lo cual podría no ser tan mala idea después de todo ... - imírico

esta respuesta stackoverflow.com/a/17303468/4940240 tiene un pensamiento agradable: use "-L / dev / null" para que cpanm asuma que no hay ningún módulo instalado. descargará todos los módulos no centrales (según tengo entendido) - Eli

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.