2012-10-02 40 views
1

我正在Bluehost上工作。我安裝的是3.2.8寶石軌道,現在我得到這樣的:Rails - 最新的寶石安裝,但應用程序是舊的

> gem list --local | grep rails 
rails (3.2.8) 

但是:

rails --version 
Rails 2.3.11 

我怎樣才能讓「軌道」命令,使用最新的寶石?我想這與我的$ PATH變量有關,但我對此幾乎一無所知。

而且,創業板和rails命令會產生一些錯誤是這樣的:

Invalid gemspec in [XXX]: invalid date format in specification: "YYY" 

我不知道這是連接(我想反正是什麼原因導致這樣的錯誤)。

+0

我懷疑無效的gemspec問題沒有關係,但無法確定不知道寶石是什麼以及它來自哪裏。如果我不得不猜測,您可能已經安裝了一個gem並在本地安裝的副本中編輯了gemspec文件。 –

+0

嘿加迪,你能解決你的問題嗎?我現在有同樣的問題。 – freedom

+0

恐怕不是。我完全放棄了我的嘗試,實際上認爲這是學習django(與Bluehost合作)的好機會。當然,解決方案將會非常棒。 –

回答

1

嘗試運行此命令:

curl -L https://get.rvm.io | bash -s stable --ruby --rails 

它的作用是安裝RVM,它保持獨立的寶石紅寶石的每個版本安裝。 --ruby--rails參數告訴它在安裝RVM時安裝ruby和rails。 RVM安裝會自動更新$ PATH和任何其他必要的環境變量。

在安裝結束後,它應該提示您運行:

source ~/.rvm/scripts/rvm 

這將使這些環境變量的變化立即生效。或者,您可以註銷並重新登錄。

運行rails -vruby -v此時,您應該看到它們指向新版本。從你的RoR應用程序目錄運行bundle install,你需要的所有寶石應該安裝在〜/ .rvm/gems/ruby​​-/gems中。

此時,您可以從安裝RVM之前刪除/卸載任何gems/rails/ruby​​。

編輯於2012/10/17: 沒關係我的答案。儘管可能使Rails 3.x與當前安裝的Ruby 1.8一起運行(請參閱此Stackoverflow問題),但您將無法使用Bluehost Shared Hosting運行Ruby 1.9.x。您唯一的選擇(現在)是VPS主機。

原因是Passenger Phusion與安裝在/ usr/lib中的Ruby版本有關,如果沒有root訪問權限,則無法更改。儘管你可以在RVM上安裝任何版本的Ruby,但你不會讓Passenger與它交談,因此你的rails項目不會使用它的gem。