Instala um centos. Mantem os mesmos pacotes do server e instala o perlbrew. O
que faltar para compilar os módulos compila no seu home. Vai ter que avisar o
compilador das libs novas.
Faz um tar e corre para o abraco. Da um trampo no começo mas depois funciona.
O nome do usuário do seu centos e do destino devem ser o mesmo. Senão da mais
trampo.
-----Original Message-----
From: "Samir Cury" <[email protected]>
Sent: 9/30/2014 7:05 PM
To: "Perl Mongers Rio de Janeiro" <[email protected]>
Subject: Re: [Rio-pm] Problema com "PP" (PAR) e Variable::Magic
Achei que fosse algo bobo. A premissa e interessante e quase que essencial no
meu caso. Vou rodar isso em varios setups diferentes onde nao tenho acesso a
root, com a unica garantia de que o SO e CentOS 5 ou 6. Ter um binario que
simplesmente roda sem depender de nada que nao venha no CentOS 5 padrao seria
perfeito.
Valeu pela dica Manoel, infelizmente viraria um problema de ovo e galinha neste
caso - nao dependo de todos os modulos mas dependo do carton. Que tambem nao
posso instalar no servidor remoto.
Renato, fatpack parece interessante. Mas parece que o que o Solli comentou
responde o que aconteceu aqui :
-bash-4.1$ fatpack packlists-for `cat fatpacker.trace` > packlists
Attempt to reload B/Hooks/EndOfScope/XS.pm aborted.
Parece que o caminho de menor resistencia seria mandar um tarball de um lib/
com todos os modulos relevantes, e incluir no @INC do .pl. Totalmente manual.
Achei que essas ferramentas resolveriam.
Mas acredito que tentar os canais de suporte oficiais do pp pode ser uma boa
ideia, se existirem.
Abracos,
Samir
2014-09-30 14:09 GMT-07:00 Aureliano Guedes <[email protected]>:
Cara. Sempre tive problema com o PP.
Manoel Domingues Junior <[email protected]> escreveu:
Samir,
Esses dias, quando enfrentava problemas semelhantes de portabilidade, conheci o
carton que me ajudou muito.
Da uma olhada, ele é capaz de gerar uma pasta bundle com todas as dependências
e basta ir no servidor remoto e executar um:
carton install --cached --deployment
E depois um:
carton exec script.pl
Outra dica legal que encontrei foi usar o plenv para cuidar das versões de
perl...
Abraços,
Em 30/09/2014 15:51, "Samir Cury" <[email protected]> escreveu:
Galera,
Escrevi um codigo basico para uma tarefa trivial. Problema : Usei o CPAN demais
e tenho muitas dependencias. Vou rodar o codigo em sistemas remotos onde so e
garantido existir o Perl + core modules.
Pensei em usar o PAR, que ja me cria um executavel com "todos os modulo" (-B).
Perfeito.
Nem tanto. Uma vez que consigo o executavel, ele reclama de nao achar o
Variable::Magic [1].
Porem o .pl original roda tranquilo no mesmo sistema :
-bash-4.1$ ./report-fjr-couch.pl --fjr=FrameworkJobReport.xml
--couchurl=http://a.cloudant.com --db=tr-benchmarks
CouchDB::Client::Doc=HASH(0x1286d60)
O erro ate fez sentido uma vez que percebi que o sistema que usei para gerar o
executavel nao tinha o Variable::Magic instalado. Imaginei que instalando e
rodando de novo com -B iria incluir o modulo. Nada.
Sendo mais concreto, aqui estao os "pp s" que tentei :
pp -B -o report-fjr-couch report-fjr-couch.pl
pp -B -P -o report-fjr-couch report-fjr-couch.pl
pp -B -p -o report-fjr-couch report-fjr-couch.pl
Mesmo problema em todos.
Descricao das opcoes :
http://search.cpan.org/~rschupp/PAR-Packer-1.022/lib/pp.pm
Caso queiram ver o codigo, aqui esta, mas fiquem tranquilos, admito e sei que
nao foi feito para ser bonito, mas funciona :
https://github.com/samircury/CMSSW-benchmarks/blob/master/condor/report-fjr-couch.pl
Alguem ja passou por uma situacao parecida ou teria dicas de como resolver?
Valeu!
[1] :
-bash-4.1$ ./report-fjr-couch --fjr=FrameworkJobReport.xml
--couchurl=http://a.cloudant.com --db=tr-benchmarks
Could not find a suitable B::Hooks::EndOfScope implementation: Can't locate
Variable/Magic.pm in @INC (@INC contains: CODE(0x1e1aca0)
/tmp/par-6e697374657374/cache-9f11098dccd910be2e44325e17711ef504029e65/inc/lib
/tmp/par-6e697374657374/cache-9f11098dccd910be2e44325e17711ef504029e65/inc
CODE(0x1aea050) CODE(0x1aea4d0)) at Module/Runtime.pm line 317.
BEGIN failed--compilation aborted at B/Hooks/EndOfScope/XS.pm line 17.
Compilation failed in require at Module/Runtime.pm line 317.
Can't locate B/Hooks/EndOfScope/PP/FieldHash.pm in @INC (@INC contains:
CODE(0x1e1aca0)
/tmp/par-6e697374657374/cache-9f11098dccd910be2e44325e17711ef504029e65/inc/lib
/tmp/par-6e697374657374/cache-9f11098dccd910be2e44325e17711ef504029e65/inc
CODE(0x1aea050) CODE(0x1aea4d0)) at Module/Runtime.pm line 317.
BEGIN failed--compilation aborted at B/Hooks/EndOfScope/PP.pm line 29.
Compilation failed in require at Module/Runtime.pm line 317.
at B/Hooks/EndOfScope.pm line 22
BEGIN failed--compilation aborted at B/Hooks/EndOfScope.pm line 26.
Compilation failed in require at namespace/clean.pm line 11.
BEGIN failed--compilation aborted at namespace/clean.pm line 11.
Compilation failed in require at JSON/Any.pm line 11.
BEGIN failed--compilation aborted at JSON/Any.pm line 11.
Compilation failed in require at CouchDB/Client.pm line 9.
BEGIN failed--compilation aborted at CouchDB/Client.pm line 9.
Compilation failed in require at script/report-fjr-couch.pl line 6.
BEGIN failed--compilation aborted at script/report-fjr-couch.pl line 6.
_______________________________________________
Rio-pm mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/rio-pm
_______________________________________________
Rio-pm mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/rio-pm
_______________________________________________
Rio-pm mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/rio-pm