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

Samir Cury samircurys em gmail.com
Terça Setembro 30 16:48:28 PDT 2014


Matou, Breno!

Estava assumindo por algum motivo que o pp era esperto o suficiente para
seguir todos os modulos mencionados em "use X::Y;" e as dependencias. Uma
vez que inclui esses 2 caras :

 pp -B --module=XML::LibXML::SAX --module=Variable::Magic -o
report-fjr-couch report-fjr-couch.pl

Funcionou perfeito. Outra grande vantagem e que tive que fazer um patch
local para o CouchDB::Client. Desse jeito e certo que seja la o que for vai
rodar com o patch.

Ah, o patch estaria no CPAN se o autor respondesse a pull requests. Como
nao esta, fazemos assim.

Abs,
Samir

2014-09-30 16:35 GMT-07:00 breno <breno em rio.pm.org>:

> Samir, o -B adiciona só os módulos core, e o Variable::Magic não é core.
> Acho que o que vc quer é "--module=Variable::Magic" não?
>
> Se não houver código destrutivo em BEGIN's, vale adicionar "-c" pra ele
> tentar achar dependências de runtime também.
>
> Espero que isso ajude. Senão, as outras dicas que o pessoal deu (de carton
> à bundles de instalação) são muito boas!
>
> []s
>
> -b
>
> 2014-09-30 15:51 GMT-03:00 Samir Cury <samircurys em gmail.com>:
>
>> 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/56004e55/attachment.html>


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