2009-03-05 35 views

Respuesta

7

Si descarga el código fuente, generalmente tendrá un Makefile.PL. Ejecutas "perl Makefile.PL; make; make test; make install" y se compilará e instalará para ti.

Obviamente, si no está utilizando CPAN.pm, tendrá que ocuparse de las dependencias usted mismo.

Además, si la razón por la que no puede usar CPAN.pm es que no tiene permiso para instalar en/usr/lib/perl, puede forzar que CPAN.pm se instale localmente, pero se me olvida cómo hacerlo.

+1

O para Module :: Build based distributions: perl Build.PL; perl Build; perl Prueba de compilación; perl Build install – ysth

+2

Ejecutar "o conf init" en el shell CPAN es la forma más sencilla de reconfigurar todo. – Schwern

+0

Puede establecer el valor para makepl_arg y buildpl_arg para establecer los valores que desee en tiempo de compilación. Ver la documentación de CPAN.pm. –

0

Si el archivo .pm es puro Perl y no necesita compilarse, puede simplemente ponerlo en la carpeta lib de la aplicación y usarlo normalmente.

+0

Para aclarar, debe ser la carpeta lib de su aplicación, no la carpeta lib de Perl del sistema. La adición manual de archivos a su sistema perl lib es una mera petición de dependencia más adelante. – denkfaul

+0

Buen punto, editó mi respuesta. He colocado .pms en la carpeta perl libs, pero los he desarrollado y no tienen dependencias: D –

+0

Tengo UserAgent.pm. ¿Puedo simplemente ponerlo en la carpeta del programa? ¿Qué pasa si tiene dependencias? – lamcro

32

Si descarga el código fuente, y lea el archivo README. Esto probablemente le dirá que debe hacer

perl Makefile.PL 
make 
make test 
make install 

o

perl Build.PL 
./Build 
./Build test 
./Build install 
1

Si el problema no es el acceso de root, le recomiendo mirar local::lib y también para this webpage CPAN.pm y la instalación no root.

Pero para responder a la pregunta, CPAN o CPANPLUS son útiles, pero no son necesarios. Siempre puedes hacerlo a la antigua usanza como dice Leon, aunque por lo general es más fácil no hacerlo.

+0

También puede ejecutar "o conf init" para volver a realizar la configuración completa de CPAN. – Schwern

+0

Siempre que tengas un compilador decente y acceso a make, puedes iniciar local :: lib en tu directorio de inicio y no se requiere acceso a root. Por otro lado, he visto cajas de Solaris con compiladores bastante bloqueados que limitan la utilidad de este enfoque. – singingfish

3

Si está en una caja de Linux, una gran parte de los paquetes se puede obtener utilizando el administrador de paquetes incorporado. Por ejemplo, en un sistema Ubuntu, si desea instalar el módulo Perl PostgreSQL Harías simple:

sudo apt-get install libpg-perl 

Se puede ver una lista de los módulos de Ubuntu aquí: http://packages.ubuntu.com/hardy/perl/

encuentro que a menudo puedo adivinar los nombres yo mismo. No estoy seguro si esto ayuda en absoluto, pero para mí a menudo me resulta más fácil de usar que CPAN, ya que lo hace mucho mejor para resolver dependencias.

+1

El problema es que esto se instala en su sistema Perl. A menudo no quieres eso, incluso si piensas que sí. –

0

Si está utilizando Red Hat (Fedora, CentOS), debe usar RPM para las dependencias de Perl siempre que sea posible. Los paquetes de Perl son casi siempre llamados perl-Module-Name, p. Ej. perl-DBI, perl-Spreadsheet-WriteExcel, etc.

En Ubuntu, el esquema de nombres es libmodule-name-perl.

+0

El problema es que esto se instala en su sistema Perl. A menudo no quieres eso, incluso si piensas que sí. –

-1

Yo, como otros habrían sugerido usar CPAN.pm. Es muy fácil de usar y puede resolver cualquier dependencia asociada con el módulo que necesita automáticamente.

Por otro lado, sugiero que lea el documento perlmodinstall en perldoc ya que también proporciona detalles sobre otros sistemas operativos.

Saludos,

Jeff

+0

No es fácil de usar. ¿Alguna vez has intentado usar cpan.pm en MinGW? Es extremadamente difícil. Se queda sin memoria y simplemente falla, intenta instalar en directorios a los que no tiene permisos, o simplemente le hace demasiadas preguntas difíciles a las que no conoce las respuestas. – Dmitry

+0

No uso Windows, y nunca he probado MiniGW como resultado, pero parece que tiene sus propios problemas. Es posible que desee intentar ejecutar LInux en una máquina virtual con algo así como VirtualBox y ver cómo funciona para usted allí. – numberwhun

2

Ver aquí: How to install perl modules using CPAN without root

acabo de instalar esto en un servidor sin acceso root y CPAN hace todo automáticamente.

Pero si realmente quiere instalar un módulo sin CPAN y no tienen raíz (suponiendo que esto ya no quieres usar CPAN), puede hacerlo de la siguiente manera

perl Makefile.PL PREFIX=$HOME 
make 
make install 

Usted Tendrás que buscar dependencias tú mismo, así que es mejor usar CPAN.

0

Podemos instalar todos los módulos perl desde e incluso con su terminal en ubuntu. Si está utilizando un servidor ubuntu, ejecute el siguiente comando, 'sudo apt-get install' perl_module '' Los módulos que desea simplemente dan el nombre en "perl_module" significa que si desea instalar Apache2 :: Cookie lo hará estar en "libapreq2", por lo que tiene que dar como, "sudo apt-get install libapreq2"

-1

Si estás preguntando esto porque usted está teniendo problemas con CPAN ... probablemente está quedando sin memoria RAM es por eso que no puedes usar CPAN.

Quizás no tenga un archivo de intercambio. Prueba esto:

$ sudo su 
# dd if=/dev/zero of=/swap bs=1M count=1k # create a 1GB file 
# mkswap /swap 
# swapon /swap 

De lo contrario ... dejar de algunos servicios.

$ sudo service mysql stop 
$ sudo service nginx stop 

... Y vuelve a intentarlo

$ cpan install CPAN 
$ cpan install MIME::Lite::TT::HTML 
+0

Para el detractor: deje de ser tan anal sobre la pregunta literal, hay una pregunta detrás de cada pregunta y en este caso una válida es: ¿por qué CPAN no está funcionando, porque no le dice, simplemente falla y yo ' Sólo lo he visto fallar en baja RAM y eso ocurre con mayor frecuencia si no tienes intercambio. – dagelf

Cuestiones relacionadas