perl permissions installation module cpan

¿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;