mcpan - install perl modules ubuntu
¿Cómo puedo instalar un módulo CPAN en un directorio local? (5)
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
Estoy usando una máquina Linux alojada, así que no tengo permisos para escribir en el directorio /usr/lib
.
Cuando intento 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 compilador 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?
Para las distribuciones basadas en Makefile.PL, use la opción INSTALL_BASE cuando genere Makefiles:
perl Makefile.PL INSTALL_BASE=/mydir/perl
Recomiendo Perlbrew . Le permite ejecutar múltiples versiones de Perl, instalar paquetes, piratear Perl internals si lo desea, todos los permisos de usuario normales.
Tuve 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 resto de los archivos (makefile.pl, module.pm, etc.) no requieren cambios.
Puede llamar al archivo .pl con solo
perl file.pl
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.