由于SSL_OP_MSIE_SSLV2_RSA_PADDING未声明,无法通过RBEnv安装Ruby 1.9.3-p194

时间:2014-06-10 11:52:54

标签: ruby install rbenv

我尝试在干净的服务器上安装Ruby。

Server是Debian 6.0.9,我升级到Debian 7.5

我已经通过apt-get install安装了RBEnv和build-support。

当我尝试安装Ruby 1.9.3-p194(通过ruby-build --definitions在列表中求和)时,我收到安装失败的错误。

当我检查日志文件中的错误时,我收到了下一个错误:

make[2]: Entering directory `/tmp/ruby-build.20140610073619.8858/ruby-1.9.3-p194/ext/openssl'
compiling ossl_pkey_rsa.c
compiling ossl_asn1.c
compiling callback-4.c
compiling ossl_x509.c
compiling ossl_pkcs5.c
compiling ossl_x509crl.c
compiling ossl_rand.c
compiling ossl_pkey_dsa.c
compiling ossl_x509cert.c
compiling ossl_ssl_session.c
compiling ossl_config.c
compiling callback-5.c
compiling ossl_engine.c
compiling ossl_pkey_ec.c
compiling ossl_bn.c
compiling ossl_x509name.c
compiling ossl_ssl.c
ossl_ssl.c: In function 'Init_ossl_ssl':
ossl_ssl.c:1982:5: error: 'SSL_OP_MSIE_SSLV2_RSA_PADDING' undeclared (first use in this function)
ossl_ssl.c:1982:5: note: each undeclared identifier is reported only once for each function it appears in
make[2]: *** [ossl_ssl.o] Error 1
make[2]: Leaving directory `/tmp/ruby-build.20140610073619.8858/ruby-1.9.3-p194/ext/openssl'
make[1]: *** [ext/openssl/all] Error 2
make[1]: *** Waiting for unfinished jobs....
compiling callback-6.c
compiling callback-7.c
compiling callback-8.c
linking shared-object dl/callback.so
make[2]: Leaving directory `/tmp/ruby-build.20140610073619.8858/ruby-1.9.3-p194/ext/dl/callback'
make[1]: Leaving directory `/tmp/ruby-build.20140610073619.8858/ruby-1.9.3-p194'
make: *** [build-ext] Error 2

我已经安装/更新了openSSL版本(OpenSSL 1.0.1e 2013年2月11日)并安装了libssl-dev,但错误仍然存​​在。

任何人都知道我缺少SSL_OP_MSIE_SSLV2_RSA_PADDING声明了什么? 这是Ruby安装中的错误,还是我在其他地方遇到安装问题?

欢迎所有建议:)

(我已经花了一些时间在谷歌搜索,搜索很多网站,我想我正在寻找错误的解决方案..)

- 编辑: 我发现Ruby 2.1 fails to install due to OpenSSL error说它在最新的OPEN_SSL中删除了宏,这是否意味着我不能再使用Ruby 1.9.x了?当我列出通过rbenv提供的ruby版本时,没有列出稳定的ruby 2 +我更喜欢继续使用Ruby 1.9。我应该降级open_ssl(不是明智之举)还是?

1 个答案:

答案 0 :(得分:1)

看起来定义在1.0.1e-2 + deb7u6之后的某个时间被删除,当然不存在于1.0.1e-2 + deb7u10中。

我通过添加

解决了这个问题
#define SSL_OP_MSIE_SSLV2_RSA_PADDING           0x00000040L /* no effect since 0.9.7h and 0.9.8b */ 

回到/usr/include/openssl/ssl.h。 (摘自1.0.1e-2 + deb7u6)

请自担风险,我没有调查过该值会发生什么。