未定义符号:尝试运行瘦网络服务器时的 SSLv2_method [英] undefined symbol: SSLv2_method when trying to run Thin webserver
问题描述
我已经用 rvm (rvm pkg install openssl
) 安装了 OpenSSL,然后 rvm 重新安装了 1.9.3 --with-openssl-dir=$rvm_path/usr
I've installed OpenSSL with rvm (rvm pkg install openssl
) and then did rvm reinstall 1.9.3 --with-openssl-dir=$rvm_path/usr
当我尝试运行瘦网络服务器时,出现以下错误:
When I try to run the thin webserver, I get the following error:
/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(加载错误)
/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 是否也这样做?是否有针对此问题的已知解决方法?
This is running on Ubuntu 12.04, and I've read that Ubuntu 12 builds OpenSSL without SSLv2 support. Yet, here it's referencing RVM's package -- does RVM do the same? Is there any known workaround for this problem?
推荐答案
如你所说,Ubuntu 构建 openssl 不支持 SSLv2:Ubuntu 和 SSLv2_method 的未定义符号
As you say, Ubuntu builds openssl without SSLv2 support: Ubuntu and undefined symbol for SSLv2_method
对于阅读本文的人,您的选择是(难度越来越大):
For people reading this, your options are (in increasing difficulty):
(1) 安装 rvm 版本 1.14.7,其中 openssl pkg 包括 openssl 版本 0.9.8,并且默认包括 SSLv2 支持.
(1) install rvm version 1.14.7, where the openssl pkg includes openssl version 0.9.8, and includes SSLv2 support by default.
rvm implode # Completely destroy your rvm installation
curl -L https://get.rvm.io | bash -s -- --version 1.14.7
安装所需的包,重新编译你的 ruby,它应该可以工作了!
Install the required packages, recompile your ruby, and it should work!
(2)(这为您提供更多安全性):从源代码编译您自己的 openssl,将其配置为包含 SSLv2 支持,然后使用 --with-openssl-dir 指向您安装 openssl 的任何位置重新编译您的 ruby.
(2) (This gives you more security): Compile your own openssl from source, configuring it to include SSLv2 support, then recompile your ruby with the --with-openssl-dir pointing at wherever you installed openssl to.
(3) 修复 Thin 使其不再需要 SSLv2_method 符号,然后在 GitHub 上提交拉取请求
(3) Fix thin so that it no longer requires the SSLv2_method symbol, then submit a pull request on GitHub
这篇关于未定义符号:尝试运行瘦网络服务器时的 SSLv2_method的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!