2012-09-26 49 views
2

背景的特定版本:如何運行耙

  • 我得到的錯誤,每當我運行的舊項目耙。 (未初始化的常量Rake :: DSL)。
  • 有問題的rails項目是一個從Rails 2.1開始的舊項目(我認爲),從那時起我已經在我的筆記本電腦上更新了操作系統幾次,並且一直在更新它,使它運行。
  • 現在,rails應用程序工作正常,只要我將RAILS_GEM_VERSION設置爲2.3.5。我不確定該應用程序是否已完全更新到到Rails 2.3.5。
  • 我的舊項目中沒有Gemfile。
  • 如果我創建一個全新的rails項目(並且未設置RAILS_GEM_VERSION),則rake運行良好。

我的問題:爲了排除故障,我想嘗試更新版本的耙子。我想知道如何強制使用一個特定的版本,因爲它似乎我安裝了多個版本。

信息在我的環境:

$ gem list rake 

*** LOCAL GEMS *** 

rake (0.9.2.2, 0.9.2, 0.8.7, 0.8.3) 


$ rake --version 
rake, version 0.8.7 

因此,它看起來像它的拿起0.8.7版本。

所有在線幫助文​​件似乎告訴我要在Gemfile中指定耙式版本,但在此項目中沒有一個。 (?也許早gemfiles)

如果我乾脆取消設置RAILS_GEM_ENVIRONMENT變量,並嘗試運行耙,我得到:

rake aborted! 
can't activate rails (= 2.3.5, runtime) for [], already activated rails-3.2.8 for [] 

在我的舊項目環境配置文件中沒有設置該變量要麼。

+2

http://stackoverflow.com/questions/6243304/use-older-version-of-rake這可能會有所幫助。你有沒有嘗試下劃線解決方案? – John

+0

我剛剛嘗試了下劃線解決方案,但是當我這樣做時:$ rake \ _0.9.2 \ _ --version,它仍然說它使用0.8.7。 – antun

+0

我做了一點挖掘,我明白爲什麼下劃線方法不適合我。顯然,對於可執行的gem(比如rake),應該有一個包裝器在路徑中調用它。但是,對我來說,/ usr/bin/rake是../../System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/rake的符號鏈接。這*不像*我的rails可執行文件。對我來說,/ usr/bin/rails是一個從命令行提取版本的shell腳本。你可以嘲笑你的/ usr/bin/rake文件嗎? – antun

回答

6

This may be of help.你試過下劃線的解決方案?

實施例:

rake _0.9.2_ 
+0

這是正確的答案,但在我的情況下,我的環境有點混亂。 (請參閱上面有關使用gem pristine rake更正它的註釋)。 – antun

1

可以運行使用此

束EXEC耙特定版本...

詳見本 - bundle execrake

+1

bundle-exec的文檔說它使用Gemfile中指定的內容。但是我的項目沒有Gemfile。我不確定它爲什麼沒有;也許是因爲它基於Rails版本之前的版本。 – antun