Como posso usar um novo módulo Perl sem instalar permissões?
-
05-07-2019 - |
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
Solução
A partir perlfaq8: Como faço para manter o meu próprio módulo / diretório da biblioteca : / p>
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