modules perl cpan cpanm

perl - modules - ¿Cuál es la diferencia entre cpan y cpanm?



install perl modules ubuntu (2)

Esta pregunta ya tiene una respuesta aquí:

¿Cuál es la diferencia entre los comandos cpan y cpanm ?

Ambos parecen instalar módulos perl , entonces, ¿cuál es la diferencia?


La mayoría de los usuarios modernos de Perl prefieren cpanm por su simplicidad y, principalmente, la brevedad de la producción.

El uso de cpan puede resultar en cientos de líneas de salida, ya que muestra todo lo que está haciendo: descarga, suma de comprobación, ejecución del instalador, análisis, carga, y la lista continúa. Lo mismo se aplica a cada dependencia.

cpanm otro lado, cpanm le dice lo que está haciendo de una manera más concisa y general, es decir: Recuperación, Configuración, Creación y prueba, Hecho.

Entonces, la principal diferencia en el uso es que cpanm suprime una gran cantidad de información (típicamente) irrelevante. A veces, cuando un módulo falla, es posible que desee más información. Hay una bandera -v|--verbose que esencialmente te muestra todo lo que cpan haría.

Además, algunos módulos que requieren la intervención del usuario pueden parecer que "cuelgan" cuando intenta instalarlos. Esto se debe a que se suprime la salida que le está pidiendo que escriba algo. Puede usar las --interactive (o --verbose ) para evitar eso.

Para una comparación de la salida, vea las diapositivas 35-39 here o las diapositivas 37-41 here . (Estos son de la misma presentación. Solo estoy duplicando los enlaces en caso de que uno se desconecte).


cpan el shell CPAN se ha enviado con Perl desde aproximadamente 1997. Cuando lo ejecutas la primera vez, hace un montón de preguntas y guarda las respuestas en un archivo de configuración. Luego puedes instalar un módulo ejecutando:

cpan -i Module::Name

El shell proporciona otros comandos para buscar CPAN y buscar dentro de los archivos de distribución.

Jos Boumans inició un proyecto para crear un shell CPAN más nuevo, mejor y con más características llamado CPANPLUS ( cpanp desde la línea de comando), pero nunca se completó hasta el punto en que se realizó la visión original.

Mientras tanto, MIYAGAWA decidió que cpanp estaba tratando de hacer demasiado y lo que el mundo realmente necesitaba era una cáscara más simple que hiciera menos y hacía menos preguntas (idealmente ninguna). Él creó App::cpanminus que proporciona el comando cpanm y hace exactamente lo que él quería. Puede usarlo para instalar un módulo (y todas las dependencias del módulo) con un comando como:

cpanm Module::Name

La principal diferencia entre los dos es que si tiene Perl, ya debería tener el comando cpan . Mientras que no tendrá cpanm menos / hasta que lo instale.