升级Ruby版本和Rails兼容性

时间:2017-01-31 12:15:20

标签: ruby-on-rails version-control rvm ruby-on-rails-5

大家好,我想知道是否有人可以解释我遇到的问题,以便了解最新情况。

我目前正在运行ruby 2.2.2和rails 5.我有一个小测试应用程序,一切正常。我决定将ruby升级到版本2.4.0,除了我认为我应该知道如何做以及由此产生的陷阱等,没有其他原因,所以这是一个学习练习。

将ruby更新到2.4.0后很好,命令rails -v返回未安装的rails。如果我然后恢复到旧的ruby 2.2.2 rvm use ruby-2.2.2运行rails -v,则返回rails 5.0.1。这里发生了什么事?

由于

2 个答案:

答案 0 :(得分:2)

RVM为每个Ruby版本和gemset提供了一个单独的gem目录。这意味着必须为每个修订版和gemset显式安装gem。通常迁移过程如下:

rvm use ruby-2.4.0 
# or `rvm --default use ruby-2.4.0` if you want to use 2.4.0 from now on
gem install rails -v 5.0.1 # an example, use any version you like
gem install bundler
bundle install # to install all other project gems

请参阅RVM gemsets documentation page

答案 1 :(得分:1)

扩展@ Slava.K的回答

  

我有一个小测试应用程序,一切正常。我决定升级   ruby到版本2.4.0,除了我认为我应该知道的其他原因   如何做到这一点以及由此产生的陷阱等,这是一次学习练习。

  • 当您将ruby升级到2.4.0时,这将成为您的新ruby版本 数字,因此您不会引用railsbundler
  • 您需要gem install rails -v x.x.xgem install bundler
  • 现在当你执行rails -v时,会打印一个版本 给定Ruby的已安装rails的数量。
  

将ruby更新到2.4.0后,命令rails -v正常   返回未安装的rails。如果我然后恢复到旧的红宝石2.2.2   rvm使用ruby-2.2.2运行rails -v然后返回rails 5.0.1。什么是   发生在这里?

  • 正如我上面已经提到的,升级Ruby时必须安装rails。因此没有安装rails,没有要显示的版本号
  • gem env home => ../versions/jruby-1.7.12/lib/ruby/gems/shared
    • 将显示安装宝石的位置。
  • 我希望rbenv使用rvm