2012-11-13 32 views
4

我已经安装了RVM(rvm pkg install openssl)的OpenSSL,然后什么时候rvm reinstall 1.9.3 --with-openssl-dir=$rvm_path/usr未定义的符号:SSLv2_method尝试运行Web服务器薄

当我尝试运行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是否也这样做?有没有已知的解决方法解决这个问题?

+0

我正好找到了同样的问题提交pull请求。你找到解决方案吗? – user1158559

+0

我认为这将是固定的,如果你可以安装一个特定版本的openssl pkg - 我相信0.9.8可能是你想要的。 – user1158559

+0

不知道如何做到这一点,但rvm版本1.14.7的openssl包版本是0.9.8t。如果它在我重新编译过红宝石时起作用,我会告诉你。 – user1158559

回答

4

正如你所说的,Ubuntu建立的OpenSSL没有的SSLv2支持: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 

安装所需的软件包,重新编译你的红宝石,它应该工作! (2)(这会给你更多的安全性):从源代码编译自己的openssl,配置它以包含SSLv2支持,然后使用--with-openssl-dir重新编译你的ruby,指向你安装openssl的地方。

(3)固定薄,使得它不再需要SSLv2_method符号,然后在GitHub

+1

从我的寒冷底下,开发者心中:谢谢。我没有这个确切的问题,但是你的解决方案#1正是我所需要的。 –

相关问题