使用 ruby-install/ruby-build 在 Archlinux 上安装 Ruby 2.1.x 和 2.3.x 时出现 OpenSSL 错误
OpenSSL error installing Ruby 2.1.x and 2.3.x on Archlinux with ruby-install/ruby-build
我在使用 ruby-install 在 Archlinux 上构建旧版本的 Ruby 时遇到了一些问题。我怀疑 ruby-build 也会发生同样的情况。我在尝试安装 Ruby 2.1.5、2.1.6、2.3.0、2.3.1、2.3.4 后看到以下内容。
/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."
或
ossl_ssl.c:465:38: error: ‘CRYPTO_LOCK_SSL_SESSION’ undeclared
如果尚未安装,您需要 Open SSL 1.0:
pacman -S openssl-1.0
安装 Ruby2.3.x 需要以下内容:
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还需要一个补丁:
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),可能需要不同的补丁,可以在此处下载:
https://github.com/rbenv/ruby-build/wiki#openssl-sslv3_method-undeclared-error
编译时内存损坏和段错误ruby
如果在编译时出现段错误,可能是因为最新版本的gcc。解决方法是安装旧版本,然后将其指定为 ruby-install:
sudo pacman -S gcc5
CC=/usr/sbin/gcc-5 PKG_CONFIG_PATH=/usr/lib/openssl-1.0/pkgconfig ruby-install ruby 2.3.0
我在使用 ruby-install 在 Archlinux 上构建旧版本的 Ruby 时遇到了一些问题。我怀疑 ruby-build 也会发生同样的情况。我在尝试安装 Ruby 2.1.5、2.1.6、2.3.0、2.3.1、2.3.4 后看到以下内容。
/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."
或
ossl_ssl.c:465:38: error: ‘CRYPTO_LOCK_SSL_SESSION’ undeclared
如果尚未安装,您需要 Open SSL 1.0:
pacman -S openssl-1.0
安装 Ruby2.3.x 需要以下内容:
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还需要一个补丁:
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),可能需要不同的补丁,可以在此处下载:
https://github.com/rbenv/ruby-build/wiki#openssl-sslv3_method-undeclared-error
编译时内存损坏和段错误ruby
如果在编译时出现段错误,可能是因为最新版本的gcc。解决方法是安装旧版本,然后将其指定为 ruby-install:
sudo pacman -S gcc5
CC=/usr/sbin/gcc-5 PKG_CONFIG_PATH=/usr/lib/openssl-1.0/pkgconfig ruby-install ruby 2.3.0