为什么我得到错误'The Ruby openssl extension was not compiled ERROR:Ruby安装由于缺少扩展而中止?

zysjyyx4  于 2023-04-20  发布在  Ruby
关注(0)|答案(3)|浏览(97)

当我跑的时候
RUBY_CONFIGURE_OPTS=--with-openssl-dir=/usr/local/Cellar/openssl@3/3.0.1 rbenv install 3.1.0
我得到这个输出:

Downloading ruby-3.1.0.tar.gz...
-> https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.0.tar.gz
Installing ruby-3.1.0...
ruby-build: using readline from homebrew

BUILD FAILED (macOS 11.6.2 using ruby-build 20211227-3-gcdc215e)

Inspect or clean up the working tree at /var/folders/ts/k_8jb10136s3zw9k2k08nz3c0000gn/T/ruby-build.20220113093111.65052.FVpqjp
Results logged to /var/folders/ts/k_8jb10136s3zw9k2k08nz3c0000gn/T/ruby-build.20220113093111.65052.log

Last 10 log lines:
The Ruby openssl extension was not compiled.
ERROR: Ruby install aborted due to missing extensions
Configure options used:
  --prefix=/Users/jeremy/.rbenv/versions/3.1.0
  --enable-shared
  --with-readline-dir=/usr/local/opt/readline
  --with-openssl-dir=/usr/local/Cellar/openssl@3/3.0.1
  CC=clang
  LDFLAGS=-L/Users/jeremy/.rbenv/versions/3.1.0/lib
  CPPFLAGS=-I/Users/jeremy/.rbenv/versions/3.1.0/include

我在日志中没有看到任何线索,我尝试了很多方法,比如重新安装rbenv和openssl,不指定配置选项,系统更新,安装xcode,还有更多来自google的东西,也许我错过了什么。

jgzswidk

jgzswidk1#

嗨,我也一直在'Mac OS X 10.15.7使用ruby-build'上运行这个,我必须在rbenv install 3.0.1命令之前同时设置以下两个变量:

OPENSSL_CFLAGS=-Wno-error=implicit-function-declaration RUBY_CONFIGURE_OPTS=--with-readline-dir="$(brew --prefix readline)" rbenv install 3.0.1

第一个命令告诉编译器忽略函数隐式声明的位置,而不是在发生这种情况时出错;第二个命令告诉ruby使用哪一个readline(在本例中是通过homebrew安装的)。

eblbsuwk

eblbsuwk2#

Ruby还不支持OpenSSL 3.0。对这个新版本的实现支持在https://github.com/ruby/openssl/issues/369中进行了跟踪
现在,您必须使用Openssl1.1,您可以使用

brew install openssl@1.1
ebdffaop

ebdffaop3#

我最终不得不卸载/重新安装rbenv,这解决了它。
brew uninstall rbenv

相关问题