Una de las razones para querer instalar módulos del repositorio CPAN de
Perl utilizando, a su vez, el módulo cpan
, es que los módulos están
más actualizados que en los paquetes de los repositorios. Para
conseguirlo, podemos seguir los siguientes pasos
Necesitamos tener instalado el paquete build-essential
. Lanzamos la
consola CPAN, con privilegios de administrador:
$ sudo perl -MCPAN -e shell
o también podríamos ejecutar:
$ sudo cpan
Si no tuviéramos permisos, parece que también es posible instalar
módulos de Perl sin tener privilegios de administrador, mediante el
módulo local::lib
.
Una vez en la consola CPAN, el comando help
nos muestra información
acerca de varios comandos disponibles.
cpan> help
Display Information (ver 1.9600)
command argument description
a,b,d,m WORD or /REGEXP/ about authors, bundles, distributions, modules
i WORD or /REGEXP/ about any of the above
ls AUTHOR or GLOB about files in the author's directory
(with WORD being a module, bundle or author name or a distribution
name of the form AUTHOR/DISTRIBUTION)
Download, Test, Make, Install...
get download clean make clean
make make (implies get) look open subshell in dist directory
test make test (implies make) readme display these README files
install make install (implies test) perldoc display POD documentation
Upgrade
r WORDs or /REGEXP/ or NONE report updates for some/matching/all modules
upgrade WORDs or /REGEXP/ or NONE upgrade some/matching/all modules
Pragmas
force CMD try hard to do command fforce CMD try harder
notest CMD skip testing
Other
h,? display this menu ! perl-code eval a perl command
o conf [opt] set and query options q quit the cpan shell
reload cpan load CPAN.pm again reload index load newer indices
autobundle Snapshot recent latest CPAN uploads
Ahora, seguimos los siguientes pasos. Ejecutamos:
cpan> make install
Actualizamos nuestro CPAN:
cpan> install Bundle::CPAN
cpan> reload cpan
(CPAN.....................................v1.9600)
(CPAN::Author..........v5.5001)
(CPAN::CacheMgr.........v5.5001)
(CPAN::Complete......v5.5)
(CPAN::Debug.v5.5001)
(CPAN::DeferredCode.v5.50)
(CPAN::Distribution................................................................................v1.9602)
(CPAN::Distroprefs..................................................v6)
(CPAN::Distrostatus......v5.5)
(CPAN::Exception::RecursiveDependency..v5.5)
(CPAN::Exception::yaml_not_installed....v5.5)
(CPAN::FTP..................v5.5005)
(CPAN::FTP::netrc.....v1.01)
(CPAN::HandleConfig..............v5.5003)
(CPAN::Index...........v1.9600)
(CPAN::InfoObj..........v5.5)
(CPAN::LWP::UserAgent...v1.9600)
(CPAN::Module...................................v5.5001)
(CPAN::Prompt..v5.5)
(CPAN::Queue............v5.5001)
(CPAN::Shell...............................................................v5.5002)
(CPAN::Tarzip...........v5.5011)(CPAN::Version........v5.5001)
398 subroutines redefined
cpan shell -- CPAN exploration and modules installation (v1.9600)
Enter 'h' for help.
Y ya podemos instalar cualquier módulo, por ejemplo:
cpan> install IO::Pty::Easy
Running install for module 'IO::Pty::Easy'
Running make for D/DO/DOY/IO-Pty-Easy-0.08.tar.gz
Para terminar la sesión:
cpan> exit
Lockfile removed.
Si queremos eliminar todos los módulos instalados basta con ejecutar:
$ rm -fr ~/.cpan
Las librerías de CPAN en los respositorios
Si queremos instalar las librerías usando el gestor de paquetes:
$ echo "XML::Simple" | perl -e '$x=<>; chomp($x); $x=~s/::/-/; $x=lc($x); print "lib$x-perl"' | xargs aptitude install
Este comando obtiene el nombre de la librería de los repositorios que contiene el módulo XML::Simple, convirtiendo el nombre del módulo a minúsculas, reemplazando los "::" por "-" y añadiendo el prefijo "lib".