¿Cómo puedo usar un nuevo módulo Perl sin permisos de instalación?
permissions installation (10)
Considere usar cpanminus, una sugerencia en este otro hilo
Esta es mi situación: no sé casi nada sobre Perl, pero es el único idioma disponible en una máquina portadora. Solo tengo permisos para escribir en mi área de trabajo local y no en la ubicación de instalación de Perl. Necesito usar el módulo Parallel::ForkManager Perl de CPAN
¿Cómo uso este Parallel :: ForkManager sin hacer una instalación central? ¿Existe una variable de entorno que pueda establecer para que esté ubicada?
Gracias
JD
Descargue el paquete de CPAN a una carpeta:
wget http://search.cpan.org/CPAN/authors/id/S/SZ/SZABGAB/Parallel-ForkManager-1.06.tar.gz
gunzip Parallel-ForkManager-1.06.tar.gz
tar -xvf Parallel-ForkManager-1.06.tar
antes de crear una carpeta en el hogar para almacenar sus módulos locales, ahora vaya a la carpeta descargada y ejecute los siguientes cmmands:
perl Makefile.PL PREFIX=/home/username/myModules
make
make test
make install
obtenga la ruta a ForkManager desde la carpeta instalada, / home / username / myModules y busque la carpeta Parallel y obtenga la ruta completa a esto.
Ahora en tu archivo perl pon estos al principio
use lib ''/home/username/myModules/bin.../Parallel'';
use parallel::ForkManager;
--Deberias hacer eso.
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 C, use la opción INSTALL_BASE al generar 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 C, 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 mbuild_arg --install_base /mydir/perl
cpan> o conf commit
INSTALL_BASE le dice a estas herramientas que coloquen sus módulos en F. Consulte L para obtener detalles sobre cómo ejecutar las moules recién instaladas.
Sin embargo, hay una advertencia con INSTALL_BASE, ya que actúa de forma diferente a las configuraciones PREFIX y LIB que defendían las versiones anteriores de ExtUtils :: MakeMaker. INSTALL_BASE no admite la instalación de módulos para múltiples versiones de Perl o arquitecturas diferentes bajo el mismo directorio. Debería considerar si realmente quiere eso, y si lo hace, use las configuraciones anteriores de PREFIX y LIB. Consulte la documentación de ExtUtils :: Makemaker para obtener más detalles.
Existe la variable de entorno PERL5LIB y -I
en la línea de comandos cuando se trata de usar el módulo. Hay mecanismos para contar CPAN y CPANPLUS.
Hay información en la pregunta 5 del manual de CPAN (CPAN perldoc, o consulte el CPAN sí).
Mira esta publicación de Mark Dominus
Extracto:
- Establezca PREFIX = X al compilar el archivo Makefile
- Establezca INSTALLDIRS = proveedor y VENDORPREFIX = X al compilar el archivo Makefile
- O tal vez, en lugar de VENDORPREFIX, debe configurar INSTALLVENDORLIB o algo
- O tal vez, en lugar de configurarlos mientras construyes el Makefile, debes configurarlos mientras ejecutas el objetivo make install
- Establezca LIB = X / lib cuando construya el archivo Makefile
- Use PAR
- Use local :: lib
Mark también ofrece otra solución en su blog que requiere un poco más de espacio para descargar, pero se reduce a ejecutar make y make test pero no hacer la instalación y luego usar el material en blib /.
Puede utilizar el -I
de línea de comandos -I
(mayúscula i) seguido del directorio donde colocará el módulo; o pruebe la directiva "use lib" seguida del directorio.
usa la cpanm -l $DIR_NAME
.
perl Makefile.PL LIB=/my/perl_modules/lib/
make
make install
PERL5LIB=$PERL5LIB:/my/perl_modules/lib/
perl myperlcode.pl
use lib ''directory'';
use Parallel::ForkManager;