【问题标题】:Which Ruby version am I really running?我真正运行的是哪个 Ruby 版本?
【发布时间】:2020-03-05 05:49:25
【问题描述】:

我正在运行 Ubuntu 12.04 LTS,并通过 RVM 安装了 Ruby。

问题是,当我在终端中输入ruby -v 时,它说我的Ruby 版本是1.8.7,而使用Sinatra 的shotgun gem 也说我正在运行Ruby 1.8.7

但是当我输入rvm list 时,它显示我安装的唯一Ruby 版本是2.0.0,它是我当前的默认版本。

我通过 RVM 安装了 Ruby 2.0.0,它是我在我的机器上安装的唯一版本。

现在,当我尝试安装 Rails 4 时收到错误消息,提示我需要 Ruby 1.9 或更高版本。

我如何知道我真正使用的是哪个版本,以及如何将2.0.0 设置为我唯一的版本?

【问题讨论】:

  • 我怀疑你没有尝试通读the installation directions for RVM,如果你使用rvm --default use 2.0.0 来设置你的默认Ruby,它将在你打开一个shell 时自动使用。这是@ansh0l 推荐的最重要的部分。

标签: ruby-on-rails ruby rvm ubuntu-12.04


【解决方案1】:

在您的终端上,尝试运行:

which -a ruby

这将在您的 PATH 中输出您系统上所有已安装的 Ruby 版本(通过 RVM 或其他方式)。如果 1.8.7 是您的系统 Ruby 版本,您可以使用以下方式卸载系统 Ruby:

sudo apt-get purge ruby

确定仅通过 RVM 安装了 Ruby 后,您可以在 login shell 中输入:

rvm --default use 2.0.0

如果您只安装了一个 Ruby 版本,则不需要这样做。

如果您仍然遇到任何系统 Ruby 文件的问题,请尝试运行:

dpkg-query -l '*ruby*'

这将输出一堆与 Ruby 相关的文件和包,这些文件和包已经或曾经在系统级别安装在您的系统上。检查每个的状态以查找它们中的任何一个是否是本机的并导致问题。

【讨论】:

    【解决方案2】:

    运行这个命令:

    rvm get stable --auto-dotfiles
    

    并确保阅读所有输出。 RVM 会告诉您是否有问题,在您的情况下,这可能是因为 GEM_HOME 设置为与 PATH 不同的值。

    【讨论】:

    • 我需要输入 /bin/bash --login。现在的问题是我每次打开或重新启动终端时都必须这样做。反正有这个吗?
    • 如果您在没有采购 rvm 的情况下运行 rvm use,它将向您显示此链接 rvm.io/integration/gnome-terminal - 也许它不是您的终端 - 但在每个终端中都应该有此选项,只需检查首选项跨度>
    【解决方案3】:

    ruby 版本 1.8.7 似乎是您的系统 ruby​​。

    通常你可以选择你喜欢的 ruby​​ 版本,如果你使用 rvm 的话。在新终端中简单地切换到您的目录并输入:

    rvm use 2.0.0
    

    您可以在此处找到有关 rvm 的更多详细信息:http://rvm.io 打开网站并向下滚动,您会看到一些有用的链接。例如,“设置默认红宝石”可以帮助您。

    更新: 要将 ruby​​ 设置为默认值:

    rvm use 2.0.0 --default
    

    【讨论】:

    • "rvm use 2.0.0" 不是让 RVM 每次打开 shell 时自动使用 2.0 所需的完整命令。 --default 标志是设置默认值所必需的。
    【解决方案4】:

    如果您可以访问正在调查的上下文中的控制台,则可以通过打印全局常量 RUBY_VERSION 的值来确定您正在运行的版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-26
      • 2012-11-23
      • 2017-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多