2008-09-15 13 views

Respuesta

152

En Unix:

por lo general se empiezan CPAN en la shell:

# cpan

y escriba

install Chocolate::Belgian

o en forma corta:

cpan Chocolate::Belgian

En Windows:

If you're using ActivePerl on Windows, the PPM (Perl Package Manager) has much of the same functionality as CPAN.pm.

Ejemplo:

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

ver How do I install Perl modules? en el FAQ CPAN

Muchas distribuciones enviar una gran cantidad de módulos de perl como paquetes.

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

Usted debe siempre ellos prefieren que se beneficiará de automática (seguridad) actualizaciones y la facilidad de extracción . Esto puede ser bastante complicado con la herramienta cpan.

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

+8

La forma abreviada es simplemente "cpan Chocolate :: Belgian" desde la línea de comandos :) –

+3

IIRC, el último ActivePerl ya no tiene ppm de línea de comandos, ahora abre una elegante GUI. – Kev

+6

Solo "ppm" abre la GUI, pero seguida de comandos permanece en la línea de comando. Entonces, "ppm help", "ppm install ...", etc. –

9

sudo perl -MCPAN -e 'install Foo'

20

Si estás en Ubuntu y que desea instalar el módulo Perl pre-envasados ​​(por ejemplo, geo :: ipfree) intente 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 
+0

Esto es genial. Gracias. –

1

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

3

2 maneras, que yo sepa:

USO PPM:

Con de Windows ppm (ActivePerl) He usado

del comando ppm tipo de línea. En el símbolo ppm ...

ppm> install foo 

o

ppm> search foo 

para obtener una lista de módulos foo disponibles. Tipo ayuda para todos los comandos

USO CPAN:

también se puede utilizar CPAN como esto (sistemas * nix):

perl -MCPAN -e 'shell' 

le consigue una pronta

cpan> 

en el indicador ...

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

tipo H para obtener una lista de comandos para CPAN

+1

También puede decir "$ cpan Foo :: Bar" para instalar directamente desde la línea de comandos. No es necesario un forro de una sola línea de lujo o CPAN. :) –

27

observo algunas personas sugieren una CPAN plazo bajo 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 la instalación. 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, debe solicitarle que configure estas nuevas directivas.

Actualmente, 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 strawberry 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.

+1

'instalar CPAN' desde donde? '$ sudo apt-get install cpan'? – isomorphismes

+1

@Lao Tzu: no, ya que CPAN es el módulo central de Perl y no está disponible como paquete DEB por separado. Creo que en la mayoría de las situaciones es incluso mejor usar 'App :: cpanminus', es una gran alegría usarlo. Philip Potter lo sugiere en su respuesta aquí y puedes probar [este Chas. Respuesta de Owens] (http://stackoverflow.com/questions/2980297/how-can-i-use-cpan-as-a-non-root-user). –

12

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 lo da ningún argumento de que comience la cáscara CPAN.pm. Esto funciona en Unix, Mac, y debería estar bien en Windows (especialmente Strawberry Perl).

También hay otras cosas que puedes hacer con la herramienta cpan.He aquí un resumen de las características actuales (que podría ser más reciente 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.

4

Un montón de recomendación para CPAN.pm, que es grande, pero si usted está utilizando Perl 5.10 entonces también tienes 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 
+0

Je, eso es lindo. Use CPAN.pm para reemplazarse con CPANPLUS. :) –

7

Otto hizo una good suggestion. 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 

Entonces cada vez que tenga un módulo de azar que desea 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 se puede instalar para conseguir un poco aleatorio :: :: Módulo. 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.

3

En Fedora puede utilizar

# yum install foo 

el tiempo que Fedora tiene un paquete existente para el módulo.

54

Trate App::cpanminus:

# cpanm Chocolate::Belgian 

Es muy bueno para conseguir justo instalado 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 ha recibido cpanminus, simplemente escriba:

# 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 más información vaya a la página de App :: cpanminus y mirar el apartado de instalación.

+5

Usar 'cpan' para instalar' App :: cpanminus' es un poco extraño. Las instrucciones de instalación normales implican un procedimiento de arranque de descargar una parte de http://cpanmin.us y usarlo para instalar el resto. Esto evita la configuración de 'cpan' y la creación de un (inútil)' .cpan' directorio. –

+0

En Ubuntu, puede instalar 'cpanminus' desde la terminal. Encuentro 'cpanm' mejor que' cpan' porque no coloca registros de errores en la pantalla sino que los almacena en archivos de registro temporales y proporciona la ruta en caso de errores. – user13107

+0

Recibo este error al intentar tu comando: ** No puedo ubicar strict.pm en @INC (puede que tengas que instalar el módulo estricto) (@INC contiene:/etc/perl ** –

3

Incluso debería funcionar:

cpan -i module_name 
6

ya ha respondido y aceptado respuesta - pero de todos modos:

mi humilde opinión, la forma más fácil de instalar módulos de CPAN (en sistemas Unix, y no tienen idea acerca de los wondows) es:

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

lo anterior se instalar el "CPAN configuración cero módulos instalador" llamado cpanm. (Puede tardar varios minutos para instalar - no romper el proceso)

y después de - simplemente:

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

Muchas veces ocurre que CPAN el comando de instalación falla con el mensaje como "make test había vuelto mal estado, no se instalará sin fuerza"

En ese caso siguiente es la manera de instalar el módulo:

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

Desafortunadamente esto produce: * * No se puede ubicar CPAN.pm en @INC (es posible que deba instalar el módulo CPAN) (@INC contiene:/etc/perl ** –

2

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 símbolo del commmand por ejemplo, por lo general sólo lo hacen:

sudo apt-get install libfoo-bar-perl 

Por desgracia, no todos los módulos de seguimiento que la convención de nombres.

1

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 
3

comando Uso CPAN como cpan Modulename

$ cpan HTML::Parser 

Para instalar las dependencias siguen automáticamente el siguiente

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

prefiero App::cpanminus, se instala automáticamente las dependencias. Eso sí,

$ cpanm HTML::Parser 
1

A veces se puede utilizar el yum search foo para buscar el módulo Perl relativa, a continuación, utilizar yum install xxx instalar.

2

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)' 

(muy probablemente Perl-chocolate-belga paquete, o paquete, incluso ChocolateFactory)

-1

simplemente ejecutando cpan Foo::Bar en el caparazón serviría a los fines.

1

parece que ya tienes tu respuesta, pero pensé que había que interrumpiría. Esto es lo que hago en algunos scripts 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([email protected]){ 
     system("cpanm $x"); 
     eval "use $x"; 
    } 
} 

Esto funciona bien para mí , tal vez hay algo aquí que puedes usar.

1

La manera más fácil para mí es la siguiente:

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

a) detección de la dependencia recursiva automática/resolver/instalar

b) es un onliner cáscara, buena para la configuración de los scripts

Cuestiones relacionadas