<div dir="ltr">> No pior dos casos, você pode abrir manualmente o Makefile e colocar o<div>> diretório estático.</div><div><br></div><div>E ganhar uma medalha por isso :)<br><div class="gmail_extra"><br><br><div class="gmail_quote">

2014-06-18 10:43 GMT-03:00 Daniel de Oliveira Mantovani <span dir="ltr"><<a href="mailto:daniel.oliveira.mantovani@gmail.com" target="_blank">daniel.oliveira.mantovani@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

Alceu, as variáveis são as que eu te passei :)<br>
<br>
Com -fPIC e sem -fPIC são coisas completamente diferentes, mas se o<br>
seu O.S está linkando as bibliotecas compartilhadas direto, os<br>
resultados vão ser similares.<br>
<br>
Lembre-se, a ideia de compilar com -fPIC era apenas no caso de você<br>
copiar o a biblioteca da vmware para a máquina física.<br>
<br>
<br>
Eu esqueci de te dizer que antes do "make", você precisa rodar $perl<br>
Makefile.PL.....<br>
No pior dos casos, você pode abrir manualmente o Makefile e colocar o<br>
diretório estático.<br>
<br>
2014-06-17 19:28 GMT-03:00 Alceu Rodrigues de Freitas Junior<br>
<div class=""><div class="h5"><<a href="mailto:glasswalk3r@yahoo.com.br">glasswalk3r@yahoo.com.br</a>>:<br>
> Daniel,<br>
><br>
> Depois de penar mais algum tempo tentando, descobri que as variáveis de<br>
> ambiente que podem ajudar são:<br>
><br>
> C_INCLUDE_PATH=/home/alcjunio/openssl/include<br>
> LIBRARY_PATH=/home/alcjunio/openssl/lib<br>
><br>
> Mas para isto funcionar, tive que remover o pacote RPM openssl-devel da<br>
> distribuição ou dava erros na hora de compilar por os headers possuirem<br>
> símbolos que não existem nas libs antigas do openssl.<br>
><br>
> Depois disso, foi instalar o Net::SSLeay, com as variáveis acima exportadas.<br>
> Ele finalmente considera o openssl atualizado no meu diretório home.<br>
><br>
> Depois disso dá para instalar o IO::Socket::SSL sem problemas.<br>
><br>
> Agora a parte chata: o SELinux não gosta de nada disso, e na VM que eu<br>
> estava ele impediu que os testes rodassem com sucesso:<br>
><br>
> t/local/38_priv-key.t .................. Can't load<br>
> '/home/alcjunio/.cpan/build/Net-SSLeay-1.64-8kuViY/blib/arch/auto/Net/SSLeay/SSLeay.so'<br>
> for module Net::SSLeay:<br>
> /home/alcjunio/.cpan/build/Net-SSLeay-1.64-8kuViY/blib/arch/auto/Net/SSLeay/SSLeay.so:<br>
> cannot restore segment prot after reloc: Permission denied at<br>
> /home/alcjunio/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/i686-linux/DynaLoader.pm<br>
> line 190.<br>
>  at t/local/38_priv-key.t line 6.<br>
><br>
> Este é um exemplo, muitos outros falharam pelo mesmo motivo.<br>
><br>
> Já no log do SELinux:<br>
><br>
> Summary<br>
> SELinux is preventing perl from loading<br>
> /home/alcjunio/.cpan/build/Net-SSLeay-1.64-8kuViY/blib/arch/auto/Net/SSLeay/SSLeay.so<br>
> which requires text relocation.<br>
><br>
> Detailed Description<br>
><br>
> The perl application attempted to load<br>
> /home/alcjunio/.cpan/build/Net-SSLeay-1.64-8kuViY/blib/arch/auto/Net/SSLeay/SSLeay.so<br>
> which requires text relocation. This is a potential security problem. Most<br>
> libraries do not need this permission. Libraries are sometimes coded<br>
> incorrectly and request this permission. The SELinux Memory Protection Tests<br>
> web page explains how to remove this requirement. You can configure SELinux<br>
> temporarily to allow<br>
> /home/alcjunio/.cpan/build/Net-SSLeay-1.64-8kuViY/blib/arch/auto/Net/SSLeay/SSLeay.so<br>
> to use relocation as a workaround, until the library is fixed. Please file a<br>
> bug report against this package.<br>
><br>
> Não entendi nada, mas achei bonito. :-)<br>
><br>
> Desabilitando o SELinux (ou configurando isso como exceção) resolve. Mas eu<br>
> não posso fazer isso. :-)<br>
><br>
> Tanto faz compilar o openssl e o Net::SSLeay com -fPIC ou sem o flag (nos<br>
> dois casos usando o --prefix=/home/alceu/openssl no ./config do openssl), o<br>
> resultado é o mesmo.<br>
><br>
> []'s<br>
> Alceu<br>
><br>
> Em 17-06-2014 12:16, Daniel de Oliveira Mantovani escreveu:<br>
><br>
>> Consegue sim,<br>
>><br>
>> Makefile.PL accepts the following command line arguments:<br>
>><br>
>> incpath<br>
>><br>
>> Path to OpenSSL headers. Can also be specified via<br>
>> $ENV{OPENSSL_INCLUDE}. If the command line argument is provided, it<br>
>> overrides any value specified via the environment variable. Of course,<br>
>> you can ignore both the command line argument and the environment<br>
>> variable, and just add the path to your compiler specific environment<br>
>> variable such as CPATH or INCLUDE etc.<br>
>><br>
>> libpath<br>
>><br>
>> Path to OpenSSL libraries. Can also be specified via<br>
>> $ENV{OPENSSL_LIB}. If the command line argument is provided, it<br>
>> overrides any value specified by the environment variable. Of course,<br>
>> you can ignore both the command line argument and the environment<br>
>> variable and just add the path to your compiler specific environment<br>
>> variable such as LIBRARY_PATH or LIB etc.<br>
>><br>
>><br>
>><br>
>> OPENSSL_INCLUDE=/home/foo/header/<br>
>> OPENSSL_LIB=/home/foo/lib/<br>
>><br>
>> 2014-06-17 12:11 GMT-03:00 Alceu Rodrigues de Freitas Junior<br>
>> <<a href="mailto:glasswalk3r@yahoo.com.br">glasswalk3r@yahoo.com.br</a>>:<br>
>>><br>
>>> Obrigado Daniel,<br>
>>><br>
>>> Instalar o OpenSSL no home do meu usuário foi bem tranquilo, mas<br>
>>> aparentemente o IO::Socket::SSL não tem opções para eu apontar quais<br>
>>> headers<br>
>>> e bibliotecas do openssl ele deve usar, algo que o Crypt::SSLeay tem<br>
>>> (<a href="http://search.cpan.org/dist/Crypt-SSLeay/SSLeay.pm#INSTALL" target="_blank">http://search.cpan.org/dist/Crypt-SSLeay/SSLeay.pm#INSTALL</a>).<br>
>>> Aparentemente<br>
>>> o Crypt::SSLeay está sendo substituído aos poucos pelo IO::Socket::SSL.<br>
>>><br>
>>> Eu tentei instalar o Crypt::SSLeay para ver que acontecia. As<br>
>>> dependências<br>
>>> entre os módulos também é meio confusa:<br>
>>><br>
>>> Running make test<br>
>>> Running Mkbootstrap for Crypt::SSLeay ()<br>
>>> chmod 644 SSLeay.bs<br>
>>><br>
>>> PERL_DL_NONLAZY=1<br>
>>> /home/alcjunio/perl5/perlbrew/perls/perl-5.16.3/bin/perl<br>
>>> "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef<br>
>>> *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t<br>
>>> t/00-basic.t ..... ok<br>
>>> t/01-connect.t ... ok<br>
>>> t/02-live.t ...... # Reading configuration from 'test.config' on linux<br>
>>> # network_tests : 0<br>
>>> t/02-live.t ...... skipped: Network tests disabled<br>
>>> t/03-version.t ... ok<br>
>>> t/boilerplate.t .. ok<br>
>>> t/manifest.t ..... skipped: Author tests not required for installation<br>
>>> All tests successful.<br>
>>> Files=6, Tests=43,  0 wallclock secs ( 0.01 usr  0.04 sys +  0.25 cusr<br>
>>> 0.08<br>
>>> csys =  0.38 CPU)<br>
>>> Result: PASS<br>
>>>    NANIS/Crypt-SSLeay-0.72.tar.gz<br>
>>> Tests succeeded but one dependency not OK (LWP::Protocol::https)<br>
>>>    NANIS/Crypt-SSLeay-0.72.tar.gz<br>
>>>    [dependencies] -- NA<br>
>>><br>
>>> Failed during this command:<br>
>>>   SULLR/IO-Socket-SSL-1.993.tar.gz             : make_test NO<br>
>>>   GAAS/LWP-Protocol-https-6.04.tar.gz          : make_test NO one<br>
>>> dependency<br>
>>> not OK (IO::Socket::SSL); additionally test harness failed<br>
>>>   NANIS/Crypt-SSLeay-0.72.tar.gz               : make_test NO one<br>
>>> dependency<br>
>>> not OK (LWP::Protocol::https)<br>
>>><br>
>>> Isto está parecendo a história do ovo e da galinha. :-)<br>
>>><br>
>>> Eu não achei nada no Makefile.PL do IO::Socket::SSL que me permitisse<br>
>>> especificar onde está o openSSL para ele usar. Tenho que fazer isso via<br>
>>> manipulação da $LD_LIBRARY_PATH ou algo assim?<br>
>>><br>
>>><br>
>>> Em 17-06-2014 11:02, Daniel de Oliveira Mantovani escreveu:<br>
>>><br>
>>>> Bom dia Alceu,<br>
>>>><br>
>>>> Baixa manualmente o OpenSSL<br>
>>>> (<a href="https://www.openssl.org/source/openssl-1.0.1h.tar.gz" target="_blank">https://www.openssl.org/source/openssl-1.0.1h.tar.gz</a>), compila e<br>
>>>> instala num diretório separado. Depois na hora de instalar o<br>
>>>> IO::Socket::SSL você aponta para o diretório separado que você<br>
>>>> instalou o OpenSSL.<br>
>>>><br>
>>>> 2014-06-17 10:56 GMT-03:00 Alceu Rodrigues de Freitas Junior<br>
>>>> <<a href="mailto:glasswalk3r@yahoo.com.br">glasswalk3r@yahoo.com.br</a>>:<br>
>>>>><br>
>>>>> Bom dia pessoal,<br>
>>>>><br>
>>>>> Estou com um problema que talvez algum de vocês já tenha tido<br>
>>>>> experiência.<br>
>>>>><br>
>>>>> Preciso instalar alguns scripts de monitoração em um servidor Linux mas<br>
>>>>> cuja<br>
>>>>> distribuição já é um pouco velha. Para não mexer no perl "global", eu<br>
>>>>> resolvi usar o Perlbrew para instalar no diretório home de um usuário<br>
>>>>> específico e manter os módulos que preciso ali. Não preciso de<br>
>>>>> permissões<br>
>>>>> de<br>
>>>>> acesso maiores do que este usuário já possui também.<br>
>>>>><br>
>>>>> Tudo ia bem até eu precisar instalar módulos relacionados com SSL. Como<br>
>>>>> o<br>
>>>>> openssl da distribuição é muito velha, eu não consigo instalar coisas<br>
>>>>> mais<br>
>>>>> recentes:<br>
>>>>><br>
>>>>> cpan[2]> install IO::Socket::SSL<br>
>>>>> Running install for module 'IO::Socket::SSL'<br>
>>>>>     SULLR/IO-Socket-SSL-1.993.tar.gz<br>
>>>>>     Has already been unwrapped into directory<br>
>>>>> /home/alcjunio/.cpan/build/IO-Socket-SSL-1.993-FevB1C<br>
>>>>>     SULLR/IO-Socket-SSL-1.993.tar.gz<br>
>>>>>     Has already been prepared<br>
>>>>>     SULLR/IO-Socket-SSL-1.993.tar.gz<br>
>>>>>     Has already been made<br>
>>>>> Running make test<br>
>>>>> PERL_DL_NONLAZY=1<br>
>>>>> /home/alcjunio/perl5/perlbrew/perls/perl-5.16.3/bin/perl<br>
>>>>> "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef<br>
>>>>> *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')"<br>
>>>>> t/*.t<br>
>>>>> t/external/*.t<br>
>>>>> t/01loadmodule.t .................. 1/3 # openssl version=0x90802f<br>
>>>>> # Net::SSLeay::VERSION=1.64<br>
>>>>> t/01loadmodule.t .................. ok<br>
>>>>> t/acceptSSL-timeout.t ............. ok<br>
>>>>> t/auto_verify_hostname.t .......... ok<br>
>>>>> t/cert_formats.t .................. ok<br>
>>>>> t/cert_no_file.t .................. ok<br>
>>>>> t/compatibility.t ................. ok<br>
>>>>> t/connectSSL-timeout.t ............ ok<br>
>>>>> t/core.t .......................... ok<br>
>>>>> t/dhe.t ........................... ok<br>
>>>>> t/ecdhe.t ......................... skipped: no support for ecdh with<br>
>>>>> this<br>
>>>>> openssl/Net::SSLeay<br>
>>>>> t/external/ocsp.t ................. skipped: no OCSP support<br>
>>>>> t/external/usable_ca.t ............ # found 148 CA certs<br>
>>>>> t/external/usable_ca.t ............ ok<br>
>>>>> t/io-socket-inet6.t ............... skipped: no IO::Socket::INET6<br>
>>>>> available<br>
>>>>> t/io-socket-ip.t .................. skipped: no IO::Socket::IP 0.20<br>
>>>>> available<br>
>>>>> t/memleak_bad_handshake.t ......... ok<br>
>>>>> t/mitm.t .......................... ok<br>
>>>>> t/nonblock.t ...................... ok<br>
>>>>> t/npn.t ........................... skipped: NPN not available in<br>
>>>>> Net::SSLeay<br>
>>>>> t/public_suffix_lib_encode_idn.t .. ok<br>
>>>>> t/public_suffix_lib_libidn.t ...... ok<br>
>>>>> t/public_suffix_lib_uri.t ......... ok<br>
>>>>> t/public_suffix_ssl.t ............. ok<br>
>>>>> t/readline.t ...................... ok<br>
>>>>> t/sessions.t ...................... ok<br>
>>>>> t/signal-readline.t ............... ok<br>
>>>>> t/sni.t ........................... skipped: because no server side SNI<br>
>>>>> support - openssl/Net::SSleay too old<br>
>>>>> t/start-stopssl.t ................. ok<br>
>>>>> t/startssl-failed.t ............... ok<br>
>>>>> t/startssl.t ...................... ok<br>
>>>>> t/sysread_write.t ................. ok<br>
>>>>> t/verify_fingerprint.t ............ 1/11<br>
>>>>> #   Failed test 'accept fp1 for saddr1'<br>
>>>>> #   at t/verify_fingerprint.t line 49.<br>
>>>>><br>
>>>>> #   Failed test 'accept fp2 for saddr2'<br>
>>>>> #   at t/verify_fingerprint.t line 49.<br>
>>>>><br>
>>>>> #   Failed test 'accept fp1|fp2 for saddr1'<br>
>>>>> #   at t/verify_fingerprint.t line 49.<br>
>>>>><br>
>>>>> #   Failed test 'accept fp1|fp2 for saddr2'<br>
>>>>> #   at t/verify_fingerprint.t line 49.<br>
>>>>> t/verify_fingerprint.t ............ 8/11 # Looks like you failed 4<br>
>>>>> tests<br>
>>>>> of<br>
>>>>> 11.<br>
>>>>> t/verify_fingerprint.t ............ Dubious, test returned 4 (wstat<br>
>>>>> 1024,<br>
>>>>> 0x400)<br>
>>>>> Failed 4/11 subtests<br>
>>>>> t/verify_hostname.t ............... ok<br>
>>>>> t/verify_hostname_standalone.t .... ok<br>
>>>>><br>
>>>>> Test Summary Report<br>
>>>>> -------------------<br>
>>>>> t/verify_fingerprint.t          (Wstat: 1024 Tests: 11 Failed: 4)<br>
>>>>>     Failed tests:  1-2, 5-6<br>
>>>>>     Non-zero exit status: 4<br>
>>>>> Files=33, Tests=700, 45 wallclock secs ( 0.15 usr  0.13 sys +  5.35<br>
>>>>> cusr<br>
>>>>> 1.64 csys =  7.27 CPU)<br>
>>>>> Result: FAIL<br>
>>>>> Failed 1/33 test programs. 4/700 subtests failed.<br>
>>>>> make: *** [test_dynamic] Error 255<br>
>>>>>     SULLR/IO-Socket-SSL-1.993.tar.gz<br>
>>>>>     /usr/bin/make test -- NOT OK<br>
>>>>> //hint// to see the cpan-testers results for installing this module,<br>
>>>>> try:<br>
>>>>>     reports SULLR/IO-Socket-SSL-1.993.tar.gz<br>
>>>>> Failed during this command:<br>
>>>>>    SULLR/IO-Socket-SSL-1.993.tar.gz             : make_test NO<br>
>>>>><br>
>>>>> Eu consigo ver duas opções:<br>
>>>>><br>
>>>>> 1 - forçar a instalação dos módulos e correr o risco de<br>
>>>>> incompatibilidades<br>
>>>>> de versões<br>
>>>>> 2 - atualizar a distribuição na tentativa de então conseguir instalar<br>
>>>>> os<br>
>>>>> módulos Perl<br>
>>>>><br>
>>>>> Como eu não tenho acesso à internet pelo servidor, tenho instalado e<br>
>>>>> configurado o Perlbrew em uma VM com as mesmas versões do servidor,<br>
>>>>> então<br>
>>>>> eu<br>
>>>>> poderia atualizar a VM. Mexer no servidor é algo que eu não tenho<br>
>>>>> acesso,<br>
>>>>> e<br>
>>>>> devido a questão de homologação, vai demorar uma vida até que eu<br>
>>>>> consiga<br>
>>>>> que<br>
>>>>> os responsáveis atualizem.<br>
>>>>><br>
>>>>> Quão "isolada" é uma instalação do Perlbrew? Quando compilo algo em C,<br>
>>>>> os<br>
>>>>> módulos vão usar bibliotecas compartilhadas? Ou tudo fica auto-contido?<br>
>>>>><br>
>>>>> Obrigado,<br>
>>>>> Alceu<br>
>>>>> =begin disclaimer<br>
>>>>>     Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
>>>>> SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
>>>>> L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
>>>>> =end disclaimer<br>
>>>><br>
>>>><br>
>>>><br>
>>> =begin disclaimer<br>
>>>    Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
>>> SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
>>> L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
>>> =end disclaimer<br>
>><br>
>><br>
>><br>
><br>
> =begin disclaimer<br>
>   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
> SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
> L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
> =end disclaimer<br>
<br>
<br>
<br>
</div></div><div class="im">--<br>
<br>
-dom<br>
<br>
--<br>
<br>
Daniel de Oliveira Mantovani<br>
Business Analytic Specialist<br>
Perl Evangelist /Astrophysics hobbyist.<br>
<a href="tel:%2B55%2011%209%208538-9897" value="+5511985389897">+55 11 9 8538-9897</a><br>
XOXO<br>
</div><div class=""><div class="h5">=begin disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
</div></div></blockquote></div><br></div></div></div>