使用自制软件切换到不同版本的 ruby

Use*_*777 1 ruby homebrew ruby-on-rails ruby-on-rails-5

我使用迁移助手迁移了我的 MacBook。我有两个 Rails 应用程序我在我以前的笔记本电脑上工作,现在当我尝试在我的新笔记本电脑上使用这些应用程序时,它们可以正常工作(餐厅应用程序),而在另一个(测验应用程序)中,当我尝试打开服务器时,我得到这个

Your Ruby version is 2.2.3, but your Gemfile specified 2.5.1
Run Code Online (Sandbox Code Playgroud)

这两个应用程序都有 ruby​​ 版本 2.5.1。我能够在一个应用程序(餐厅应用程序)而不是另一个(测验应用程序)上运行服务器的可能原因是什么。

我尝试运行下面的命令将 ruby​​ 版本切换到 2.5.1

brew unlink ruby@2.2.3 && brew link --force --overwrite ruby@2.5.1
Run Code Online (Sandbox Code Playgroud)

但我收到一个错误

No such keg: /usr/local/Cellar/ruby@2.2.3
Run Code Online (Sandbox Code Playgroud)

请帮我解决这个问题。

小智 6

一般来说,最好使用 ruby​​ 版本管理器。两个主要的是 RVM ( https://rvm.io/ ) 和 rbenv

我个人是 rbenv 及其对垫片的使用的忠实粉丝(我个人通过 xcversion 使用捆绑程序和切换 xcode 版本时遇到的麻烦较少)https://github.com/rbenv/rbenv

brew install rbenv 
rbenv install 2.5.1
rbenv use 2.5.1

Run Code Online (Sandbox Code Playgroud)

或者,您可以在项目根目录中使用 .ruby-version 文件,以确保您不会再次遇到问题。https://github.com/rbenv/rbenv#choosing-the-ruby-version

# in your project root
echo '2.5.1' > .ruby-version
Run Code Online (Sandbox Code Playgroud)

通过这种方式,您可以轻松地选择要用于应用程序的任何版本,只需在项目根目录中启动它即可。

  • 首先,非常感谢您的回答,它拯救了我的日子。然而,`use` 命令在 rbenv 中不再可用,所以也许我们可以将其更改为 `rbenv global RUBY_INSTALLED_VERSION`。 (2认同)