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

我已经用rvm( rvm pkg install opensslrvm pkg install openssl ,然后rvm reinstall 1.9.3 --with-openssl-dir=$rvm_path/usrrvm 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:undefined symbol: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是否也这样做? 这个问题有没有已知的解决方法?

正如你所说,Ubuntu在没有SSLv2支持的情况下构建openssl: Ubuntu和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的位置。

(3)修复瘦,使其不再需要SSLv2_method符号,然后在GitHub上提交拉取请求