sta*_*fry 8 ruby openssl archlinux rvm
最近在ArchLinux上的OpenSSL更新破坏了Ruby,因为后者依赖于前者支持的SSLv3.使用OpenSSL的Ruby代码将在终止时出现如下错误的问题:
openssl.so: undefined symbol: SSLv3_method - .../openssl.so (LoadError)
Run Code Online (Sandbox Code Playgroud)
我使用RVM的多个版本的Ruby,这个问题适用于所有这些版本.
我遇到问题的OpenSSL版本是,1.0.2h但我相信它是随之而来的1.0.2g.版本1.0.2f工作正常.
如何克服兼容性问题(不降低OpenSSL)?
sta*_*fry 14
由ArchLinux的OpenSSL软件包引起的问题正在兴建的SSLv3不支持,作为这一承诺.我相信在其他发行版中也做过类似的事情,比如Ubuntu.
RVM环境中的解决方案是重新安装将重建它们的Rubies(您可能还希望更新到最新的rvm):
$ rvm get head # optional, if you want to!
$ rvm reinstall all # or a specifc ruby version instead of 'all'
Run Code Online (Sandbox Code Playgroud)
但是,旧的rubies仍然会因为编译错误而失败:
Error running '__rvm_make -j1'
ossl_ssl.c:143:27: error: ‘SSLv3_client_method’ undeclared here (not in a function)
Run Code Online (Sandbox Code Playgroud)
已经与已建议安装此Ruby补丁的RVM团队讨论过这个问题,该补丁允许构建旧的rubies:
$ curl https://github.com/ruby/ruby/commit/801e1fe46d83c856844ba18ae4751478c59af0d1.diff > openssl.patch
$ rvm install --patch ./openssl.patch 1.9.3-p194
Run Code Online (Sandbox Code Playgroud)
我建立了ruby-1.9.3-p194,ruby-2.0.0-p247并ruby-2.2.1成功使用此补丁.
| 归档时间: |
|
| 查看次数: |
2425 次 |
| 最近记录: |