2016-05-21 15 views
7

Niedawna aktualizacja OpenSSL na ArchLinux złamała Ruby, ponieważ ta ostatnia zależy od tego, czy SSLv3 jest wspierany przez poprzednią. kod Ruby, która używa OpenSSL ujawni problem, kiedy zakończy się błędem jak poniżej:Niezdefiniowany symbol: SSLv3_method - .../openssl.so z Ruby i ArchLinux

openssl.so: undefined symbol: SSLv3_method - .../openssl.so (LoadError) 

używam wielu wersji Ruby z RVM i problem aplies do wszystkich z nich.

Wersja OpenSSL Mam problem z jest 1.0.2h, ale uważam, że został wprowadzony z 1.0.2g. Wersja 1.0.2f działa dobrze.

Jak można rozwiązać ten problem ze zgodnością (bez downgradng OpenSSL)?

+0

Ta sama dystrybucja, ten sam problem. – jayant

Odpowiedz

13

Problem jest spowodowany budowaniem pakietu ArchLinux OpenSSL bez obsługi SSLv3, począwszy od this commit. Uważam, że podobną czynność wykonano w innych dystrybucjach, takich jak Ubuntu.

Rozwiązaniem w środowisku RVM jest ponowne zainstalowanie Rubies który będzie je odbudować (można też chcą uaktualnić do najnowszej RVM):

$ rvm get head  # optional, if you want to! 
$ rvm reinstall all # or a specifc ruby version instead of 'all' 

Jednak starsze rubiny nadal będzie się niepowodzeniem z błędem kompilacji tak:

Error running '__rvm_make -j1' 
ossl_ssl.c:143:27: error: ‘SSLv3_client_method’ undeclared here (not in a function) 

zostało discussed z zespołem RVM którzy sugerowanej instalacji this Ruby patch, który pozwala starszych rubiny budować:

$ curl https://github.com/ruby/ruby/commit/801e1fe46d83c856844ba18ae4751478c59af0d1.diff > openssl.patch 
$ rvm install --patch ./openssl.patch 1.9.3-p194 

Zbudowałem ruby-1.9.3-p194, ruby-2.0.0-p247 i ruby-2.2.1 z powodzeniem z tą łatką.

+0

Jeśli ktokolwiek musi zbudować Ruby 1.8 na tych samych warunkach, to łatka działa: https://gist.githubusercontent.com/sigmike/34fe96a35cd92978fc2caa4058de6cb5/raw/6672f7b5350518ea05d1f33463d42b464d959bf3/ruby1_8_ssl_fix.diff –

+0

Potwierdzić poprawkę z @ MichaëlWitrant działa również dla 1.9.2-p290 – numbers1311407

Powiązane problemy