2011-04-03 37 views
9

我嘗試使用bundle update爲我創造了一個Rails 3.0.0項目,希望所有的內容Gemfile(也Gemfile.lock),以反映軌3.0.5 ...爲什麼「包更新」不會更新Gemfile以使用Rails 3.0.5?

但它繼續是3.0.0 .. 。即使我運行bundle update rails,它仍然保持在3.0.0

出於好奇,我創建了一個全新的Rails 3.0.0項目,然後在其上運行軟件包更新...它仍然說「使用導軌3.0.0「,爲什麼?以及如何使bundle update更新至3.0.5? (較明顯的方式手工更改Gemfile文件除外)

(我甚至試過在Gemfile改變sqlite3-rubysqlite3,因爲3.0.5似乎用sqlite3來代替。而railssqlite3中列出的只有2顆寶石Gemfile

回答

12

您已經有了答案:手動更改寶石版本並運行bundle update rails

我懷疑你的Gemfile中有gem 'rails', '3.0.0'。如果您有指定的確切版本,運行bundle update rails將不會更改版本。

下面是關於在Gemfile中指定gem版本的不同方法的一些信息。

http://gembundler.com/rationale.html

+0

所以我猜你的回答是,Gemfile中的''3.0.0'意味着使用確切的版本。如果我希望它在每次使用「bundle update」時更新到最新,那麼使用'> 3.0.0',儘管我不知道這是否推薦,但確定使用最新的rails保持項目。 – 2011-04-03 20:01:28

13

是的,你可能有

gem 'rails', '3.0.0' 

改變它

gem 'rails', '~>3.0.0' 

這隻會提升軌道的次要版本(3.0.5 & 3.0.6 ...) 。或者,你可以把它改成

gem 'rails', '~>3.0' 
如果你想升級到3.1導軌但

沒有4.0

1

這是頂級的結果之一在谷歌「打捆不會更新」進行搜索時,所以我加入作爲另一個答案。我在其中一個項目中遇到了這個問題。

在我的項目之一,我有一個.bundle/config文件,其中有如下一行:

BUNDLE_FROZEN: "1" 

這是造成bundle update <gemname>沒有任何效果。我刪除了上面的行,它開始再次更新。

+0

你是對的,那可能是其中一種可能性。 – Aamir 2016-10-07 10:37:57

相關問題