我正在尝试在 CentOS 5.5 上安装 Ruby 1.9.2。我完成了大部分 make 过程,但当它尝试编译 OpenSSL 时,我收到错误。以下是输出的错误:
compiling openssl
make[1]: Entering directory `/sources/ruby-1.9.2-p136/ext/openssl'
gcc -I. -I../../.ext/include/x86_64-linux -I../.././include -I../.././ext/openssl -DRUBY_EXTCONF_H=\"extconf.h\" -fPIC -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wno-long-long -o ossl_x509.o -c ossl_x509.c
In file included from ossl.h:201,
from ossl_x509.c:11:
openssl_missing.h:71: error: conflicting types for ‘HMAC_CTX_copy’
/usr/include/openssl/hmac.h:102: error: previous declaration of ‘HMAC_CTX_copy’ was here
openssl_missing.h:95: error: conflicting types for ‘EVP_CIPHER_CTX_copy’
/usr/include/openssl/evp.h:459: error: previous declaration of ‘EVP_CIPHER_CTX_copy’ was here
make[1]: *** [ossl_x509.o] Error 1
make[1]: Leaving directory `/sources/ruby-1.9.2-p136/ext/openssl'
make: *** [mkmain.sh] Error 1
任何帮助都将不胜感激!我绝不是 Linux 专家,但我能够在我们的开发服务器上成功安装此版本的 Ruby。我们的实时服务器正在运行较新版本的 OpenSSL,我猜想这就是它崩溃的原因。只是不确定修复方法是什么!
答案1
我谷歌了一下,找到了一篇博客文章在 CentOS 上安装 Ruby 1.9。我只在 CentOS 上通过源代码安装过 Ruby 一两次,那已经是一年前的事了,但我强烈建议您先使用 CentOS 包管理器 (yum) 完成所有操作 - 例如使用 yum 安装 openssl 和 openssl-devel,如下所示:
yum install openssl openssl-devel
希望这有帮助,大卫