首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ruby-install/ Ruby -build在Archlinux上安装Ruby2.1.x和2.3.x时OpenSSL错误

使用ruby-install/ Ruby -build在Archlinux上安装Ruby2.1.x和2.3.x时OpenSSL错误
EN

Stack Overflow用户
提问于 2017-05-22 14:50:06
回答 1查看 3.2K关注 0票数 9

在Archlinux上使用Ruby构建早期版本的ruby遇到了一些问题。我怀疑红宝石制造也是如此。在尝试安装Ruby2.1.5、2.1.6、2.3.0、2.3.1、2.3.4之后,我看到了以下内容。

代码语言:javascript
复制
/usr/include/openssl/asn1_mac.h:10:2: error: #error "This file is obsolete; please update your software."
#error "This file is obsolete; please update your software."

代码语言:javascript
复制
ossl_ssl.c:465:38: error: ‘CRYPTO_LOCK_SSL_SESSION’ undeclared
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-22 14:50:06

如果尚未安装,则需要OpenSSL1.0:

代码语言:javascript
复制
pacman -S openssl-1.0

要安装Ruby2.3.x,需要以下内容:

代码语言:javascript
复制
PKG_CONFIG_PATH=/usr/lib/openssl-1.0/pkgconfig ruby-install ruby 2.3.0

我以这种方式安装了2.3.0、2.3.1和2.3.4。

我正在使用ruby-install,但这可能也适用于ruby-build (rbenv)。

对于Ruby2.1.x和2.2.x,还需要一个修补程序:

代码语言:javascript
复制
curl -fsSL https://gist.github.com/mislav/055441129184a1512bb5.txt > ruby2.x-openssl.patch
PKG_CONFIG_PATH=/usr/lib/openssl-1.0/pkgconfig ruby-install -p ruby2.x-openssl.patch ruby 2.1.5

我以这种方式安装了2.1.5和2.1.6。

对于较早版本的Ruby (< 2),可能需要一个不同的修补程序,可以在这里下载:

method-undeclared-error

编译ruby时损坏的内存和段错误

如果编译时出现分段错误,可能是因为gcc的最新版本。解决办法是安装一个旧版本,然后将其指定为ruby:

代码语言:javascript
复制
sudo pacman -S gcc5
CC=/usr/sbin/gcc-5 PKG_CONFIG_PATH=/usr/lib/openssl-1.0/pkgconfig ruby-install ruby 2.3.0

参考资料:https://github.com/rbenv/ruby-build/issues/1092

票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44116005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档