【问题标题】:Ruby Version does not matchRuby 版本不匹配
【发布时间】:2024-01-02 12:49:01
【问题描述】:

我用 brew 更新了 ruby​​,它显示安装了 3.0.1。但是,当我使用 ruby​​ -v 时,显示给我的版本是 2.3.7。为什么会发生这种情况,我该如何解决?

brew upgrade ruby
Warning: ruby 3.0.1 already installed
(base) d-172-25-143-111:~ cd5$ ruby -v
ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin18]

【问题讨论】:

  • 如果您需要非系统 ruby​​,最好使用 ruby​​ 版本管理器而不是自制软件。我使用 chruby,但还有其他的,比如 rbenv 和 RVM。
  • 你安装了 rvm 吗?如果是,请检查 rvm 列表,然后 rvm 使用 3.0.1
  • “为什么会这样”——我敢打赌,它在$PATH 中。不确定 brew 在您的机器上安装 ruby​​ 的位置,但该目录要么从 PATH 中丢失,要么位于 /usr/bin 之后(系统 ruby​​ 所在的位置)
  • @Bodh1004 是的,我使用了 rvm。即使我使用 RVM,它也会显示不同的版本 (base) d-172-25-143-111:~ cd5$ rvm list ruby-3.0.0 [ x86_64 ]
  • @EPUVA RVM 不会从自制软件中提取红宝石。

标签: ruby homebrew


【解决方案1】:

与所有 shell 命令一样,您应该检查您的 shell 是如何实际查找命令的:

type -a ruby

对我来说显示

ruby is /Users/max/.rbenv/shims/ruby
ruby is /usr/bin/ruby

这表明我安装了两个不同的 Ruby,一个来自 rbenv 的优先。几乎可以肯定你的情况也是如此:你有多个 ruby 可执行文件,而来自 Homebrew 的那个不在该列表中(意味着它不在你的 PATH 中的某个位置),或者它在列表中较低比别的。

【讨论】: