Tenga mucho cuidado con la seguridad: lo que se necesita para garantizar que los módulos no se hayan modificado debe descargarse de forma segura desde un sitio confiable. Vea mi respuesta sobre el uso de cpan.
vinc17
Respuestas:
226
En Unix :
generalmente comienzas cpan en tu shell:
# cpan
y escribe
install Chocolate::Belgian
o en forma corta:
cpan Chocolate::Belgian
En Windows :
Si está utilizando ActivePerl en Windows, el PPM (Perl Package Manager) tiene casi la misma funcionalidad que CPAN.pm.
Muchas distribuciones envían muchos módulos perl como paquetes.
Debian / Ubuntu: apt-cache search 'perl$'
Arch Linux: pacman -Ss '^perl-'
Gentoo: categoría dev-perl
Usted debe siempre prefiere como usted se beneficia de seguridad automáticas () actualizaciones y la facilidad de eliminación . Esto puede ser bastante complicado con el cpan herramienta sí.
Para Gentoo hay una buena herramienta llamada g-cpan que construye / instala el módulo desde CPAN y crea un paquete Gentoo ( ebuild ) para usted.
La forma corta es simplemente "chocolate cpan :: belga" de la línea de comando :)
brian d foy
3
IIRC, el último ActivePerl ya no tiene línea de comandos ppm, ahora abre una GUI elegante.
Kev
66
Solo "ppm" abre la GUI, pero seguido de comandos permanece en la línea de comandos. Entonces, "ayuda de ppm", "instalación de ppm ...", etc.
Bill Ruppert
Tenga en cuenta que ppm utiliza guiones para el separador de ruta del módulo, no los dos puntos dobles habituales. (¿Tal vez porque los dos puntos significan unidades en dos?) Eso me tiene varias veces;)
Matthew Lock
3
@MatthewLock: ppmutiliza guiones -porque especifica la distribución que desea instalar, lo cual es mucho más honesto. Por ejemplo, si lo cpaninstala LWP, LWP::Simpleo LWP::UserAgentinstalará la distribución libwww-perlpor usted. La mayoría de las distribuciones contienen un solo módulo con un nombre equivalente, pero hay varias excepciones como esa
Es genial solo para instalar cosas. No proporciona ninguna de las funciones más complejas de CPAN o CPANPLUS, por lo que es fácil de usar, siempre que sepa qué módulo desea instalar. Si aún no tienes cpanminus, solo escribe:
# cpan App::cpanminus
para instalarlo
También es posible instalarlo sin usar cpan. El procedimiento básico de arranque es,
Usar cpanpara instalar App::cpanminuses un poco extraño. Las instrucciones de instalación normales implican un procedimiento de arranque de descargar una parte de él desde cpanmin.us y usarlo para instalar el resto. Esto evita la configuración cpany la creación de un .cpandirectorio inútil (a partir de entonces) .
Chas. Owens
En Ubuntu, solo puede instalar cpanminusdesde la terminal. Me parece cpanmmejor que cpanporque no pone registros de errores en la pantalla, sino que los almacena en archivos de registro temporales y proporciona la ruta en caso de errores.
user13107
Recibo este error cuando intento su comando: No se puede encontrar strictly.pm en @INC (es posible que deba instalar el módulo estricto) (@INC contiene: / etc / perl
IgorGanapolsky
29
Observo a algunas personas que sugieren una ejecución de cpan en sudo. Solía ser necesario instalarlo en el directorio del sistema, pero las versiones modernas del shell CPAN le permiten configurarlo para usar sudo solo para la instalación. Esto es mucho más seguro, ya que significa que las pruebas no se ejecutan como root.
Si tiene un antiguo shell CPAN, simplemente instale el nuevo cpan ("instalar CPAN") y cuando vuelva a cargar el shell, debería solicitarle que configure estas nuevas directivas.
Hoy en día, cuando estoy en un sistema con un antiguo CPAN, lo primero que hago es actualizar el shell y configurarlo para que pueda hacer la mayor parte de mi trabajo de cpan como usuario normal.
Además, sugeriría encarecidamente que los usuarios de Windows investiguen la fresa Perl . Esta es una versión de Perl que viene con un shell CPAN preconfigurado y un compilador. También incluye algunos módulos Perl difíciles de compilar con sus dependencias externas de la biblioteca C, en particular XML :: Parser. Esto significa que puede hacer lo mismo que cualquier otro usuario de Perl cuando se trata de instalar módulos, y las cosas tienden a "simplemente funcionar" mucho más a menudo.
@Lao Tzu: no, ya que CPAN es un módulo central de Perl y no está disponible como paquete DEB separado. Creo que en la mayoría de las situaciones es aún mejor usarlo App::cpanminus, es una alegría usarlo. Philip Potter lo sugiere en su respuesta aquí y puedes probar este Chas. Owens responde .
semana
25
Si está en Ubuntu y desea instalar el módulo perl preenvasado (por ejemplo, geo :: ipfree) intente esto:
$ apt-cache search perl geo :: ipfree
libgeo-ipfree-perl - Un país para buscar el módulo Perl de la dirección IP
$ sudo apt-get install libgeo-ipfree-perl
Un par de personas mencionaron la utilidad cpan, pero es más que simplemente iniciar un shell. Simplemente dele los módulos que desea instalar y deje que funcione.
$prompt> cpan Foo::Bar
Si no le da ningún argumento, inicia el shell CPAN.pm. Esto funciona en Unix, Mac, y debería estar bien en Windows (especialmente Strawberry Perl).
Hay varias otras cosas que puede hacer con la herramienta cpan también. Aquí hay un resumen de las características actuales (que podrían ser más nuevas que la que viene con CPAN.pm y perl):
-a
Creates the CPAN.pm autobundle with CPAN::Shell->autobundle.
-A module [ module ... ]
Shows the primary maintainers for the specified modules
-C module [ module ... ]
Show the Changes files for the specified modules
-D module [ module ... ]
Show the module details. This prints one line for each out-of-date module (meaning,
modules locally installed but have newer versions on CPAN). Each line has three columns:
module name, local version, and CPAN version.
-L author [ author ... ]
List the modules by the specified authors.
-h
Prints a help message.
-O
Show the out-of-date modules.
-r
Recompiles dynamically loaded modules with CPAN::Shell->recompile.
-v
Print the script version and CPAN.pm version.
Otto hizo un buena sugerencia . Esto también funciona para Debian, así como para cualquier otro derivado de Debian. Lo que falta es qué hacer cuando apt-cache search no encuentra algo.
Esto le dará un paquete de Deb que puede instalar para obtener Some :: Random :: Module. Uno de los grandes beneficios aquí son las páginas man y los scripts de muestra, además del módulo en sí se colocarán en la ubicación de su distribución de elección. Si alguna vez sale la distribución con un paquete oficial para una versión más nueva de Some :: Random :: Module, se instalará automáticamente cuando realice la actualización.
Lo anterior está instalando el "instalador de módulos CPAN de configuración cero" llamado cpanm. (La instalación puede tardar varios minutos; no interrumpa el proceso)
Je, eso es lindo. Use CPAN.pm para reemplazarse con CPANPLUS. :)
brian d foy
5
Muchas veces sucede que el comando cpan install falla con el mensaje
"hacer que la prueba haya devuelto un estado incorrecto, no se instalará sin fuerza"
En ese caso, la siguiente es la forma de instalar el módulo:
Desafortunadamente, esto produce: No se puede encontrar CPAN.pm en @INC (es posible que deba instalar el módulo CPAN) (@INC contiene: / etc / perl
IgorGanapolsky
4
En ubuntu, la mayoría de los módulos perl ya están empaquetados, por lo que la instalación es mucho más rápida que la mayoría de los otros sistemas que tienen que compilarse.
Para instalar Foo::Baren un símbolo del sistema, por ejemplo, generalmente solo debe hacer:
sudo apt-get install libfoo-bar-perl
Lamentablemente, no todos los módulos siguen esa convención de nomenclatura.
También puede decir "$ cpan Foo :: Bar" para instalar directamente desde la línea de comandos. No es necesario una sola línea elegante o carcasa de CPAN. :)
brian d foy
3
En Fedora puedes usar
# yum install foo
siempre y cuando Fedora tenga un paquete existente para el módulo.
En Fedora Linuxo Enterprise Linux, yumtambién rastrea las dependencias de la biblioteca perl. Entonces, si el módulo perl está disponible y algunos paquetes rpm exportan esa dependencia, instalará el paquete adecuado para usted.
yum install 'perl(Chocolate::Belgian)'
(muy probablemente el paquete perl-Chocolate-Belgian, o incluso el paquete ChocolateFactory)
Si desea colocar el nuevo módulo en una ubicación personalizada que su shell cpan no esté configurado para usar, entonces quizás lo siguiente sea útil.
#wget <URL to the module.tgz>##unpack
perl Build.PL
./Build destdir=$HOME install_base=$HOME
./Build destdir=$HOME install_base=$HOME install
Muchas respuestas mencionan el uso de la cpanutilidad (que usa CPAN.pm) sin una palabra sobre seguridad. Por defecto, CPAN2.27 y las configuraciones anteriores urllistusan una URL http (es decir, http://www.cpan.org/ ), que permite ataques MITM, por lo tanto, es inseguro. Esto es lo que se usa para descargar los CHECKSUMSarchivos, por lo que debe cambiarse a una URL segura (por ejemplo, https://www.cpan.org/ ).
Entonces, después de ejecutar cpan y aceptar la configuración predeterminada, debe modificar el MyConfig.pmarchivo generado (se genera la ruta completa) de la siguiente manera. Reemplazar
'urllist'=>[q[http://www.cpan.org/]],
por
'urllist'=>[q[https://www.cpan.org/]],
Nota: https no es suficiente; También necesita un sitio web en el que pueda confiar. Por lo tanto, tenga cuidado si desea elegir un espejo arbitrario.
@DaveEveritt La redirección de http a https es útil solo para la privacidad, por ejemplo, contra alguien que solo puede ver los datos que transitan en la red. Pero si un atacante controla la red (por ejemplo, un punto de acceso wifi público o alguna red local no protegida), puede ser posible un ataque man-in-the-middle , y el atacante usará su propio servidor (obviamente no https://www.cpan.org/).
vinc17
1
En Windows con la distribución ActiveState de Perl, use el comando ppm .
Parece que ya tienes tu respuesta, pero pensé que iba a intervenir. Esto es lo que hago en algunos scripts en un Ubuntu (o servidor Debian)
#!/usr/bin/perluse warnings;use strict;#I've gotten into the habit of setting this on all my scripts, prevents weird path issues if the script is not being run by root
$ENV{'PATH'}='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin';#Fill this with the perl modules required for your projectmy@perl= qw(LWP::Simple XML::LibXML MIME::Lite DBI DateTimeConfig::TinyProc::ProcessTable);
chomp(my $curl =`which curl`);if(!$curl){ system('apt-get install curl -y > /dev/null');}
chomp(my $cpanm = system('/bin/bash','-c','which cpanm &>/dev/null'));#installs cpanm if missingif($cpanm){ system('curl -s -L http://cpanmin.us | perl - --sudo App::cpanminus');}#loops through required modules and installs them if missingforeachmy $x (@perl){eval"use $x";if($@){
system("cpanm $x");eval"use $x";}}
Esto funciona bien para mí, tal vez hay algo aquí que puedes usar.
cpan
.Respuestas:
En Unix :
generalmente comienzas cpan en tu shell:
# cpan
y escribe
install Chocolate::Belgian
o en forma corta:
cpan Chocolate::Belgian
En Windows :
Ejemplo:
# ppm
ppm> search net-smtp
ppm> install Net-SMTP-Multipart
ver ¿Cómo instalo módulos Perl? en las preguntas frecuentes de CPAN
Muchas distribuciones envían muchos módulos perl como paquetes.
apt-cache search 'perl$'
pacman -Ss '^perl-'
dev-perl
Usted debe siempre prefiere como usted se beneficia de seguridad automáticas () actualizaciones y la facilidad de eliminación . Esto puede ser bastante complicado con el cpan herramienta sí.
Para Gentoo hay una buena herramienta llamada g-cpan que construye / instala el módulo desde CPAN y crea un paquete Gentoo ( ebuild ) para usted.
fuente
ppm
utiliza guiones-
porque especifica la distribución que desea instalar, lo cual es mucho más honesto. Por ejemplo, si locpan
instalaLWP
,LWP::Simple
oLWP::UserAgent
instalará la distribuciónlibwww-perl
por usted. La mayoría de las distribuciones contienen un solo módulo con un nombre equivalente, pero hay varias excepciones como esaPruebe la aplicación :: cpanminus :
Es genial solo para instalar cosas. No proporciona ninguna de las funciones más complejas de CPAN o CPANPLUS, por lo que es fácil de usar, siempre que sepa qué módulo desea instalar. Si aún no tienes cpanminus, solo escribe:
para instalarlo
También es posible instalarlo sin usar cpan. El procedimiento básico de arranque es,
Para obtener más información, vaya a la página App :: cpanminus y consulte la sección sobre instalación.
fuente
cpan
para instalarApp::cpanminus
es un poco extraño. Las instrucciones de instalación normales implican un procedimiento de arranque de descargar una parte de él desde cpanmin.us y usarlo para instalar el resto. Esto evita la configuracióncpan
y la creación de un.cpan
directorio inútil (a partir de entonces) .cpanminus
desde la terminal. Me parececpanm
mejor quecpan
porque no pone registros de errores en la pantalla, sino que los almacena en archivos de registro temporales y proporciona la ruta en caso de errores.Observo a algunas personas que sugieren una ejecución de cpan en sudo. Solía ser necesario instalarlo en el directorio del sistema, pero las versiones modernas del shell CPAN le permiten configurarlo para usar sudo solo para la instalación. Esto es mucho más seguro, ya que significa que las pruebas no se ejecutan como root.
Si tiene un antiguo shell CPAN, simplemente instale el nuevo cpan ("instalar CPAN") y cuando vuelva a cargar el shell, debería solicitarle que configure estas nuevas directivas.
Hoy en día, cuando estoy en un sistema con un antiguo CPAN, lo primero que hago es actualizar el shell y configurarlo para que pueda hacer la mayor parte de mi trabajo de cpan como usuario normal.
Además, sugeriría encarecidamente que los usuarios de Windows investiguen la fresa Perl . Esta es una versión de Perl que viene con un shell CPAN preconfigurado y un compilador. También incluye algunos módulos Perl difíciles de compilar con sus dependencias externas de la biblioteca C, en particular XML :: Parser. Esto significa que puede hacer lo mismo que cualquier otro usuario de Perl cuando se trata de instalar módulos, y las cosas tienden a "simplemente funcionar" mucho más a menudo.
fuente
install CPAN
¿de donde?$sudo apt-get install cpan
?App::cpanminus
, es una alegría usarlo. Philip Potter lo sugiere en su respuesta aquí y puedes probar este Chas. Owens responde .Si está en Ubuntu y desea instalar el módulo perl preenvasado (por ejemplo, geo :: ipfree) intente esto:
fuente
Un par de personas mencionaron la utilidad cpan, pero es más que simplemente iniciar un shell. Simplemente dele los módulos que desea instalar y deje que funcione.
Si no le da ningún argumento, inicia el shell CPAN.pm. Esto funciona en Unix, Mac, y debería estar bien en Windows (especialmente Strawberry Perl).
Hay varias otras cosas que puede hacer con la herramienta cpan también. Aquí hay un resumen de las características actuales (que podrían ser más nuevas que la que viene con CPAN.pm y perl):
fuente
sudo perl -MCPAN -e 'install Foo'
fuente
Consulte también Sí, incluso puede usar CPAN . Muestra cómo puede usar CPAN sin tener acceso root o sudo.
fuente
Otto hizo un buena sugerencia . Esto también funciona para Debian, así como para cualquier otro derivado de Debian. Lo que falta es qué hacer cuando apt-cache search no encuentra algo.
Luego, cuando tenga un módulo aleatorio que desee instalar:
Esto le dará un paquete de Deb que puede instalar para obtener Some :: Random :: Module. Uno de los grandes beneficios aquí son las páginas man y los scripts de muestra, además del módulo en sí se colocarán en la ubicación de su distribución de elección. Si alguna vez sale la distribución con un paquete oficial para una versión más nueva de Some :: Random :: Module, se instalará automáticamente cuando realice la actualización.
fuente
Ya respondí y acepté la respuesta, pero de todos modos:
En mi humilde opinión, la forma más fácil de instalar módulos CPAN (en sistemas similares a Unix, y no tengo idea de las maravillas) es:
Lo anterior está instalando el "instalador de módulos CPAN de configuración cero" llamado
cpanm
. (La instalación puede tardar varios minutos; no interrumpa el proceso)y después, simplemente:
fuente
Muchas recomendaciones para
CPAN.pm
, lo cual es genial, pero si lo estás usandoPerl 5.10
, también tienes acceso a loCPANPLUS.pm
que esCPAN.pm
mejor.Y, por supuesto, está disponible
CPAN
para las personas que todavía usan versiones anteriores de Perl. ¿Por qué no intentarlo?fuente
Muchas veces sucede que el comando cpan install falla con el mensaje "hacer que la prueba haya devuelto un estado incorrecto, no se instalará sin fuerza"
En ese caso, la siguiente es la forma de instalar el módulo:
fuente
En ubuntu, la mayoría de los módulos perl ya están empaquetados, por lo que la instalación es mucho más rápida que la mayoría de los otros sistemas que tienen que compilarse.
Para instalar
Foo::Bar
en un símbolo del sistema, por ejemplo, generalmente solo debe hacer:Lamentablemente, no todos los módulos siguen esa convención de nomenclatura.
fuente
Incluso debería funcionar:
fuente
Use el comando cpan como
cpan Modulename
Para instalar dependencias automáticamente siga lo siguiente
Prefiero App :: cpanminus , instala dependencias automáticamente. Solo haz
fuente
2 maneras que conozco:
USANDO PPM:
Con Windows (ActivePerl) he usado ppm
desde la línea de comando escriba ppm. En el indicador de ppm ...
o
para obtener una lista de módulos foo disponibles. Escribe ayuda para todos los comandos
USANDO CPAN:
También puede usar CPAN como este ( * sistemas nix ):
te da un aviso
en el aviso ...
escriba h para obtener una lista de comandos para cpan
fuente
En Fedora puedes usar
siempre y cuando Fedora tenga un paquete existente para el módulo.
fuente
En
Fedora Linux
oEnterprise Linux
,yum
también rastrea las dependencias de la biblioteca perl. Entonces, si el módulo perl está disponible y algunos paquetes rpm exportan esa dependencia, instalará el paquete adecuado para usted.(muy probablemente el paquete perl-Chocolate-Belgian, o incluso el paquete ChocolateFactory)
fuente
La forma más fácil para mí es esto:
a) detección / resolución / instalación automática de dependencia recursiva
b) es un shell onliner, bueno para guiones de configuración
fuente
Si desea colocar el nuevo módulo en una ubicación personalizada que su shell cpan no esté configurado para usar, entonces quizás lo siguiente sea útil.
fuente
A veces puede usar
yum search foo
para buscar el módulo perl relativo, luego usaryum install xxx
para instalar.fuente
Solución segura
Muchas respuestas mencionan el uso de la
cpan
utilidad (que usaCPAN.pm
) sin una palabra sobre seguridad. Por defecto,CPAN
2.27 y las configuraciones anterioresurllist
usan una URL http (es decir, http://www.cpan.org/ ), que permite ataques MITM, por lo tanto, es inseguro. Esto es lo que se usa para descargar losCHECKSUMS
archivos, por lo que debe cambiarse a una URL segura (por ejemplo, https://www.cpan.org/ ).Entonces, después de ejecutar cpan y aceptar la configuración predeterminada, debe modificar el
MyConfig.pm
archivo generado (se genera la ruta completa) de la siguiente manera. Reemplazarpor
Nota: https no es suficiente; También necesita un sitio web en el que pueda confiar. Por lo tanto, tenga cuidado si desea elegir un espejo arbitrario.
Entonces puedes usar
cpan
de la manera habitual.Mi informe de error en rt.cpan.org sobre la URL insegura.
fuente
https://www.cpan.org/
).En Windows con la distribución ActiveState de Perl, use el comando ppm .
fuente
Simplemente ejecutar
cpan Foo::Bar
en shell serviría el propósito.fuente
Parece que ya tienes tu respuesta, pero pensé que iba a intervenir. Esto es lo que hago en algunos scripts en un Ubuntu (o servidor Debian)
Esto funciona bien para mí, tal vez hay algo aquí que puedes usar.
fuente