[SP-pm] perlbrew e distribuições Linux antigas

Daniel de Oliveira Mantovani daniel.oliveira.mantovani at gmail.com
Tue Jun 17 07:10:27 PDT 2014


Alceu, se você quer apenas copiar o código passa a flag "-fPIC"
(Position Independent Code) para o compilador que o objeto não vai
usar bibliotecas compartilhadas. Assim, você consegue copiar da vmware
para a máquina física se e somente se:

- For o mesmo O.S
- Mesmo Instruction Set (uname -m)

2014-06-17 10:56 GMT-03:00 Alceu Rodrigues de Freitas Junior
<glasswalk3r at yahoo.com.br>:
> Bom dia pessoal,
>
> Estou com um problema que talvez algum de vocês já tenha tido experiência.
>
> Preciso instalar alguns scripts de monitoração em um servidor Linux mas cuja
> distribuição já é um pouco velha. Para não mexer no perl "global", eu
> resolvi usar o Perlbrew para instalar no diretório home de um usuário
> específico e manter os módulos que preciso ali. Não preciso de permissões de
> acesso maiores do que este usuário já possui também.
>
> Tudo ia bem até eu precisar instalar módulos relacionados com SSL. Como o
> openssl da distribuição é muito velha, eu não consigo instalar coisas mais
> recentes:
>
> cpan[2]> install IO::Socket::SSL
> Running install for module 'IO::Socket::SSL'
>   SULLR/IO-Socket-SSL-1.993.tar.gz
>   Has already been unwrapped into directory
> /home/alcjunio/.cpan/build/IO-Socket-SSL-1.993-FevB1C
>   SULLR/IO-Socket-SSL-1.993.tar.gz
>   Has already been prepared
>   SULLR/IO-Socket-SSL-1.993.tar.gz
>   Has already been made
> Running make test
> PERL_DL_NONLAZY=1 /home/alcjunio/perl5/perlbrew/perls/perl-5.16.3/bin/perl
> "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef
> *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
> t/external/*.t
> t/01loadmodule.t .................. 1/3 # openssl version=0x90802f
> # Net::SSLeay::VERSION=1.64
> t/01loadmodule.t .................. ok
> t/acceptSSL-timeout.t ............. ok
> t/auto_verify_hostname.t .......... ok
> t/cert_formats.t .................. ok
> t/cert_no_file.t .................. ok
> t/compatibility.t ................. ok
> t/connectSSL-timeout.t ............ ok
> t/core.t .......................... ok
> t/dhe.t ........................... ok
> t/ecdhe.t ......................... skipped: no support for ecdh with this
> openssl/Net::SSLeay
> t/external/ocsp.t ................. skipped: no OCSP support
> t/external/usable_ca.t ............ # found 148 CA certs
> t/external/usable_ca.t ............ ok
> t/io-socket-inet6.t ............... skipped: no IO::Socket::INET6 available
> t/io-socket-ip.t .................. skipped: no IO::Socket::IP 0.20
> available
> t/memleak_bad_handshake.t ......... ok
> t/mitm.t .......................... ok
> t/nonblock.t ...................... ok
> t/npn.t ........................... skipped: NPN not available in
> Net::SSLeay
> t/public_suffix_lib_encode_idn.t .. ok
> t/public_suffix_lib_libidn.t ...... ok
> t/public_suffix_lib_uri.t ......... ok
> t/public_suffix_ssl.t ............. ok
> t/readline.t ...................... ok
> t/sessions.t ...................... ok
> t/signal-readline.t ............... ok
> t/sni.t ........................... skipped: because no server side SNI
> support - openssl/Net::SSleay too old
> t/start-stopssl.t ................. ok
> t/startssl-failed.t ............... ok
> t/startssl.t ...................... ok
> t/sysread_write.t ................. ok
> t/verify_fingerprint.t ............ 1/11
> #   Failed test 'accept fp1 for saddr1'
> #   at t/verify_fingerprint.t line 49.
>
> #   Failed test 'accept fp2 for saddr2'
> #   at t/verify_fingerprint.t line 49.
>
> #   Failed test 'accept fp1|fp2 for saddr1'
> #   at t/verify_fingerprint.t line 49.
>
> #   Failed test 'accept fp1|fp2 for saddr2'
> #   at t/verify_fingerprint.t line 49.
> t/verify_fingerprint.t ............ 8/11 # Looks like you failed 4 tests of
> 11.
> t/verify_fingerprint.t ............ Dubious, test returned 4 (wstat 1024,
> 0x400)
> Failed 4/11 subtests
> t/verify_hostname.t ............... ok
> t/verify_hostname_standalone.t .... ok
>
> Test Summary Report
> -------------------
> t/verify_fingerprint.t          (Wstat: 1024 Tests: 11 Failed: 4)
>   Failed tests:  1-2, 5-6
>   Non-zero exit status: 4
> Files=33, Tests=700, 45 wallclock secs ( 0.15 usr  0.13 sys +  5.35 cusr
> 1.64 csys =  7.27 CPU)
> Result: FAIL
> Failed 1/33 test programs. 4/700 subtests failed.
> make: *** [test_dynamic] Error 255
>   SULLR/IO-Socket-SSL-1.993.tar.gz
>   /usr/bin/make test -- NOT OK
> //hint// to see the cpan-testers results for installing this module, try:
>   reports SULLR/IO-Socket-SSL-1.993.tar.gz
> Failed during this command:
>  SULLR/IO-Socket-SSL-1.993.tar.gz             : make_test NO
>
> Eu consigo ver duas opções:
>
> 1 - forçar a instalação dos módulos e correr o risco de incompatibilidades
> de versões
> 2 - atualizar a distribuição na tentativa de então conseguir instalar os
> módulos Perl
>
> Como eu não tenho acesso à internet pelo servidor, tenho instalado e
> configurado o Perlbrew em uma VM com as mesmas versões do servidor, então eu
> poderia atualizar a VM. Mexer no servidor é algo que eu não tenho acesso, e
> devido a questão de homologação, vai demorar uma vida até que eu consiga que
> os responsáveis atualizem.
>
> Quão "isolada" é uma instalação do Perlbrew? Quando compilo algo em C, os
> módulos vão usar bibliotecas compartilhadas? Ou tudo fica auto-contido?
>
> Obrigado,
> Alceu
> =begin disclaimer
>   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
> SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer



-- 

-dom

--

Daniel de Oliveira Mantovani
Business Analytic Specialist
Perl Evangelist /Astrophysics hobbyist.
+55 11 9 8538-9897
XOXO


More information about the SaoPaulo-pm mailing list