Preparando un entorno de desarrollo para Perl

febrero 20th, 2011 by Christian Sánchez

Por 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 ;)

Libro sobre Perl Moderno

noviembre 14th, 2010 by Christian Sánchez

Si quieres conocer y empezar a programar en uno de los mejores lenguajes que hay ;) , puedes comprar o descargar el libro de chromatic Modern Perl. Un libro bastante completo y bien diseñado para que cualquiera pueda sacar el mayor provecho a Perl.Modern Perl

Bandcamp una nueva forma de distribuir música

octubre 9th, 2010 by Christian Sánchez

Pues eso, en Bandcamp las bandas venden y regalan algunas canciones, cualquiera pueda escucharlas antes de hacer la compra o simplemente descargar las que estén disponibles, buena opción para conocer nueva música y colaborar con las bandas que la hacen ya que los precios son realmente baratos (alcanza para comprar algunos discos con el cupo de cadivi ;) )

 

 

App::Perlbrew, probando distintas versiones de Perl de forma fácil

agosto 14th, 2010 by Christian Sánchez

La mayoría de los sistemas operativos basados en Unix vienen con una versión de Perl instalada, dependiendo de que tan actualizado este el sistema podemos tener la última versión del lenguaje. Por ejemplo en Debian Testing (Squeeze aún) tenemos la versión 5.10.1, en Mac OSX Snow Leopard la versión 5.10.0 (pongo estos 2 ejemplos por que son los sistemas operativos que uso). Si quisiéramos probar alguna versión más nueva de Perl podríamos instalar desde las fuentes o quizás usando los paquetes .deb en el caso de Debian, pero quizás tengamos algunos problemas con las dependencias y podríamos dañar nuestro sistema base.

Hay una herramienta que facilita la instalación y el manejo de distintas versiones de Perl de forma simultanea en una misma máquina App::Perlbrew. Esta aplicación se encarga de crear un entorno completo de Perl en nuestro directorio home, que podemos manejar sin necesidad de tener permisos de administrador, esto trae muchas ventajas ya que nos permite probar cualquier cosa sin necesidad de utilizar (dañar) nuestro sistema base. Todo lo que instalemos (módulos CPAN) estará dentro de este entorno, las aplicaciones que quisiéramos probar usarán este entorno también, entonces podemos ver el funcionamiento de la misma en distintas versiones de Perl, con distintas versiones de módulos, etc. las posibilidades son muchas. Incluso podremos tener una versión antigua de Perl, quizás la 5.8, ya que existe mucha gente que aún no ha migrado a la 5.10 y así podemos asegurarnos que nuestros programas corran en cualquiera de las distintas versiones de Perl.

La instalación es bastante sencilla, no se necesita permisos de administrador y todo será almacenado en el directorio de nuestro usuario. Lo recomendable para la instalación es obtenerlo directamente desde el sitio del desarrollador:

curl -LO http://xrl.us/perlbrew

luego darle permisos de ejecución al script:

chmod +x perlbrew

y finalmente ejecutar el script:

./perlbrew install

Ya con eso tenemos instalado perlbrew y podemos empezar a usarlo, para las configuraciones básicas ejecutamos el siguiente comando:

perlbrew init

y seguimos las instrucciones que nos aparecen, que en realidad es agregar algunas variables de entorno al archivo .bashrc. Una vez realizado este paso de configuración, estamos listos para instalar cualquier versión de Perl que necesitemos, por ejemplo:

perlbrew install perl-5.12.1

luego de esperar que la descargue y configure, podemos hacer uso de esa versión de Perl de la siguiente manera:

perlbrew switch perl-5.12.1

esto cambiara nuestro entorno, la documentación recomienda que se ejecute el comando hash -r para limpiar el cache de la variable PATH, luego de esto al ejecutar perl -v deberíamos estar trabajando con la versión de Perl recientemente instalada. Todo lo que instalamos usando CPAN estará dentro de este entorno.

Si luego queremos “desactivar” este entorno podemos ejecutar el comando:

perlbrew off

y volveremos a nuestra aburrida instalación de Perl del sistema base.

Podemos instalar la cantidad de versiones que queramos, para listar cuales hemos instalado ejecutamos el comando:

perlbrew installed

Esta es una buena forma de empezar a probar Perl, si es que aún no lo has hecho ya.

Bailando con Perl – Dancer

marzo 31st, 2010 by Christian Sánchez

Dancer es un framework web ligero, que nos permite hacer aplicaciones de forma rápida y sencilla. Es una alternativa excelente cuando no quieras escribir los scripts CGI a mano y Catalyst es demasiado engorroso para implementar. Como cualquier otro framework trae un servidor web embebido para hacer pruebas y puede correr con otros servidores web usando PSGI/Plack.

Para instalarlo podemos hacerlo directamente desde CPAN, ejecutando el comando:

sudo cpan Dancer

No hay aún paquetes oficiales para Debian (o derivados), yo hice el paquete y las dependencias que necesita, pueden descargarlos desde aquí:

libhttp-server-simple-perl, se necesita la versión >=0.42, en Debian aún está la 0.41
libhttp-server-simple-psgi-perl
libdancer-perl

Luego de tener Dancer instalado, crear una aplicación nueva es tan simple como:

dancer -a miaplicacion

Este comando crea una estructura sencilla de la aplicación, lo siguiente sería modificar las rutas que se van a usar, en este caso eso está en el archivo miaplicacion.pm:

1
2
3
4
5
6
7
8
9
10
11
use Dancer;
 
get '/' => sub {
    return 'Hola Mundo!'
};
 
get '/hola/:nombre' => sub {
  return "Hola " . params->{nombre};
};
 
dance;

Dancer tiene muchas más opciones, como por ejemplo devolver el contenido en formatos JSON, XML, YAML directamente sin necesidad de procesar o ejecutar acciones distintas (piensa en un webservice que devuelve contenido en JSON para otra aplicación…), uso de plantillas, manejo de sesiones, etc. Además que se puede integrar con otros módulos de CPAN para lograr aplicaciones más elaboradas.

Una buena opción para aplicaciones sencillas, y sin mucho esfuerzo ;)