我已经使用rvm(rvm pkg install openssl
)安装了OpenSSL,然后执行了rvm reinstall 1.9.3 --with-openssl-dir=$rvm_path/usr
当我尝试运行瘦Web服务器时,出现以下错误:
/home/ubuntu/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/x86_64-linux/openssl.so: 未定义的符号:SSLv2_method - /home/ubuntu/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/x86_64-linux/openssl.so (LoadError)
这是在Ubuntu 12.04上运行的,我读过Ubuntu 12构建没有SSLv2支持的OpenSSL。然而,这里它引用了RVM的包 - RVM是否也这样做?这个问题有没有已知的解决方法?
答案 0 :(得分:4)
正如你所说,Ubuntu在没有SSLv2支持的情况下构建openssl:Ubuntu and undefined symbol for SSLv2_method
对于读这篇文章的人来说,你的选择是(越来越难):
(1)安装rvm版本1.14.7,其中openssl pkg包含openssl 0.9.8版,默认包括SSLv2支持。
rvm implode # Completely destroy your rvm installation
curl -L https://get.rvm.io | bash -s -- --version 1.14.7
安装所需的软件包,重新编译你的ruby,它应该可以工作!
(2)(这为您提供了更多安全性):从源代码编译您自己的openssl,将其配置为包含SSLv2支持,然后使用--with-openssl-dir重新编译您的ruby,指向安装openssl的位置。< / p>
(3)修复精简版,使其不再需要SSLv2_method符号,然后在GitHub上提交拉取请求