Ruby在CentOS上安装

我正在尝试在Centos-6.4 64位上安装Ruby,如下所示:

mkdir /tmp/ruby && cd /tmp/ruby curl --progress ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p247.tar.gz | tar xz cd ruby-2.0.0-p247 ./configure --disable-install-rdoc make sudo make install 

make ,显示以下错误:

 ossl_pkey_ec.c: In function 'ossl_ec_group_initialize': ossl_pkey_ec.c:766: warning: implicit declaration of function 'EC_GF2m_simple_method' ossl_pkey_ec.c:766: warning: assignment makes pointer from integer without a cast ossl_pkey_ec.c:821: error: 'EC_GROUP_new_curve_GF2m' undeclared (first use in this function) ossl_pkey_ec.c:821: error: (Each undeclared identifier is reported only once ossl_pkey_ec.c:821: error: for each function it appears in.) make[2]: *** [ossl_pkey_ec.o] Error 1 make[2]: Leaving directory `/tmp/ruby/ruby-2.0.0-p247/ext/openssl' make[1]: *** [ext/openssl/all] Error 2 make[1]: Leaving directory `/tmp/ruby/ruby-2.0.0-p247' make: *** [build-ext] Error 2 

我已经在CentOS 6.5上安装了,没有这个问题,我现在需要CentOS 6.4,这个问题似乎与OpenSSL有关。

我认为你在使用p247和更早版本的Ruby的OpenSSL API中遇到了一个bug。 虽然我给出的链接是Fedora特有的,但我认为CentOS也是同样的问题。

在构build之前尝试应用这个补丁 。 更多信息在这里 。

你很可能需要openssl-devel的系统库和相关头文件。 尝试这个:

 yum install openssl-devel 

如果你想要覆盖所有的依赖关系,这应该工作:

 yum install patch gcc-c++ make bzip2 autoconf automake libtool bison iconv-devel readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel 

然后回到你的ruby-2.0.0-p247目录,做一个make clean ,再试一次。

在这里可以find更多有关在不同系统上安装Ruby的“细节”的细节。

检查openssl-devel是否安装。 在编译过程中90%的问题是缺less的开发包。

值得一提的是,安装任何依赖关系之后,您需要重新运行configure步骤。 只要重新运行make不会,至less在所有情况下都不行。