2017-01-31 34 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