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

Alceu Rodrigues de Freitas Junior glasswalk3r at yahoo.com.br
Tue Jun 17 06:56:39 PDT 2014


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


More information about the SaoPaulo-pm mailing list