在 CentOS 上安装 Ruby

在 CentOS 上安装 Ruby

我正在尝试在 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 有关。

答案1

我认为您遇到了 Ruby 的 OpenSSL API 中的错误,该 API 存在于 p247 及更早版本中。虽然我提供的链接是 Fedora 专用的,但我认为同样的问题也适用于 CentOS。

尝试申请此补丁在建造之前。更多信息这里

答案2

您很可能需要来自 的系统库和相关标头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从头开始再试一次。

在不同系统上安装 Ruby 的“陷阱”的更多详细信息可以在这里找到

答案3

检查是否openssl-devel已安装。编译期间 90% 的问题都是缺少开发包。

答案4

值得一提的是,安装完任何依赖项后,您需要重新运行 configure 步骤。简单地重新运行 make 是行不通的,至少不是在所有情况下都是如此。

相关内容