2013-09-16 48 views
0
~ $ ruby -v 
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin12.4.0] 
~ $ which ruby 
/usr/local/bin/ruby 
~ $ rails -v 

    Rails 4 prefers to run on Ruby 2.0. 

    You're running 
     ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0] 

    Please upgrade to Ruby 1.9.3 or newer to continue. 

~ $ cat $(which rails) | head -1 
#!/usr/bin/ruby 
~ $ /usr/bin/ruby -v 
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0] 
~ $ 

正如你所看到的,Rails沒有選擇2.0版本的默認版本。Rails沒有選擇默認的Ruby版本?

可以將第一行Rails修改爲#!/usr/local/bin/ruby嗎?

+0

您使用的是rvm –

+0

@SabyasachiGhosh是的,我正在使用rvm – emaillenin

+0

我猜你已經在系統中安裝了多個gem set和ruby版本。要麼設置rvm默認選項,要麼使用rvm使用ruby_version。有些時候它不會爲你的系統拾取默認的ruby版本 –

回答

2

在您的項目文件夾中,添加一個包含表示您首選Ruby版本的字符串的.ruby-version文件。例如

2.0.0 

這將確保RVM將盡快切換到該版本的Ruby,你cd到該文件夾​​。

幾乎所有流行的ruby版本管理器:rvm, chruby, rbenv榮譽.ruby-version文件。

或者,你也可以通過添加此行到Gemfile中指定的Ruby版本:

ruby '2.0.0' 
1

是否還好修改軌#的第一行的/ usr/local/bin目錄/紅寶石?

否。更好的方法是使用rbenv(https://github.com/sstephenson/rbenv)或rvm(https://rvm.io/)。您還可以從/ usr/bin/ruby​​(ln -s /usr/local/bin/ruby /usr/bin/ruby)中刪除/ usr/bin/ruby​​並創建符號鏈接。但很可能你會遇到寶石問題。

+2

刪除'/ usr/bin/ruby​​'並將其替換爲符號鏈接是一個不好的解決方案;他們很可能是不同的版本,這將破壞與Ruby捆綁在一起的所有輔助應用程序以及期望該特定版本的任何寶石。這是一個路徑問題,可以通過正確使用rbenv或rvm來解決。 –

+0

我已經寫了:) –

+0

然後,如果你明白這個建議不是很好,或者適當的話,也許你應該刪除/ usr/bin/ruby​​,並將其替換掉。短暫的「可能」警告使得它聽起來像有一個小問題的可能性,但它很有可能。 –

相關問題