Para cargar la shell del módulo CPAN.pm ejecutaremos con el usuario root el comando:

# perl -MCPAN -e shell

La primera vez que ejecutemos esta shell tendremos que seguir una serie de pasos de configuración. Normalmente ya van bien los valores por defecto. Cuando lleguemos a la sección donde debemos escoger el mirror CPAN, intentaremos encontrar el más cercano posible.

Una vez entremos en el menú interactivo, se nos mostrarán un gran número de opciones. Las únicas que ahora mismo nos interesan son las de búsqueda (search) e instalación (install).

Para encontrar un módulo en particular, utilizaremos el comando i, seguido de la expresión correspondiente a lo que buscamos:

cpan> i /Time/

CPAN.pm leerá del mirror que hayamos seleccionado una lista de módulos que cumplen dicho criterio. Para instalar un módulo de los que se nos listan, símplemente teclearemos:

cpan> install Time::CTime

CPAN se encarga de todo el proceso: lo descarga, lo desempaqueta, lo compila e instala, a menos que haya algún problema durante este proceso (incompatibilidades, dependencias no resueltas…). Si hay otros módulos requeridos por el que estamos instalando, y siempre que se encuentre en el mirror seleccionado, también los descargará e instalará.

Y comentario sobre Perl en Solaris… Desaconsejo totalmente usar la distribución de Perl que viene de base en Solaris (almenos hasta la 8). La cuestión es que los paquetes que Sun ofrece vienen compilados con su CC, compilador que no viene gratuito. Y si intentamos añadir módulos como se describe en este artículo, nos podemos encontrar con algunos, como el Quotes, que asumen que el compilador debe ser CC, y nos podemos volver locos.

Solución fácil: www.sunfreeware.com y bajar la última versión de Perl; todo lo de Sunfreeware ha sido compilado con GCC, por lo que, teniendo el GCC, los módulos se compilarán de maravilla y sin problemas 😉

Desconozco que ocurre en Solaris 9 y 10, pero como en esas versiones los paquetes GNU vienen ya metidos de base, es posible que la cuestión venga resuelta… o no…