Pregunta

Aquí está mi situación: no sé casi nada acerca de 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 Parallel :: ForkManager módulo de Perl de CPAN

¿Cómo uso este Parallel :: ForkManager sin hacer una instalación central? ¿Hay alguna variable de entorno que pueda establecer para que esté ubicada?

Gracias

JD

¿Fue útil?

Solución

De perlfaq8: ¿Cómo mantengo mi propio directorio de módulo / biblioteca? :

Cuando construyas módulos, dile a Perl dónde instalar los módulos.

Para 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 CPAN.pm para que los módulos se instalen automáticamente en su directorio de biblioteca privada cuando usa 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

También puede configurar CPAN.pm para usar esta opción automáticamente:

% cpan
cpan> o conf mbuild_arg --install_base /mydir/perl
cpan> o conf commit

INSTALL_BASE le dice a estas herramientas que pongan sus módulos en F. Consulte L para obtener detalles sobre cómo ejecutar su nuevo Moudles instalados.

Sin embargo, hay una advertencia con INSTALL_BASE, ya que actúa diferente a la configuración de PREFIX y LIB que las versiones anteriores de ExtUtils :: MakeMaker defendió. INSTALL_BASE no es compatible Instalación de módulos para múltiples versiones de Perl o diferentes. Arquitecturas bajo el mismo directorio. Deberías considerar si realmente quiere eso, y si lo hace, use PREFIX y LIB más antiguos ajustes Consulte la documentación de ExtUtils :: Makemaker para obtener más detalles.

Otros consejos

Consulte esta publicación de Mark Dominus

Extracto:

  
      
  • Establezca PREFIX = X al compilar el Makefile
  •   
  • Establezca INSTALLDIRS = vendor y VENDORPREFIX = X al compilar el Makefile      
        
    • O tal vez, en lugar de VENDORPREFIX, necesites configurar INSTALLVENDORLIB o algo así
    •   
    • O tal vez, en lugar de configurarlos mientras construyes el Makefile, necesitas configurarlos mientras ejecutas el objetivo de instalación.
    •   
  •   
  • Establezca LIB = X / lib al compilar el Makefile
  •   
  • utilizar PAR
  •   
  • Usa local :: lib
  •   

Mark también ofrece otra solución en su blog que requiere un poco más de espacio para describirse, pero se reduce a ejecutar make and make test, pero no make install y luego usa las cosas en blib /.

Descargar el formulario del paquete 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 esto, cree una carpeta en casa 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 localice la carpeta paralela y obtenga la ruta completa a esto.

Ahora, en tu archivo Perl, ponlos al principio

use lib '/home/username/myModules/bin.../Parallel';
use parallel::ForkManager;

- Eso debería hacerlo.

Hay una variable de entorno PERL5LIB y -I en la línea de comandos cuando se trata de usar el módulo. Existen mecanismos para indicar CPAN y CPANPLUS.

Hay información en la pregunta 5 del manual de CPAN (perldoc CPAN, o consulte CPAN ) .

use lib 'directory';
use Parallel::ForkManager;

Puede usar el interruptor de línea de comando -I (mayúscula) seguido por el directorio donde colocará el módulo; o pruebe el " use lib " Directiva seguida por el directorio.

perl Makefile.PL LIB=/my/perl_modules/lib/
make
make install
PERL5LIB=$PERL5LIB:/my/perl_modules/lib/
perl myperlcode.pl

use la opción cpanm -l $ DIR_NAME .

Considere usar cpanminus, una sugerencia en este otro hilo

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top