NOMBRE
perlmodinstall - Instalación de módulos de CPAN
DESCRIPCIÓN
Un módulo se puede definir como la unidad fundamental de código Perl reutilizable; encontrará más información en perlmod. Si desarrolla código Perl que considera que puede ser útil para otros programadores, debería registrarse como desarrollador Perl en http://www.cpan.org/modules/04pause.html y subir el código a CPAN. CPAN es la abreviatura de Comprehensive Perl Archive Network, una red de almacenamiento de recursos de Perl a la que se tiene acceso a través de http://www.cpan.org/ y en la que se pueden realizar búsquedas desde http://search.cpan.org/.
Este documento explica lo que hay que hacer para descargar e instalar módulos de CPAN.
PREÁMBULO
Primero debe asegurarse de que el módulo no está instalado en el sistema. Ejecute perl -MFoo -e 1
(reemplace "Foo" por el nombre del módulo; por ejemplo, perl -MCGI::Carp -e 1
).
Si no aparece un mensaje de error, significa que ya tiene el módulo instalado. Si ve un mensaje de error, puede ser que el módulo esté instalado pero no esté en la ruta (que puede ver ejecutando perl -e "print qq(@INC)"
). En lo sucesivo supondremos que no tiene el módulo instalado y que lo ha encontrado en CPAN.
Así pues, ahora tiene un archivo con la extensión .tar.gz (o .zip, aunque esto es menos frecuente). Y sabe que dentro hay un módulo interesantísimo. A continuación debe realizar cuatro pasos:
- DESCOMPRIMIR el archivo
- DESEMPAQUETAR el archivo en un directorio
- COMPILAR el módulo (a veces no es necesario)
- INSTALAR el módulo.
Veamos cómo se realizan estos pasos en los distintos sistemas operativos. Leer esta información no le exime de la lectura de los archivos README e INSTALL incluidos en un módulo.
También debe tener en cuenta que, aunque estas instrucciones son específicas de la instalación del módulo en el repositorio de módulos Perl de su sistema, puede instalar un módulo en cualquier directorio que desee. Por ejemplo, en lugar de perl Makefile.PL
, puede ejecutar perl Makefile.PL PREFIX=/mi/directorio_perl
para instalar los módulos en /mi/directorio_perl
. Para poder usar estos módulos en sus programas Perl, debe agregar use lib "/mi/directorio_perl/lib/site_perl";
al principio del programa o, en algunos casos, simplemente use "/mi/directorio_perl";
. Si usa un sistema en el que la instalación de módulos en los directorios que ve al ejecutar perl -e "print qq(@INC)"
requiere privilegios de acceso de superusuario/raíz, posiblemente prefiera instalar los módulos en un directorio local (como su directorio personal) y usar este enfoque.
Si usa un sistema Unix o similar:
Puede usar el módulo CPAN de Andreas Koenig ( http://www.cpan.org/modules/by-module/CPAN ) para automatizar los siguientes pasos, desde la descompresión hasta la instalación.
A. DESCOMPRIMIR
Ejecute
gzip -d mimodulo.tar.gz
para descomprimir el móduloPuede obtener gzip desde ftp://prep.ai.mit.edu/pub/gnu/
O bien, puede combinar este paso con el siguiente para ahorrar espacio en disco:
gzip -dc mi_modulo.tar.gz | tar -xof -
B. DESEMPAQUETAR
Desempaquete el resultado con
tar -xof mimodulo.tar
C. COMPILAR
Entre en el directorio que acaba de crear y escriba:
perl Makefile.PL make test
o bien
perl Makefile.PL PREFIX=/mi/directorio_perl
para instalarlo localmente. (Recuerde que si hace esto, tendrá que agregar
use lib "/mi/directorio_perl";
cerca del principio de los programas que utilicen este módulo).D. INSTALAR
Sin salir de ese directorio, escriba:
make install
Asegúrese de que tiene los permisos adecuados para instalar el módulo en el directorio de biblioteca de Perl 5. Normalmente necesitará privilegios de usuario raíz.
Esto es todo lo que tiene que hacer en los sistemas Unix con vinculación dinámica. La mayoría de los sistemas Unix disponen de vinculación dinámica. Si no fuera el caso del suyo, o si por otra razón tiene un perl vinculado estáticamente y el módulo requiere compilación, tendrá que compilar un nuevo binario de Perl que incluya el módulo. Para esto también necesitará privilegios de usuario raíz.
Si usa ActivePerl (Win95/98/2K/NT/XP, Linux, Solaris):
En primer lugar, escriba
ppm
en una consola y vea si el módulo está disponible en alguno de los repositorios de PPM de ActiveState. Si es así, puede instalarlo conppm
y omitir los pasos siguientes. Es posible que las instrucciones de CPAN especificadas en la sección sobre "Unix o Linux" anterior también funcionen; haga la prueba. De lo contrario, tendrá que realizar los pasos siguientes.A. DESCOMPRIMIR
Puede usar el software shareware WinZip (http://www.winzip.com) para descomprimir y desempaquetar el módulo.
B. DESEMPAQUETAR
Si utilizó WinZip, ya estará desempaquetado.
C. COMPILAR
Necesitará la utilidad
nmake
, disponible en http://download.microsoft.com/download/vc15/Patch/1.52/W95/EN-US/nmake15.exe, o dmake, disponible en CPAN: http://search.cpan.org/dist/dmake/¿Hay que compilar el módulo (es decir, contiene archivos con la extensión .xs, .c, .h, .y, .cc, .cxx o .C)? En ese caso la cosa se complica, ya que tendrá que encargarse de la compilación (algo que no es tarea fácil en Windows). Necesitará un compilador (por ejemplo, Visual C++). Como alternativa, puede descargar un paquete PPM precompilado desde ActiveState: http://aspn.activestate.com/ASPN/Downloads/ActivePerl/PPM/
Entre en el directorio que acaba de crear y escriba:
perl Makefile.PL nmake test D. INSTALAR
Sin salir de ese directorio, escriba:
nmake install
Si usa un equipo Macintosh con MacOS "Classic" y MacPerl:
A. DESCOMPRIMIR
En primer lugar, asegúrese de que tiene instalada la distribución más reciente de cpan-mac ( http://www.cpan.org/authors/id/CNANDOR/ ), un módulo que contiene las utilidades necesarias para realizar todos los pasos. Lea atentamente las instrucciones de cpan-mac e instálelo. Si prefiere no utilizar cpan-mac por alguna razón, abajo se indican algunas alternativas.
Una vez instalado cpan-mac, coloque el archivo comprimido del módulo en el droplet untarzipme, que lo descomprimirá y desempaquetará.
O bien, puede utilizar el programa shareware StuffIt Expander ( http://my.smithmicro.com/mac/stuffit/ ) o el programa gratuito MacGzip ( http://persephone.cps.unizar.es/general/gente/spd/gzip/gzip.html ).
B. DESEMPAQUETAR
Si usa untarzipme o StuffIt, ya se habrá extraído el contenido. O bien, puede utilizar el software gratuito suntar o Tar ( http://hyperarchive.lcs.mit.edu/HyperArchive/Archive/cmp/ ).
C. COMPILAR
Compruebe el contenido de la distribución. Lea la documentación del módulo en busca de razones que impidan su uso con MacPerl. Vea si contiene archivos .xs y .c, que normalmente indican que no se puede instalar la distribución sin compilarla antes (vea "PORTABILIDAD").
D. INSTALAR
Si usa cpan-mac, simplemente coloque la carpeta en el droplet installme y ya podrá usar el módulo.
O bien, si no usa cpan-mac, haga un poco de trabajo manual.
Asegúrese de que los saltos de línea de los módulos están en el formato de Mac, no en el de Unix. Si no fuera así, es posible que no los haya descomprimido correctamente. Compruebe la configuración de sus herramientas para descomprimir y desempaquetar; asegúrese de que traducen correctamente los archivos de texto.
Como último recurso, puede ejecutar el siguiente comando perl de una sola línea:
perl -i.bak -pe 's/(?:\015)?\012/\015/g' <nombres de los archivos>
donde <nombres de los archivos> son los archivos de código fuente.
A continuación, mueva los archivos (probablemente sólo los archivos .pm, aunque puede que tenga que mover otros archivos; revise la documentación del módulo) hasta su destino final, que probablemente sea
$ENV{MACPERL}site_lib:
(es decir,HD:Carpeta MacPerl:site_lib:
). Puede agregar nuevas rutas a los valores predeterminados de@INC
a través del elemento de menú Preferencias de la aplicación MacPerl ($ENV{MACPERL}site_lib:
se agrega automágicamente). Cree las estructuras de directorios necesarias (es decir, paraMi::Modulo
, cree$ENV{MACPERL}site_lib:Mi:
y coloqueModulo.pm
en ese directorio).A continuación, ejecute el siguiente script (o algo parecido):
#!perl -w use AutoSplit; my $dir = "${MACPERL}site_perl"; autosplit("$dir:Mi:Modulo.pm", "$dir:auto", 0, 1, 1);
Si usa una versión DJGPP de DOS:
A. DESCOMPRIMIR
djtarx ( ftp://ftp.delorie.com/pub/djgpp/current/v2/ ) descomprimirá y desempaquetará.
B. DESEMPAQUETAR
Vea arriba.
C. COMPILAR
Entre en el directorio que acaba de crear y escriba:
perl Makefile.PL make test
Necesitará los paquetes indicados en el archivo README.dos incluido en la distribución de Perl.
D. INSTALAR
Sin salir de ese directorio, escriba:
make install
Necesitará los paquetes indicados en el archivo README.dos incluido en la distribución de Perl.
Si usa OS/2:
Obtenga el paquete de desarrollo EMX y gzip/tar en Hobbes ( http://hobbes.nmsu.edu ) o Leo ( http://www.leo.org ), y siga las instrucciones para Unix.
Si usa VMS:
Al descargar el módulo desde CPAN, guarde el archivo con la extensión
.tgz
en lugar de.tar.gz
. Debe reemplazar los demás puntos que haya en el nombre del archivo por guiones bajos. Por ejemplo, al descargar deberá cambiar el nombreMi-Modulo-1.33.tar.gz
porMi-Modulo-1_33.tgz
.A. DESCOMPRIMIR
Escriba
gzip -d Mi-Modulo.tgz
o bien, para módulos comprimidos, escriba
unzip Mi-Modulo.zip
Ejecutables para gzip, zip y VMStar:
http://www.hp.com/go/openvms/freeware/
y su código fuente:
http://www.fsf.org/order/ftp.html
Tenga en cuenta que la herramienta gzip/gunzip de GNU no es lo mismo que la herramienta zip/unzip de Info-ZIP. La primera es una simple herramienta de compresión; la segunda permite crear archivos de almacenamiento de varios archivos.
B. DESEMPAQUETAR
Si usa VMStar:
VMStar xf Mi-Modulo.tar
O bien, si es aficionado a la sintaxis de comandos VMS:
tar/extract/verbose Mi_Modulo.tar
C. COMPILAR
Asegúrese de que dispone de MMS (de Digital) o el software gratuito MMK ( disponible en MadGoat, en http://www.madgoat.com ). A continuación, ejecute el comando siguiente para crear el archivo DESCRIP.MMS del módulo:
perl Makefile.PL
Ya está listo para compilar:
mms test
Si usa MMK, cambie
mmk
pormms
.D. INSTALAR
Escriba
mms install
Si usa MMK, cambie
mmk
pormms
.Si usa MVS:
Introduzca el archivo .tar.gz en un HFS como binario; no lo traduzca de ASCII a EBCDIC.
A. DESCOMPRIMIR
Ejecute
gzip -d mimodulo.tar.gz
para descomprimir el móduloPuede obtener gzip en http://www.s390.ibm.com/products/oe/bpxqp1.html
B. DESEMPAQUETAR
Desempaquete el resultado con
pax -o to=IBM-1047,from=ISO8859-1 -r < mimodulo.tar
Los pasos COMPILAR e INSTALAR son idénticos a los de Unix. Los archivos Makefile generados por algunos módulos funcionan mejor con GNU make, que está disponible en http://www.mks.com/s390/gnu/
PORTABILIDAD
Tenga en cuenta que no todos los módulos funcionarán en todas las plataformas. Vea perlport para obtener más información sobre problemas de portabilidad. Lea la documentación para ver si el módulo funciona en su sistema. Hay básicamente tres tipos de módulos que no funcionan en todas las plataformas sin acciones adicionales (es posible que estos tipos se solapen):
Los que deberían, pero no lo hacen. Habría que arreglarlos; debe ponerse en contacto con el autor o incluso enviarle un parche.
Los que deben ser compilados, cuando la plataforma de destino no incluye compiladores. (Estos módulos contienen, por lo general, archivos .xs o .c). Quizás sea capaz de encontrar los binarios en CPAN o en otro lugar, o puede que prefiera obtener los compiladores e intentar la compilación (en ese caso, no olvide publicar luego el binario para regocijo de otras almas desventuradas).
Los que se destinan a una plataforma específica (como los módulos Win32::). Si el módulo se destina específicamente a una plataforma diferente a la suya, lo más probable es que no consiga instalarlo.
Consulte la información de CPAN Testers para comprobar si se espera que el módulo funcione en su plataforma en caso de que no se comporte de la manera esperada, o si no está seguro de si un módulo funcionará en su plataforma. Si el módulo que desea no está en la lista, puede probarlo usted mismo y comunicar el resultado al grupo de CPAN Testers, puede unirse al grupo de CPAN Testers o puede solicitar que prueben ese módulo.
http://testers.cpan.org/
UNA COSA MÁS
Si tiene alguna sugerencia relativa a esta página, le agradecería que me lo comunicara. No deseo recibir mensajes de petición de ayuda para instalar módulos. Hay demasiados módulos y muy pocos Orwants; no puede resolver, ni tan siquiera contestar, todas las dudas. Debe ponerse en contacto con el autor del módulo o enviar un mensaje a comp.lang.perl.modules; también puede pedir ayuda a alguien que esté familiarizado con el uso de Perl en su sistema operativo.
AUTOR
Jon Orwant
orwant@medita.mit.edu
con la ayuda inestimable de Chris Nandor, y la valiosa ayuda de Brandon Allbery, Charles Bailey, Graham Barr, Dunlop Domingo, Hietaniemi Jarkko, Holzman Ben, Tom Horsley, Nick Ing-Simmons, J. Tuomas Lukka, Laszlo Molnar, Olsen Alan, Peter Prymmer, Gurusamy Sarathy, Spalinger Christoph, Sugalski Dan, Larry Virden y Zakharevich Ilya.
Primera versión: 22 de julio de 1998. Última revisión: 21 de noviembre de 2001.
COPYRIGHT
Copyright (C) 1998, 2002, 2003 Jon Orwant. Todos los derechos reservados.
Puede distribuir este documento en los mismos términos que Perl.
TRADUCTORES
Joaquín Ferrero (Tech Lead)
Enrique Nell (Language Lead)