我尝试将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似乎改为使用sqlite3
。rails
和{{ 1}}是sqlite3
)
答案 0 :(得分:14)
您已经得到了答案:手动更改宝石版本并运行bundle update rails
。
我怀疑你的Gemfile中有gem 'rails', '3.0.0'
。如果您具有指定的确切版本,则运行bundle update rails
将不会更改版本。
以下是有关在Gemfile中指定gem版本的不同方法的一些信息。
答案 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>
无效。我删除了上面的行,它又开始更新了。