Facebookfacebook Twitter Emailmail Imprimirprint
Jueves 28 de marzo de 2024
Santoral:
Octavio
Otros:
Semana:
13
Día año:
88/366 (24%)
U.F.:
Sin información
IPC:
Sin información
Dolar:
Sin información
Euro:
Sin información
Bitcoin:
U$ {bitcoin}
mindicador.cl

Instalación y Configuración de CPAN

Completa biblioteca de módulos Perl

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

yum install make gcc kernel-devel perl-devel curl perl-YAML

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:

yum -y install perl-CPAN

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

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 LWP
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:

cpan CPAN::Meta CPAN
Escrito por: Luis Hernán de la Barra, 15/01/2015
Si tiene interés por alguno de éstos servicios u otro similar, por favor llene el formulario de contacto

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