Pergunta

Aqui está a minha situação: Eu sei quase nada sobre Perl, mas é a única língua disponível em uma máquina de portabilidade. Eu só tem permissões para escrever na minha área de trabalho local e não o Perl local de instalação. Eu preciso usar o Paralela :: ForkManager Perl módulo do CPAN

Como posso usar este Parallel :: ForkManager sem fazer instalar um central? Existe uma variável de ambiente que eu posso definir para que ele fica?

Graças

JD

Foi útil?

Solução

A partir perlfaq8: Como faço para manter o meu próprio módulo / diretório da biblioteca :

Quando você construir módulos, diga Perl onde instalar os módulos.

Para distribuições baseadas em C, use a opção INSTALL_BASE ao gerar Makefiles:

perl Makefile.PL INSTALL_BASE=/mydir/perl

Você pode definir isso em sua configuração CPAN.pm tão módulos instalar automaticamente no seu diretório de biblioteca particular quando você usa o shell CPAN.pm:

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

Para distribuições baseadas em C, usar a opção --install_base:

perl Build.PL --install_base /mydir/perl

Você pode configurar CPAN.pm para usar automaticamente esta opção demasiado:

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

INSTALL_BASE diz essas ferramentas para colocar seus módulos em F. Veja L para obter detalhes sobre como executar o seu recém moudles instalados.

Há uma ressalva com INSTALL_BASE, no entanto, uma vez que actua diferentemente do que as configurações de prefixo e LIB que as versões mais antigas do ExtUtils :: MakeMaker defendeu. não INSTALL_BASE não suporta instalação de módulos para várias versões de Perl ou diferente arquiteturas sob o mesmo diretório. Você deve considerar se você realmente quer isso, e se o fizer, usar o prefixo mais velho e LIB configurações. Veja as ExtUtils :: documentação MakeMaker para mais detalhes.

Outras dicas

Confira este post de Mark Dominus

Trecho:

  • Set PREFIX = X ao construir o Makefile
  • Set INSTALLDIRS = fornecedor e VENDORPREFIX = X ao construir o Makefile
    • Ou talvez em vez de VENDORPREFIX você precisa definir INSTALLVENDORLIB ou algo
    • Ou talvez em vez de ajustá-los ao construir o Makefile você precisa configurá-los durante a execução do make install-alvo
  • Set LIB = X / lib ao construir o Makefile
  • Use PAR
  • Use o local :: lib

Mark também dá uma outra solução em seu blog que leva um pouco mais de espaço para desribe mas resume-se a executar o make e make test, mas não make install e, em seguida, usar o material em blib /.

Baixar forma pacote CPAN para uma pasta:

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 este criar uma pasta na casa para armazenar seus módulos locais, agora vá para a pasta baixado e executado follwing cmmands:

perl Makefile.PL PREFIX=/home/username/myModules
make
make test
make install

obter o caminho para ForkManager da pasta instalada, / home / username / meusmodulos e localize a pasta paralela e obter o caminho completo para isso.

Agora, em seu arquivo perl colocar estes no início

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

-. Isso deve fazê-lo

Há a variável de ambiente PERL5LIB e -I na linha de comando quando se trata de usar o módulo. Existem mecanismos para dizer CPAN e CPANPLUS.

Há informações em questão 5 do manual CPAN (CPAN perldoc ou olhada CPAN si) .

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

Você pode usar o -I (capital i) opção de linha de comando seguido pelo diretório onde você colocará o módulo; ou tente a directiva "uso lib" seguido do diretório.

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

opção de uso cpanm -l $DIR_NAME.

Considere o uso de cpanminus, um sugeriu em esse outro segmento

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top