[Rio-pm] Problema com "PP" (PAR) e Variable::Magic

Samir Cury samircurys em gmail.com
Terça Setembro 30 15:05:10 PDT 2014


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 <guedes_1000 em hotmail.com>:

>  Cara. Sempre tive problema com o PP.
>
> Manoel Domingues Junior <manoel.domingues.junior em gmail.com> 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" <samircurys em gmail.com> 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
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20140930/6acbc751/attachment-0001.html>


Mais detalhes sobre a lista de discussão Rio-pm