4

我已经用 rvm ( rvm pkg install openssl) 安装了 OpenSSL,然后做了rvm reinstall 1.9.3 --with-openssl-dir=$rvm_path/usr

当我尝试运行瘦网络服务器时,我收到以下错误:

/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(加载错误)

这是在 Ubuntu 12.04 上运行的,我读过 Ubuntu 12 构建 OpenSSL 时不支持 SSLv2。然而,这里它引用了 RVM 的包——RVM 也这样做吗?此问题是否有任何已知的解决方法?

4

1 回答 1

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 的位置。

(3) 修复 thin 使其不再需要 SSLv2_method 符号,然后在GitHub 上提交 pull request

于 2012-11-20T11:59:32.333 回答