modules manager library cpanminus perl install cpan

manager - ¿Cuál es la forma más fácil de instalar un módulo Perl perdido?



linux install cpan module (23)

Me sale este error:

Can''t locate Foo.pm in @INC

¿Hay una manera más fácil de instalarlo que descargar, quitar el sello, hacer, etc.?


2 formas que conozco:

USANDO PPM:

Con Windows (ActivePerl) he usado ppm

desde la línea de comando, escriba ppm. En el indicador de ppm ...

ppm> install foo

o

ppm> search foo

para obtener una lista de módulos Foo disponibles. Escriba ayuda para todos los comandos

USANDO CPAN:

también puedes usar CPAN como este ( * nix systems ):

perl -MCPAN -e ''shell''

te trae un aviso

cpan>

en el momento ...

cpan> install foo (again to install the foo module)

escriba h para obtener una lista de comandos para cpan


Algunas veces puedes usar el yum search foo para buscar el módulo perl relativo, luego usa yum install xxx para instalarlo.


En Fedora Linux o Enterprise Linux , yum también rastrea las dependencias de la biblioteca perl. Entonces, si el módulo perl está disponible, y algún paquete de rpm exporta esa dependencia, instalará el paquete adecuado para usted.

yum install ''perl(Chocolate::Belgian)''

(Probablemente el paquete Perl-Chocolate-Belgian, o incluso el paquete de ChocolateFactory)


En Fedora puedes usar

# yum install foo

siempre que Fedora tenga un paquete existente para el módulo.


En Windows con la distribución ActiveState de Perl, use el comando ppm .


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 deben compilarse.

Para instalar Foo::Bar en un comando de comando, por ejemplo, generalmente lo hace:

sudo apt-get install libfoo-bar-perl

Lamentablemente, no todos los módulos siguen esa convención de nombres.


Incluso debería funcionar:

cpan -i module_name


La forma más fácil para mí es esta:

PERL_MM_USE_DEFAULT=1 perl -MCPAN -e ''install DateTime::TimeZone''

a) detección / resolución / instalación de dependencia recursiva automática

b) es un shell onliner, bueno para setup-scripts


Muchas recomendaciones para CPAN.pm , lo cual es genial, pero si está usando Perl 5.10 , también tiene acceso a CPANPLUS.pm que es como CPAN.pm pero mejor.

Y, por supuesto, está disponible en CPAN para las personas que todavía usan versiones anteriores de Perl. Por qué no probar:

$ cpan CPANPLUS


Muchas veces ocurre que el comando de instalación de cpan falla con el mensaje "la prueba ha devuelto un estado incorrecto, no se instalará sin fuerza"

En ese caso, seguir es la forma de instalar el módulo:

perl -MCPAN -e "CPAN::Shell->force(qw(install Foo::Bar));"


Noto que algunas personas sugieren una carrera por debajo de sudo. Eso solía ser necesario para instalar en el directorio del sistema, pero las versiones modernas del shell CPAN le permiten configurarlo para usar sudo solo para instalarlo. Esto es mucho más seguro, ya que significa que las pruebas no se ejecutan como root.

Si tiene un shell CPAN antiguo, simplemente instale el nuevo cpan ("install CPAN") y cuando vuelva a cargar el shell, debería pedirle que configure estas nuevas directivas.

Hoy en día, cuando estoy en un sistema con un CPAN antiguo, lo primero que hago es actualizar el shell y configurarlo para que pueda hacer la mayor parte de mi trabajo como usuario normal.

Además, recomiendo encarecidamente a los usuarios de Windows que investiguen la fresa Perl . Esta es una versión de Perl que viene empaquetada con un shell CPAN preconfigurado y un compilador. También incluye algunos módulos Perl difíciles de compilar con sus dependencias externas de biblioteca C, especialmente 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 "funcionar" mucho más a menudo.


Otto hizo una buena sugerencia . Esto también funciona para Debian, así como para cualquier otro derivado de Debian. La pieza faltante es qué hacer cuando la búsqueda apt-cache no encuentra algo.

$ sudo apt-get install dh-make-perl build-essential apt-file $ sudo apt-file update

Luego, cuando tengas un módulo aleatorio que deseas instalar:

$ cd ~/some/path $ dh-make-perl --build --cpan Some::Random::Module $ sudo dpkg -i libsome-random-module-perl-0.01-1_i386.deb

Esto le dará un paquete Deb que puede instalar para obtener Some :: Random :: Module. Uno de los grandes beneficios aquí son las páginas de manual y las secuencias de comandos de ejemplo, además del módulo en sí, se colocarán en la ubicación de elección de su distribución. Si la distribución alguna vez sale con un paquete oficial para una versión más nueva de Some :: Random :: Module, se instalará automáticamente cuando obtenga una actualización.


Parece que ya tienes tu respuesta, pero pensé que me gustaría entrar. Esto es lo que hago en algunos guiones en un Ubuntu (o servidor Debian)

#!/usr/bin/perl use 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 project my @perl = qw(LWP::Simple XML::LibXML MIME::Lite DBI DateTime Config::Tiny Proc::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 missing if($cpanm){ system(''curl -s -L http://cpanmin.us | perl - --sudo App::cpanminus''); } #loops through required modules and installs them if missing foreach my $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.


Prueba App::cpanminus :

# cpanm Chocolate::Belgian

Es genial solo para obtener cosas instaladas. 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 en absoluto. El procedimiento básico de arranque es,

curl -L http://cpanmin.us | perl - --sudo App::cpanminus

Para obtener más información, vaya a la página App :: cpanminus y mire la sección de instalación.


Si desea colocar el nuevo módulo en una ubicación personalizada que su cpan shell no está configurado para usar, entonces tal vez, lo siguiente será útil.

#wget <URL to the module.tgz> ##unpack perl Build.PL ./Build destdir=$HOME install_base=$HOME ./Build destdir=$HOME install_base=$HOME install


Si estás en Ubuntu y quieres instalar el módulo perl preempaquetado (por ejemplo, geo :: ipfree) prueba esto:

$ apt-cache search perl geo::ipfree libgeo-ipfree-perl - A look up country of ip address Perl module $ sudo apt-get install libgeo-ipfree-perl


Simplemente ejecutando cpan Foo::Bar en shell serviría para el propósito.



Un par de personas mencionaron la utilidad cpan, pero es más que simplemente iniciar un shell. Solo dele los módulos que desea instalar y deje que funcione.

$prompt> cpan Foo::Bar

Si no le das 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 puedes hacer con la herramienta de cpan también. Aquí hay un resumen de las características actuales (que podría ser más reciente que el que viene con CPAN.pm y perl):

-a Creates the CPAN.pm autobundle with CPAN::Shell->autobundle.

-Un módulo [módulo ...] Muestra los mantenedores principales para los módulos especificados

-C module [module ...] Muestra los archivos de Cambios para los módulos especificados

-D module [module ...] Muestra los detalles del módulo. Esto imprime una línea para cada módulo desactualizado (es decir, módulos instalados localmente pero tienen versiones más nuevas en CPAN). Cada línea tiene tres columnas: nombre del módulo, versión local y versión de CPAN.

-L autor [autor ...] Enumere los módulos por los autores especificados.

-h Imprime un mensaje de ayuda.

-O Muestra los módulos desactualizados.

-r Recompila módulos cargados dinámicamente con CPAN :: Shell-> recompilar.

-v Imprime la versión de script y la versión de CPAN.pm.


Use el comando cpan Modulename como cpan Modulename

$ cpan HTML::Parser

Para instalar dependencias automáticamente siga el siguiente

$ perl -MCPAN -e shell cpan[1]> o conf prerequisites_policy follow cpan[2]> o conf commit exit

Prefiero App::cpanminus , instala dependencias automáticamente. Solo haz

$ cpanm HTML::Parser


Ya respondió y aceptó la respuesta, pero de todos modos:

En mi humilde opinión, la manera más fácil de instalar los módulos de CPAN (en sistemas tipo Unix, y no tener idea de las wondows) es:

curl -L http://cpanmin.us | perl - --sudo App::cpanminus

Lo anterior es instalar el "instalador de módulos de CPAN de configuración cero" llamado cpanm . (Puede tomar varios minutos para instalar, no interrumpa el proceso)

y después - simplemente:

cpanm Foo cpanm Module::One cpanm Another::Module


sudo perl -MCPAN -e ''install Foo''


En Unix :

generalmente comienzas cpan en tu caparazón:

# cpan

y tipo

install Chocolate::Belgian

o en forma corta:

cpan Chocolate::Belgian

En Windows :

Si está utilizando ActivePerl en Windows, el PPM (Perl Package Manager) tiene muchas de las mismas funciones que CPAN.pm.

Ejemplo:

# ppm
ppm> search net-smtp
ppm> install Net-SMTP-Multipart

ver ¿Cómo instalo los módulos de Perl? en las preguntas frecuentes de CPAN

Muchas distribuciones envían muchos módulos perl como paquetes.

  • Gentoo: categoría dev-perl
  • Debian: apt-cache search ''perl$''

Siempre debe preferirlos ya que se beneficia de las actualizaciones automáticas (de seguridad) y la facilidad de eliminación . Esto puede ser bastante complicado con la herramienta de cpan .

Para Gentoo hay una buena herramienta llamada dev-perl que construye / instala el módulo desde CPAN y crea un paquete de Gentoo ( ebuild ) para usted.