2009-11-12 38 views
2

我想知道關於導軌版本。導軌 - 我的機器上的不同版本

我在一個項目目錄:

    我跑的時候
  • 「軌--version」 我得到v2.3.4。
  • 當我運行「script/about」時,我得到了一個不同的答案,v2.1.1。
  • 在environment.rb中,我也行 「RAILS_GEM_VERSION = '2.1.1' ......」

好了,這是哪裏導軌2.1.1?我想也許在供應商那裏,但不,應該有嗎?我知道我安裝的(v2.3.4。)rails位於/ usr/bin/rails。

有人爲我澄清這件事嗎?

回答

4

有幾種可能性。

./config/environment.rb有一個常量RAILS_GEM_VERSION,除非您重寫該值,並且它通常表示您的應用程序使用哪個版本的rails。當你運行script/about時,默認情況下應該顯示該常量值。

gem list rails會告訴你哪些版本在本地安裝,你可以在任何給定的時間有幾個版本。

最後,Rails應用可以「凍結」的軌道的當前版本,以便他們能夠爲他們的應用程序的軌道庫正確的版本數,通過執行

rake rails:freeze:gems 

您可以撤消通過運行

rake rails:unfreeze 

您也可以通過輸入rake rails:update來更新配置,或者使用rake rails:freeze:edge RELEASE=2.2.2凍結到特定版本。

+0

奇怪,我的虛擬主機提供商的linux也許是有點pooched。由於似乎沒有v2.1.1。我做了「gem install -v = 2.1.1 rails」,並將它安裝在./ruby/gems/gems/rails-2.1.1中。我注意到附近還有兩個其他版本。運行「gem list rails」仍然只顯示v2.3.4。由於我的應用程序仍然無法運行,我正在更加心痛地走向。 :( – rtfminc 2009-11-13 04:00:25

+0

我認爲你應該嘗試使用Rake Rails:freeze:edge RELEASE = 2.1.1來獲得運行的現有代碼,然後測試應用程序的哪些部分取決於已棄用或已更改的功能(儘管:邊緣標記,大多數版本都可以凍結。) – JasonTrue 2009-11-13 08:57:26

2

Rails是一款紅寶石寶石 - 您可以通過gem list rails查看所有安裝版本。它應該安裝在你的gems目錄中。

0

/usr/bin/rails是安裝的rails版本的項目創建腳本的包裝。這只是一個可執行的ruby腳本,它使用Ruby Gems來選擇正確版本的rails。

安裝導軌寶石的位置取決於您的寶石安裝位置。

要找出寶石的存儲位置,運行以下ruby語句。無論是在irb還是作爲可執行腳本。

require 'rubygems' 
puts Gem.path.join("\n") 

它應該打印出至少兩個目錄。在您的主文件夾中有一個本地目錄,用於安裝沒有管理員權限的gems,以及一個用管理員權限安裝的gem全局目錄。您的rails gems將位於其中一個文件夾中。

在我的系統這個輸出/usr/lib/ruby/gems/1.8和〜/ .gem /紅寶石/ 1.8

+0

您還可以運行'gem env'來查看存儲寶石的位置 – 2009-11-12 12:15:43

相關問題