¿Cómo puedo instalar un módulo CPAN en un directorio local?

Estoy usando una máquina Linux alojada, así que no tengo permisos para escribir en el directorio /usr/lib .

Cuando bash instalar un módulo CPAN, hago lo de siempre:

 perl Makefile.PL make test make install 

Ese módulo se extrae en una blib/lib/ . He mantenido el use blib/lib/ModuleName pero aún así el comstackdor dice que no se puede encontrar el módulo. He intentado copiar el archivo .pm en el directorio local y require ModuleName mantenido require ModuleName pero aun así me da un error.

¿Cómo puedo instalar un módulo en otro directorio y usarlo?

Tenía un problema similar, donde ni siquiera podía instalar local :: lib

Creé un instalador que instaló el módulo en algún lugar en relación con los archivos .pl

La instalación es como:

 perl Makefile.PL PREFIX=./modulos make make install 

Luego, en el archivo .pl que requiere el módulo, que está en ./

 use lib qw(./modulos/share/perl/5.8.8/); # You may need to change this path use module::name; 

El rest de los archivos (makefile.pl, module.pm, etc.) no requieren cambios.

Puede llamar al archivo .pl con solo

 perl file.pl 

Otras respuestas ya están en Stackoverflow:

  • ¿Cómo instalo módulos localmente sin acceso de root …
  • ¿Cómo puedo usar un nuevo módulo Perl sin permisos de instalación?

Desde perlfaq8:


¿Cómo guardo mi propio directorio de módulo / biblioteca?

Cuando construya módulos, dígale a Perl dónde instalar los módulos.

Para las distribuciones basadas en Makefile.PL, use la opción INSTALL_BASE cuando genere Makefiles:

 perl Makefile.PL INSTALL_BASE=/mydir/perl 

Puede configurar esto en su configuración de CPAN.pm para que los módulos se instalen automáticamente en su directorio de biblioteca privada cuando use el shell CPAN.pm:

 % cpan cpan> o conf makepl_arg INSTALL_BASE=/mydir/perl cpan> o conf commit 

Para las distribuciones basadas en Build.PL, use la opción –install_base:

 perl Build.PL --install_base /mydir/perl 

Puede configurar CPAN.pm para usar automáticamente esta opción también:

 % cpan cpan> o conf mbuildpl_arg '--install_base /mydir/perl' cpan> o conf commit 

local :: lib te ayudará. Convencerá a “make install” (y “Build install”) para que lo instale en un directorio en el que pueda escribir, y le dirá a perl cómo llegar a esos módulos.

En general, si quiere usar un módulo que está en un directorio blib /, quiere decir perl -Mblib ... donde ... es como usted normalmente invocaría su script.

Recomiendo Perlbrew . Le permite ejecutar múltiples versiones de Perl, instalar paquetes, piratear Perl internals si lo desea, todos los permisos de usuario normales.

Para las distribuciones basadas en Makefile.PL, use la opción INSTALL_BASE cuando genere Makefiles:

 perl Makefile.PL INSTALL_BASE=/mydir/perl