【问题标题】:Controlling Ruby Version控制 Ruby 版本
【发布时间】:2023-07-04 06:06:02
【问题描述】:

如果有重复,请原谅我,但老实说,我不确定要搜索什么。我正在使用 Ruby on Rails 开发一个项目,并且在执行任何相关操作(即:rake、rails、rspec 等)时收到此消息:

您的 Ruby 版本是 2.1.5,但您的 Gemfile 指定的是 2.2.3

现在,我已经安装了 RVM,我可以通过发出命令来解决这个问题

bash --login

为清晰起见编辑

运行上述命令确实使用 Ruby 2.2.3 来执行命令。

/编辑

然后那些给定的命令就起作用了。我想做的是完全删除 2.1.5 版本——只留下 2.2.3。我已经采取了很多不同的方式,但是 Ruby 对我来说是一个非常陌生的领域,所以我不知道该怎么做。我确定我的机器上至少安装了三个 Ruby - 可能是我知道的两个版本的两个副本 - 我只想要一个版本并避免需要输入 bash --login 命令才能运行我的项目。

我正在运行 Ubuntu 15.10,并且至少对它的工作原理有所了解。如果有人可以指导我删除与 Ruby 和 Ruby on Rails 相关的所有内容,然后只安装 Ruby 2.2.3 和 Rails 4.2.4,我将不胜感激。让我知道这是否不是这个问题的正确交换。它似乎不太适合 Ubuntu 或 Sysadmin。

【问题讨论】:

    标签: ruby-on-rails ruby rspec gem rvm


    【解决方案1】:

    您需要做的不是尝试删除ruby 2.1.5

    你有 RVM,所以,用它来获取你想要的新版本。

    在此之后,您现在有两个选择:

    1) make the newly installed version the global default version 在您的机器上,

    2) create a gemset for your project,并指定项目所需的 ruby​​ 版本。

    其中任何一个都可以解决您的问题。

    【讨论】:

    • 什么是宝石?或者,如何更改全局默认值?我试过update-alternatives 但它说Ruby 没有可用的替代品,而且符号链接黑客也不起作用。这是我的 gemfile:link
    • 我刚刚在第二个选项中包含了 gemsets 的链接。请检查一下。
    • 我刚刚添加了一个链接,用于将 ruby​​ 版本也设为默认版本。
    • 谢谢。事实证明,这是一个常见/预期的issue with Ubuntu,但我很欣赏有关设置默认值和 gemsets 的说明。
    【解决方案2】:

    您必须修改 Gemfile。

    http://bundler.io/v1.3/gemfile_ruby.html

    【讨论】:

    • 我被锁定在使用 2.2.3 版本。将 gemfile 更改为使用 2.1.5 不会解决列出的任何问题,除非我严重误解了您的建议。
    • 如果您按照上面的链接设置了 ruby​​ 版本捆绑器,将在 Gemfile(或通过 .rvm_version 文件)中使用。因此,要使用该版本,您必须在 gem 命令前加上“bundle exec”,否则您将利用您的系统版本的 ruby​​。您无需卸载系统 ruby​​。
    • 我根本不想要版本 2.1.5。我没有用它。我想将我的系统 ruby​​ 更改为 2.2.3,而不是更改项目。升:
    • 那么这不是 RVM 问题。只需从源代码安装适当版本的 ruby​​。下载、解压、./configure、make、sudo make install