【问题标题】:Stuck on old Ruby version (macOS)卡在旧的 Ruby 版本(macOS)上
【发布时间】:2025-11-28 15:00:02
【问题描述】:

我一直试图在我的系统上从 v 2.3.7 到 v 2.7.1 获取 ruby​​,但无论我输入什么命令(更新、安装、rbenv global 等),它都保留在旧版本上。我认为这是一个旧安装,当我安装新版本时不会被覆盖,但每当我尝试使用“ruby”命令运行某些东西时,它只使用 2.3.7 安装。

这是我所说的一个例子。这是在尝试卸载所有我能做的完全重新安装之后,但我什至不知道如何卸载它。然后我尝试升级系统告诉我的 ruby​​ 版本,但 brew 找不到它。

$ ruby​​ -v

ruby 2.3.7p456(2018-03-28 修订版 63024)[universal.x86_64-darwin18]

$ brew 升级红宝石

正在更新 Homebrew...

错误:ruby 未安装

【问题讨论】:

  • 你考虑过使用rbenv吗?你已经在使用它了吗?如果是,则不要使用brew 来更新Ruby,而是直接使用rbenv
  • which ruby 会告诉你你的 Ruby 来自哪里。
  • rvm,这样可以轻松安装多个版本的 Ruby。
  • chruby
  • @jazaniac :您提到您使用了rbenv,但我在您的问题中没有看到任何 rbenv 命令。我看不出将rbenvbrew 一起使用时会得到什么。您应该考虑一下您的目标:在您的系统上拥有一个特定版本的单个 Ruby,或者您是否想在版本之间轻松切换。 MacOS 自带的版本我个人是不会碰的,但是另外加了其他版本。

标签: ruby macos homebrew


【解决方案1】:

brew upgrade ruby 升级 Homebrew 安装的 ruby​​。 “错误:未安装 ruby​​”表示 Homebrew 没有安装 Ruby。 Homebrew 不会升级 MacOS 自带的 Ruby。

取而代之的是brew install ruby。这将使您的 MacOS Ruby 单独安装并安装它自己的。

【讨论】:

  • 解决方案最终是使用 rvm,但你也建议过,所以我要检查这个答案。感谢您的进一步解释。使用 rvm 后,我的原生版本是否仍然会出错,还是会完全修复?
  • @jazaniac rvm 不会碰MacOS自带的Ruby; rvm 安装在您的主目录中。你的 MacOS 提供的 Ruby 并没有搞砸,除非你没有告诉我们什么,它只是旧的。如果您想在 Ruby 中开发,请使用 rvm 版本。将 MacOS Ruby 视为 MacOS 的一个组件,不要管它。这适用于 Python、Perl、PHP 和操作系统附带的任何其他语言。
  • @jazaniac 也许理解PATH 会有所帮助。
  • 我已经合法地尝试了所有这些命令,但 ruby​​ 版本仍然停留在 2.3.7 上。我在编辑路径时找到的所有指南也是如此。 rvm 仍然是唯一有效的方法。