为什么“捆绑更新”不更新Gemfile以使用Rails 3.0.5?

时间:2011-04-03 19:32:06

标签: ruby-on-rails-3 bundler

我尝试将bundle update用于我创建的Rails 3.0.0项目,期望Gemfile(以及Gemfile.lock)中的所有内容都反映出rails 3.0.5 ... < / p>

但它仍然是3.0.0 ...即使我运行bundle update rails,它仍然保持3.0.0

出于好奇,我创建了一个全新的Rails 3.0.0项目,然后在其上运行bundle update ...它仍然说“使用rails 3.0.0”,为什么?以及如何使bundle update更新到3.0.5? (除了手动更改Gemfile的明显方法之外)

(我甚至尝试将sqlite3-ruby更改为sqlite3中的Gemfile,因为3.0.5似乎改为使用sqlite3rails和{{ 1}}是sqlite3

中列出的唯一2个宝石

3 个答案:

答案 0 :(得分:14)

您已经得到了答案:手动更改宝石版本并运行bundle update rails

我怀疑你的Gemfile中有gem 'rails', '3.0.0'。如果您具有指定的确切版本,则运行bundle update rails将不会更改版本。

以下是有关在Gemfile中指定gem版本的不同方法的一些信息。

http://gembundler.com/rationale.html

答案 1 :(得分:14)

是的,你可能有

gem 'rails', '3.0.0'

将其更改为

gem 'rails', '~>3.0.0'

这只会升级次要版本的rails(3.0.5&amp; 3.0.6 ...)。或者您可以将其更改为

gem 'rails', '~>3.0'

如果要升级到rails 3.1而不是4.0

答案 2 :(得分:1)

这是搜索&#34; bundler不会更新&#34;的最佳结果之一。在谷歌上,所以我添加了以下作为另一个答案。我在我的一个项目中遇到了这个问题。

在我的一个项目中,我有一个.bundle/config文件,其中包含以下行:

BUNDLE_FROZEN: "1"

这导致bundle update <gemname>无效。我删除了上面的行,它又开始更新了。