未定义的符号:尝试运行Thin Webserver时的SSLv2_method

时间:2012-11-13 18:20:33

标签: ruby rvm

我已经使用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是否也这样做?这个问题有没有已知的解决方法?

1 个答案:

答案 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上提交拉取请求