Ruby 2.3.8 在mint中使用rbenv安装报错 | uncommon.mk:203: 目标 'build-ext' 的配方失败

Ruby 2.3.8 installation error using rbenv in mint | uncommon.mk:203: recipe for target 'build-ext' failed

我刚刚安装了 Mint 19(Tara) 并尝试使用 rbenv 安装 Ruby 2.3.8 并得到了这个 error.Can 有人帮我吗?

$ rbenv install 2.3.8                                                                                                                                                              1 ↵
Downloading ruby-2.3.8.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.8.tar.bz2
Installing ruby-2.3.8...

WARNING: ruby-2.3.8 is past its end of life and is now unsupported.
It no longer receives bug fixes or critical security updates.


BUILD FAILED (LinuxMint 19 using ruby-build 20200401-11-g12af1c3)

Inspect or clean up the working tree at /tmp/ruby-build.20200519084931.6743.ptWQ7b
Results logged to /tmp/ruby-build.20200519084931.6743.log

Last 10 log lines:
../../internal.h:84:30: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
linking shared-object json/ext/generator.so
make[2]: Leaving directory '/tmp/ruby-build.20200519084931.6743.ptWQ7b/ruby-2.3.8/ext/json/generator'
linking shared-object objspace.so
make[2]: Leaving directory '/tmp/ruby-build.20200519084931.6743.ptWQ7b/ruby-2.3.8/ext/objspace'
linking shared-object nkf.so
make[2]: Leaving directory '/tmp/ruby-build.20200519084931.6743.ptWQ7b/ruby-2.3.8/ext/nkf'
make[1]: Leaving directory '/tmp/ruby-build.20200519084931.6743.ptWQ7b/ruby-2.3.8'
uncommon.mk:203: recipe for target 'build-ext' failed
make: *** [build-ext] Error 2

看来问题不在于 rbenv,而在于 chrubyasdf 等其他版本管理器。真正的问题是 openssl 和 ruby 2.3.x.

的兼容性问题

Ruby 2.4 之前版本的 openssl 扩展与 OpenSSL 1.1.x 不兼容。目前,OpenSSL 1.1.0 附带的大多数 Linux 发行版都有一个单独的 OpenSSL 1 包。0.x.

您需要安装较早版本的OpenSSL或使用ruby 2.4.x.

sudo apt-get install autoconf bison build-essential libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm5 libgdbm-dev libdb-dev


sudo apt-get install libssl1.0-dev

这解决了我的问题。

注:

libgdbm5 适用于 Ubuntu19 或 Mint19,libgdbm6 适用于更高版本。

对于 MacOS and Home brew 参见 https://github.com/rbenv/ruby-build/wiki#openssl-version-compatibility