2017-01-31 32 views
1

嗨,大家好我不知道是否有人能解释我遇到的问题,以便我能理解正在发生的事情。升级Ruby版本和Rails兼容性

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

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

感谢

回答

2

RVM给你的每一个红宝石版和宝石一个单独的宝石目录。这意味着必须为每个版本和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

+0

辉煌,感谢您抽出时间来回答。我想知道你是否可以将它分解成婴儿步骤,因为我仍然有一些基本的难题缺失。它陡峭的曲线。我需要采取哪些步骤才能使用我的升级版2.4.0安装来运行rails 5?感谢您的帮助。 –

+0

@MysticChimp查看更新的答案 –

+1

非常感谢您抽出时间,非常感谢。 –

1

扩展@ Slava.K的回答

我有一个小的测试应用程序,所有工作正常。我决定升级 红宝石版本2.4.0,除了我认为我应该知道的 如何做到这一点以及由此产生的陷阱等,这是一个学习练习。

  • 当您升级红宝石2.4.0,这将成为您的新的Ruby版本 号,所以你不会有railsbundler任何引用。您需要做gem install rails -v x.x.xgem install bundler
  • 现在,当您执行rails -v时,将为您给定的Ruby打印一个版本号为 的已安装导轨。

更新红宝石2.4.0后肚里精细-v 回报导轨没有安装命令轨道。如果我然后恢复到较旧的红宝石2.2.2 rvm使用ruby-2.2.2运行轨-v然后轨5.0.1返回。 Whats 发生在这里?

  • 正如我上面已经提到,在安装导轨在升级Ruby是势在必行。因此,没有安装护栏,没有版本号显示

  • gem env home =>../versions/jruby-1.7.12/lib/ruby/gems/shared
    • 会告诉你安装了宝石的位置。
  • 我perefer使用rbenvrvm