Día del idioma español
Instalación y Configuración de CPAN
Introducción
CPAN es un repositorio donde se administran gran parte de los módulos de extención para Perl, como acceso a bases de datos o utilización de web services. Muchos de ellos, en general los más populares como bases de datos, se pueden encontrar como paquetes para CentOS a instalar con yum, pero aun hay muchos que nos pueden se de utilidad o se requiere una versión más actual.
Puede visitar la página oficial de CPAN en www.cpan.org
En general dichos módulos se disponibilizan para todo el servidor, por lo que se considera el uso de usuario root.
Requisitos
Existen módulos que requieren ser compilados en el equipo, por lo que se requieren de las herramientas de desarrollo de software, básicamente para lenguaje "C" y módulos de desarrollo para el Kernel y el propio Perl, por lo que se recomienda comenzar con la instalación de los siguientes paquetes CentOS (ejecutar como root).
Algunos módulos Perl podrán requerir otros paquetes, pero con lo anterior se cubre la gran mayoría de los requisitos.
Instalación
La instalación se realiza simplemente como paquete de CentOS con:
Configuración
Acto seguido nos corresponde su configuración, donde nos consultará mediate terminal los diferentes parámetros que requiere, basta ejecutar como root cpan:
CPAN is the world-wide archive of perl resources. It consists of about 300 sites that all replicate the same contents around the globe. Many countries have at least one CPAN site already. The resources found on CPAN are easily accessible with the CPAN.pm module. If you want to use CPAN.pm, lots of things have to be configured. Fortunately, most of them can be determined automatically. If you prefer the automatic configuration, answer 'yes' below. If you prefer to enter a dialog instead, you can answer 'no' to this question and I'll let you configure in small steps one thing after the other. (Note: you can revisit this dialog anytime later by typing 'o conf init' at the cpan prompt.) Would you like me to configure as much as possible automatically? [yes]
Al responder "yes" (simplemente <ENTER>) se simplifica el proceso. Al finalizar nos deja con una línea de comando propia de cpan, de la cual salimos con el comando quit
Con ello podemos utilizar el comando cpan dando como argumento el nombre del módulo o múltiples módulos a instalar, los cuales podemos buscar en la propia página de cpan (indicada en introducción).
En éste punto se recomienda cargar los módulos de uso frecuente, por ejemplo partamos por LWP, utilizado para comunicación web, permitiendo posteriores de descargas de módulos directamente desde perl, ejecutamos como root en CentOS el comando:
CPAN: Storable loaded ok (v2.20) Going to read '/root/.cpan/Metadata' Database was generated on Thu, 15 Jan 2015 19:41:02 GMT Running install for module 'LWP' CPAN: YAML loaded ok (v0.70) Running make for M/MS/MSCHILLI/libwww-perl-6.08.tar.gz Warning: no success downloading '/root/.cpan/sources/authors/id/M/MS/MSCHILLI/libwww-perl-6.08.tar.gz.tmp2585'. Giving up on it. at /usr/share/perl5/CPAN/Distribution.pm line 379 LWP not available Trying with "/usr/bin/curl -L -f -s -S --netrc-optional -U ":"" to get "http://www.perl.org/CPAN/authors/id/M/MS/MSCHILLI/libwww-perl-6.08.tar.gz" CPAN: Digest::SHA loaded ok (v5.47) Trying with "/usr/bin/curl -L -f -s -S --netrc-optional -U ":"" to get "http://www.perl.org/CPAN/authors/id/M/MS/MSCHILLI/CHECKSUMS" Checksum for /root/.cpan/sources/authors/id/M/MS/MSCHILLI/libwww-perl-6.08.tar.gz ok libwww-perl-6.08/ libwww-perl-6.08/talk-to-ourself libwww-perl-6.08/Makefile.PL libwww-perl-6.08/Changes libwww-perl-6.08/lwpcook.pod libwww-perl-6.08/AUTHORS libwww-perl-6.08/README.SSL libwww-perl-6.08/META.yml libwww-perl-6.08/bin/ libwww-perl-6.08/bin/lwp-mirror libwww-perl-6.08/bin/lwp-download libwww-perl-6.08/bin/lwp-request libwww-perl-6.08/bin/lwp-dump libwww-perl-6.08/lwptut.pod libwww-perl-6.08/t/ libwww-perl-6.08/t/robot/ libwww-perl-6.08/t/robot/ua.t libwww-perl-6.08/t/robot/ua-get.t libwww-perl-6.08/t/TEST libwww-perl-6.08/t/local/ libwww-perl-6.08/t/local/autoload-get.t libwww-perl-6.08/t/local/protosub.t libwww-perl-6.08/t/local/http.t libwww-perl-6.08/t/local/autoload.t libwww-perl-6.08/t/local/get.t libwww-perl-6.08/t/live/ libwww-perl-6.08/t/live/jigsaw/ libwww-perl-6.08/t/live/jigsaw/md5.t libwww-perl-6.08/t/live/jigsaw/neg.t libwww-perl-6.08/t/live/jigsaw/md5-get.t libwww-perl-6.08/t/live/jigsaw/chunk.t libwww-perl-6.08/t/live/jigsaw/te.t libwww-perl-6.08/t/live/jigsaw/neg-get.t libwww-perl-6.08/t/live/jigsaw/auth-b.t libwww-perl-6.08/t/live/jigsaw/auth-d.t libwww-perl-6.08/t/live/online.t libwww-perl-6.08/t/live/apache-http10.t libwww-perl-6.08/t/README libwww-perl-6.08/t/net/ libwww-perl-6.08/t/net/http-timeout.t libwww-perl-6.08/t/net/http-post.t libwww-perl-6.08/t/net/http-get.t libwww-perl-6.08/t/net/cgi-bin/ libwww-perl-6.08/t/net/cgi-bin/timeout libwww-perl-6.08/t/net/cgi-bin/nph-slowdata libwww-perl-6.08/t/net/cgi-bin/slowread libwww-perl-6.08/t/net/cgi-bin/test libwww-perl-6.08/t/net/cgi-bin/moved libwww-perl-6.08/t/net/mirror.t libwww-perl-6.08/t/net/config.pl.dist libwww-perl-6.08/t/net/moved.t libwww-perl-6.08/t/net/proxy.t libwww-perl-6.08/t/base/ libwww-perl-6.08/t/base/ua.t libwww-perl-6.08/t/base/protocols.t libwww-perl-6.08/t/base/proxy.t libwww-perl-6.08/lib/ libwww-perl-6.08/lib/LWP.pm libwww-perl-6.08/lib/LWP/ libwww-perl-6.08/lib/LWP/Authen/ libwww-perl-6.08/lib/LWP/Authen/Basic.pm libwww-perl-6.08/lib/LWP/Authen/Digest.pm libwww-perl-6.08/lib/LWP/Authen/Ntlm.pm libwww-perl-6.08/lib/LWP/UserAgent.pm libwww-perl-6.08/lib/LWP/RobotUA.pm libwww-perl-6.08/lib/LWP/MemberMixin.pm libwww-perl-6.08/lib/LWP/Protocol.pm libwww-perl-6.08/lib/LWP/Protocol/ libwww-perl-6.08/lib/LWP/Protocol/gopher.pm libwww-perl-6.08/lib/LWP/Protocol/nntp.pm libwww-perl-6.08/lib/LWP/Protocol/loopback.pm libwww-perl-6.08/lib/LWP/Protocol/file.pm libwww-perl-6.08/lib/LWP/Protocol/data.pm libwww-perl-6.08/lib/LWP/Protocol/GHTTP.pm libwww-perl-6.08/lib/LWP/Protocol/nogo.pm libwww-perl-6.08/lib/LWP/Protocol/cpan.pm libwww-perl-6.08/lib/LWP/Protocol/mailto.pm libwww-perl-6.08/lib/LWP/Protocol/http.pm libwww-perl-6.08/lib/LWP/Protocol/ftp.pm libwww-perl-6.08/lib/LWP/ConnCache.pm libwww-perl-6.08/lib/LWP/Debug.pm libwww-perl-6.08/lib/LWP/Simple.pm libwww-perl-6.08/lib/LWP/DebugFile.pm libwww-perl-6.08/README libwww-perl-6.08/META.json libwww-perl-6.08/MANIFEST CPAN: File::Temp loaded ok (v0.22) CPAN.pm: Going to build M/MS/MSCHILLI/libwww-perl-6.08.tar.gz Can't connect: IO::Socket::INET: Bad hostname 'hope:54965' Test server timeout The can-we-talk-to-ourself test failed. Checking if your kit is complete... Looks good Warning: prerequisite Encode::Locale 0 not found. Warning: prerequisite File::Listing 6 not found. Warning: prerequisite HTML::Entities 0 not found. Warning: prerequisite HTML::HeadParser 0 not found. Warning: prerequisite HTTP::Cookies 6 not found. Warning: prerequisite HTTP::Daemon 6 not found. Warning: prerequisite HTTP::Date 6 not found. Warning: prerequisite HTTP::Negotiate 6 not found. Warning: prerequisite HTTP::Request 6 not found. Warning: prerequisite HTTP::Request::Common 6 not found. Warning: prerequisite HTTP::Response 6 not found. Warning: prerequisite HTTP::Status 6 not found. Warning: prerequisite LWP::MediaTypes 6 not found. Warning: prerequisite Net::HTTP 6.07 not found. Warning: prerequisite URI 1.10 not found. Warning: prerequisite URI::Escape 0 not found. Warning: prerequisite WWW::RobotRules 6 not found. Writing Makefile for LWP ---- Unsatisfied dependencies detected during ---- ---- MSCHILLI/libwww-perl-6.08.tar.gz ---- URI::Escape [requires] LWP::MediaTypes [requires] Encode::Locale [requires] HTTP::Status [requires] HTTP::Negotiate [requires] File::Listing [requires] HTML::Entities [requires] HTTP::Daemon [requires] Net::HTTP [requires] URI [requires] HTML::HeadParser [requires] HTTP::Cookies [requires] HTTP::Date [requires] HTTP::Request::Common [requires] HTTP::Response [requires] WWW::RobotRules [requires] HTTP::Request [requires] Shall I follow them and prepend them to the queue of modules we are processing right now? [yes]
Se observa la descarga del código fuente para el módulo, y valida sus requisitos, módulos que el mismo CPAN se encargará de descargar, compilar e instalar, similar a lo que realiza yum para CentOS. Bastará con responder con un <ENTER> para continuar con el proceso, e igualmente confirmar para los requisitos de los siguientes módulos.
También podemos proceder a actualizar el propio CPAN, ya que el provisto en los repositorios de CentOS no necesariamente se encuentra actualizado, aunque es suficiente. Ejecutamos el comando:
Generado por Sistema y almacenado en cache
Wyzer Luis Hernán de la Barra |
|
Teléfono: | +56995451689 |
WhatsApp: | +56995451689 |
E-Mail: | info@wyzer.cl |
Web: | www.wyzer.cl |