在 Mac 上安装 ruby​​ 2.6.5 时运行“__rvm_make -j10”时出错

Aaq*_*wed 5 ruby macos ruby-on-rails rvm

我正在尝试在具有 m1 pro 芯片的 mac 上安装 ruby​​ 2.6.5,但它给出了“__rvm_make -j10”错误。

我尝试用谷歌搜索,但找不到“__rvm_make -j10”的错误。stackoverflow 上有一个问题有同样的错误,我尝试了相同的方法,但它也不起作用。

我尝试过“rvm install 2.6.5 --with-out-ext=fiddle” 我也尝试过使用 open ssl 1.0,但没有一个有效。

sammalik@Sams-MacBook-Pro rubyporgram % rvm install 2.6.5
ruby-2.6.5 - #removing src/ruby-2.6.5 - please wait
Searching for binary rubies, this might take some time.
No binary rubies available for: osx/13.0/arm64/ruby-2.6.5.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Checking requirements for osx.
Updating certificates bundle '/opt/homebrew/etc/openssl@1.1/cert.pem'
Requirements installation successful.
Installing Ruby from source to: /Users/sammalik/.rvm/rubies/ruby-2.6.5, this may take a while depending on your cpu(s)...
ruby-2.6.5 - #downloading ruby-2.6.5, this may take a while depending on your connection...
ruby-2.6.5 - #extracting ruby-2.6.5 to /Users/sammalik/.rvm/src/ruby-2.6.5 - please wait
ruby-2.6.5 - #configuring - please wait
ruby-2.6.5 - #post-configuration - please wait
ruby-2.6.5 - #compiling - please wait
Error running '__rvm_make -j10',
please read /Users/sammalik/.rvm/log/1668327329_ruby-2.6.5/make.log
There has been an error while running make. Halting the installation.
Run Code Online (Sandbox Code Playgroud)

mon*_*esh 5

任何具有 Apple 命令行工具版本 14 或更高版本的 Mac 都不再支持 Ruby 2.6.x,macOS Ventura (13.0) 上就是这种情况。假设您安装了 Homebrew,您可以通过运行来检查您拥有的版本brew config,然后查看底部以CLT:和开头的行Xcode:

Ruby 2.6 已于 2022 年 3 月终止生命周期,因此出于安全原因,不应将其用于生产。很多人陷入困境,因为他们认为必须使用项目.ruby-version和/或Gemfile. 相反,建议将项目更新到较新的版本。

在大多数情况下,只需执行以下步骤即可轻松完成:

  1. 安装红宝石2.7.7
  2. .ruby-version将和 以及Gemfile指定 Ruby 版本的任何其他文件中的“2.6.x”替换为“2.7.7” (Gemfile.lock除非永远不应该手动编辑它)
  3. 跑步bundle install
  4. 如有必要,更新任何宝石
  5. 运行测试并确保您的应用程序仍然有效

现在您已经了解了推荐的方法,如果您在更新到 2.7.7 之前有特殊需要使用 Ruby 2.6,让我们看一下 2 个解决方案:

  • 使用 Homebrew 安装 Ruby
  • 降级到命令行工具版本 13.4

使用 Homebrew 安装 Ruby

  1. 如果尚未安装Homebrew,请安装
  2. 安装 Ruby 2.6.10:brew install ruby@2.6
  3. 按照说明设置您的PATH. 例如,Homebrew 会这样说:
By default, binaries installed by gem will be placed into:
  /opt/homebrew/lib/ruby/gems/2.6.0/bin

You may want to add this to your PATH.

If you need to have ruby first in your PATH, run:
  echo 'export PATH="/opt/homebrew/opt/ruby/bin:$PATH"' >> ~/.zshrc
Run Code Online (Sandbox Code Playgroud)

之所以有效,是因为这是 Ruby 的预构建版本,是使用 13.3 版命令行工具编译的。但请注意,它并未得到官方支持。

请注意,您需要禁用 RVM 或您之前可能使用过的任何其他版本管理器。通过此设置,您只能使用 2.6.10。您将无法切换到可能使用 RVM 或其他版本管理器安装的其他版本。

这是一个临时解决方案,以便您可以使用 2.6.10 运行项目,然后将其更新到 2.7.7。另请注意,无论哪种方式,您都需要将项目至少更新到 2.6.10。绝对没有理由使用 2.6.5。您应该始终确保您的应用程序正在运行系列中的最新版本。对于 2.6,它是 2.6.10,对于 2.7,它是 2.7.7,然后是 3.0.5 和 3.1.3。

降级到命令行工具版本 13.4

这在 macOS Ventura (13.0) 上是不可能的,所以不要浪费时间尝试。如果您使用的是 macOS Monterey,则可以从Apple 开发者网站下载 13.4 版命令行工具,然后安装它们。