Preparando un entorno de desarrollo para Perl
febrero 20th, 2011 by Christian SánchezPor lo general al desarrollar con Perl, es necesario hacer uso de algunos módulos o librerías que nos facilitan bastante el trabajo, por que ofrecen funcionalidades listas para agregar a nuestros programas y nos ahorran bastante líneas de código (y muchas horas de trabajo que podemos invertir de mejor manera
).
Existen 2 formas básicas de instalar las librerías:
1- Usando las librerías empaquetadas provistas por nuestra
distribución de Linux
2- Directamente desde el repositorio de módulos CPAN
Para la primera opción podemos hacer uso del gestor de paquetes (synaptic o aptitude desde la línea de comandos en el caso de Debian y derivados), por ejemplo si quisieramos instalar uno de los módulos que maneja plantillas HTML en Perl HTML::Template podemos ejecutar desde la línea de comandos:
sudo aptitude install libhtml-template-perl
con eso se instala y configura el modulo y sus dependencias en nuestro sistema. Fácil y rápido, el problema es que muchas veces hay librerías que no podemos instalar de esta manera, o las versiones disponibles son algo antiguas. Cuando nos sucede esto, podemos recurrir a la 2da manera instalar los módulos directamente desde CPAN.
Para instalar los módulos desde CPAN necesitamos hacer uso del comando “cpan”, pero existen un par de problemas con este método: necesitamos tener permisos administrativos (quizás en nuestras máquinas no sea un
problema) y el otro inconveniente es que pueden existir conflictos entre las versiones de las librerías que descargamos y las que tengamos en nuestro sistema ya instaladas.
Pero existe una solución para esto, que nos ofrece la facilidad de instalar cualquier librería que necesitemos, y sin tener que lidiar con permisos administrativos y/o de versiones de librerías nativas del sistema: local::lib y App::cpanminus.
local::lib nos permite instalar las librerías que necesitemos en nuestro directorio home, en una carpeta llamada “perl5″, es prácticamente crear un entorno aislado del sistema, donde tendremos el control total de los módulos que instalemos. Su instalación y uso es bastante sencillo, les resumo los pasos necesarios:
- IMPORTANTE: hacer todos los pasos siguientes como un usuario sin privilegios, es decir su usuario normal, si lo hacen como usuario root no tendría mucho sentido
.
- Descargar el siguiente archivo en su carpeta home (o cualquier otra
de su preferencia): http://search.cpan.org/CPAN/authors/id/A/AP/APEIRON/local-lib-1.008001.tar.gz
- Descomprimir el archivo
- Entrar a la carpeta que se crea al descomprimir el archivo, desde la consola, por que vamos a necesitar ejecutar unos cuantos comandos.
- Ejecutamos el comando:
perl Makefile.PL --bootstrap
aparecerán algunas preguntas que podemos responder y dejar con los valores por defecto.
- Luego ejecutamos el comando:
make test && make install
- Necesitamos agregar las variables de entorno necesarias a nuestra sesión para que el interprete de Perl utilice las librerías de nuestra carpeta home y no las de el sistema, eso lo hacemos ejecutando el comando:
echo 'eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)' >>~/.bashrc
- Cerramos la consola que estamos usando, y abrimos una nueva para que los cambios puedan ser reconocidos en la nueva sesión.
Ya tenemos nuestro directorio personal para instalar módulos, ahora usamos App::cpanminus que se va a encargar de hacer el trabajo de instalación y configuración de los mismos:
- Necesitamos descargar el script para poder hacer la instalación:
curl -LO http://xrl.us/cpanm
- Le damos permisos de ejecución al script que acabamos de descargar:
chmod +x cpanm
- Ahora vamos a instalas nuestro primer modulo en el entorno de trabajo configurado con local::lib, vamos a instalar App::cpanminus para tenerlo disponible directamente en la línea de comandos:
./cpanm App::cpanminus
Una vez se termine el proceso, tenemos el entorno de trabajo listo para usar. Importante recordar que este entorno solo es válido para el usuario que estemos usando, no va a afectar a nuestro sistema. Ahora cuando necesitemos cualquier módulo, ejecutamos desde la línea de comandos:
cpanm Dancer
Si, eso instala Dancer y todas sus dependencias
