Ruby 不会安装新版本

Ric*_*ich 1 ruby installation homebrew ruby-build

我正在尝试安装 Ruby 2.7.6,但是当我运行时 % rbenv version

我得到:

rbenv:版本2.7.6' is not installed (set by /Users/[USER]/Documents/[FOLDER]/.ruby-version)

我的文件.ruby-version包含:2.7.6

运行时:%. rbenv install 出现错误:

构建失败(macOS 12.5 使用 ruby​​-build 20220726)

笔记:

  • 当前安装的 Ruby 是 2.6.10 安装的
  • 在 MBP 上运行 macOS v12.5

终端跟踪

> (base) uxdw@MacBook-Pro [FOLDER] % rbenv install      
Downloading openssl-1.1.1q.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca
Installing openssl-1.1.1q...
patching file test/v3ext.c
Installed openssl-1.1.1q to /Users/[USER]/.rbenv/versions/2.7.6

Downloading ruby-2.7.6.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.6.tar.bz2
Installing ruby-2.7.6...
ruby-build: using readline from homebrew

BUILD FAILED (macOS 12.5 using ruby-build 20220726)

Inspect or clean up the working tree at /var/folders/sz/svbmflb15kd5dy8g9kctn9t40000gn/T/ruby-build.20220805134427.72844.lmy9oj
Results logged to /var/folders/sz/svbmflb15kd5dy8g9kctn9t40000gn/T/ruby-build.20220805134427.72844.log

Last 10 log lines:
compiling date_parse.c
linking shared-object strscan.bundle
compiling date_strftime.c
compiling date_strptime.c
linking shared-object io/console.bundle
installing default date_core libraries
linking shared-object objspace.bundle
linking shared-object nkf.bundle
linking shared-object date_core.bundle
make: *** [build-ext] Error 2
(base) uxdw@MacBook-Pro [FOLDER] % 
Run Code Online (Sandbox Code Playgroud)

小智 5

rbenv正在安装 openssl-1.1.1q 作为先决条件,并且由于缺少包含语句(至少在 ARM64 版本中存在该语句),它将崩溃。M1 和 M2 MBP 就是这种情况,所以我根据您上面的描述进行猜测。

  1. 安装openssl(我用过brew、ymmv)
brew install openssl@1.1
Run Code Online (Sandbox Code Playgroud)
  1. 暂时将以下行添加到您的 .zshrc 中
export PATH="`brew --prefix openssl@1.1`/bin:$PATH"
export LDFLAGS="-L`brew --prefix openssl@1.1`/lib"
export CPPFLAGS="-I`brew --prefix openssl@1.1`/include"
export PKG_CONFIG_PATH="`brew --prefix openssl@1.1`/lib/pkgconfig"
export RUBY_CONFIGURE_OPTS="--with-openssl-dir=`brew --prefix openssl@1.1`"
Run Code Online (Sandbox Code Playgroud)
  1. 关闭并重新打开您的终端

  2. rbenv再次运行,CONFIGURE_OPTS启用

CONFIGURE_OPTS=--with-openssl-dir=`brew --prefix openssl@1.1` rbenv install 2.7.6
Run Code Online (Sandbox Code Playgroud)