linux编译ruby1.8.7 出现OPENSSL错误

Posted 爱你爱自己

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux编译ruby1.8.7 出现OPENSSL错误相关的知识,希望对你有一定的参考价值。

安装ruby-1.8.7出现编译错误.如下:
ossl_pkey_ec.c:815: error: ‘EC_GROUP_new_curve_GF2m’ undeclared (first use in this function)
ossl_pkey_ec.c:815: error: (Each undeclared identifier is reported only once
ossl_pkey_ec.c:815: error: for each function it appears in.)
make[1]: *** [ossl_pkey_ec.o] Error 1
make[1]: Leaving directory `/home/vagrant/ruby-1.8.7-p357/ext/openssl‘
make: *** [all] Error 1
 
解决方法如下:
vi ~/install/ruby-1.8.7-p357/ext/openssl/ossl_pkey_ec.c
改下面4个地方,+号是添加的:
 
                 method = EC_GFp_mont_method();
             } else if (id == s_GFp_nist) {
                 method = EC_GFp_nist_method();
+              
#if !defined(OPENSSL_NO_EC2M)
             } else if (id == s_GF2m_simple) {
                 method = EC_GF2m_simple_method();
+              
#endif
             }
             if (method) {
             if (id == s_GFp) {
                 new_curve = EC_GROUP_new_curve_GFp;
+              
#if !defined(OPENSSL_NO_EC2M)
             } else if (id == s_GF2m) {
                 new_curve = EC_GROUP_new_curve_GF2m;
+              
#endif
             } else {
                 rb_raise(rb_eArgError, "unknown symbol, must be :GFp or :GF2m");
             }
 
 
改好了之后,再重新编译,如下:
./configure --prefix=/usr/local/ruby
make
make install
然后再查看ruby版本号:
/usr/local/ruby/bin/ruby -v
ruby 1.8.7 (2012-02-08 patchlevel 358) [x86_64-linux]
 
好了,问题解决.

以上是关于linux编译ruby1.8.7 出现OPENSSL错误的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Ruby 1.9.2 降级到 Ruby 1.8.7 以运行 Rails 2.0.2

RMagick 的 RVM Ruby 1.8.6 问题

Linux里面openss-devel是啥?

如何从 /usr/local 卸载 Ruby?

Ruby 1.8 和 Ruby 1.9 有啥区别

请建议适当的附件插件/宝石用于 Rails 2.0.2 和 Ruby 1.8.7