【问题标题】:Ruby installation (2.2.2) fails in macOS Big SurmacOS Big Sur 中的 Ruby 安装 (2.2.2) 失败
【发布时间】:2020-12-31 18:12:45
【问题描述】:

我在 macOS Big Sur 上安装 Ruby 2.2.2 时遇到了一些问题。有没有人遇到过他们能够解决的类似问题?非常感谢????

错误:

`Downloading openssl-1.0.2u.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/ecd0c6ffb493dd06707d38b14bb4d8c2288bb7033735606569d8f90f89669d16
Installing openssl-1.0.2u...
Installed openssl-1.0.2u to /Users/findum/.rbenv/versions/2.2.2

Downloading ruby-2.2.2.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.2.tar.bz2
Installing ruby-2.2.2...

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

ruby-build: using readline from homebrew

BUILD FAILED (macOS 11.1 using ruby-build 20201225)

Inspect or clean up the working tree at /var/folders/x8/g8yqvrh55gq0wds4hny1t94r0000gn/T/ruby-build.20210101111906.42540.uFRvAN
Results logged to /var/folders/x8/g8yqvrh55gq0wds4hny1t94r0000gn/T/ruby-build.20210101111906.42540.log

Last 10 log lines:
compiling ../.././ext/psych/yaml/parser.c
linking shared-object json/ext/parser.bundle
linking shared-object pathname.bundle
installing default psych libraries
linking shared-object json/ext/generator.bundle
linking shared-object bigdecimal.bundle
linking shared-object psych.bundle
linking shared-object nkf.bundle
linking shared-object date_core.bundle
make: *** [build-ext] Error 2`

【问题讨论】:

  • 尝试使用此命令安装:RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@1.0)" rbenv install 2.2.2
  • 我建议检查错误消息 /var/folders/x8/g8yqvrh55gq0wds4hny1t94r0000gn/T/ruby-build.20210101111906.42540.log 中提到的日志文件。它可能包含其他有用的信息。
  • 查看我的更新答案。我不使用 rbenv 或 ruby​​-build,所以无法说明它的功效。
  • "警告:ruby-2.2.2 已结束生命周期,现在不受支持。它不再接收错误修复或关键安全更新。" 您是否特别需要Ruby 2.2.2?
  • 谢谢@Schwern!是的,我正在重新启动一个旧项目。学习如何升级到新的 Ruby 版本:)

标签: ruby macos homebrew


【解决方案1】:

编辑

看起来 OP 编辑​​了原始消息中的错误,因此以下答案不再相关。留在这里留给后代。


更新答案

基于 rbenv repo 上几个 Github 问题的讨论,

听起来 Apple 更改了默认的 CFLAGS 作为 xcode 12 的一部分,这使得一些本机扩展安装变得混乱。听起来这些问题中提出的解决方案是

CFLAGS="-Wno-error=implicit-function-declaration" rbenv install 2.2.2

原答案

错误指出由于扩展问题而失败

The Ruby readline extension was not compiled.
The Ruby zlib extension was not compiled.
ERROR: Ruby install aborted due to missing extensions

所以我建议先尝试手动安装这些扩展,然后重试 ruby​​ 安装。

使用冲泡:

brew install readline
brew install zlib

ruby-build 的 github 上的一些问题也可能有所帮助:

【讨论】:

  • 谢谢@supremebeing7!我同时运行了brew install readline brew install zlib,但是看起来它们已经安装并且是最新的。我重新安装了 readline 和 zlib,但仍然没有运气:(
  • 重新安装后同样的错误?如何使用链接的 github 问题中的命令,例如RUBY_CONFIGURE_OPTS=--with-readline-dir="$(brew --prefix readline)" --with-zlib-dir="$(brew --prefix zlib)"
  • 哦,等等,您好像更新了帖子中的错误消息?
  • 啊!对不起——我是 Stack Overflow 的新手!我应该保留原来的错误。 ? 最初的错误是 Ruby readline/zlib。错误演变为当前描述。 CFLAGS="-Wno-error=implicit-function-declaration" rbenv install 2.2.2 解决了问题!非常感谢您的帮助,@supremebeing7!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-28
  • 1970-01-01
  • 2022-01-31
  • 1970-01-01
  • 2020-12-18
  • 2021-01-20
相关资源
最近更新 更多