Bundler:组装正确的Gemfile /“Bundler找不到gem bundler的兼容版本”

时间:2012-09-21 21:54:41

标签: bundler gemfile

同样的问题被问到here,虽然没有一个答案在我的案例中有效。

我是Ruby / Rails / RVM / Bundler / Gemfile /等的新手。我正在关注Hertl的Rails 3教程。我遇到与上面链接中所述相同的问题:Bundler无法找到gem bundler的兼容版本。

当我运行“$ bundle install”时,我收到以下消息:

Bundler could not find compatible versions for gem "bundler":
In Gemfile:
rails (= 3.0.1) ruby depends on
  bundler (~> 1.0.0) ruby

Current Bundler version:
bundler (1.2.1)

This Gemfile requires a different version of Bundler.
Perhaps you need to update Bundler by running `gem install bundler`?

我不知道从哪里开始。我试过Hertl建议指定一个特定的Bundler版本 - 他建议尝试1.2.5或1.3.1,无论哪个有效 - 但即使指定了Bundler的特定版本,我也会得到同样的错误。

我真的不知道从哪里开始,并且由于缺乏清晰度而感到沮丧。一个简单的图表将帮助我理解这些不同的实用程序之间的关系;否则我只是在黑暗中拍摄。有助于将Rails运行所需的不同组件联系起来的答案非常棒!

有人有好的建议吗?

1 个答案:

答案 0 :(得分:2)

关键是Rails 3.0.1Bundler (~> 1.0.0)的依赖关系。此表示法表示您可以使用bundler1.0.01.1.0的{​​{1}}版本 - 因为您尝试使用1.2.1时出现错误。

最简单的解决方法是卸载bundler 1.2.1并安装bundler 1.0.22,这是与您正在使用的Rails版本兼容的最新版本。

gem uninstall bundler
gem install bundler -v1.0.22

这将解决您的问题,但如果您正在关注Hartl的教程,则可能会遇到其他问题,因为在本问题发布时,教程使用Rails v3.2.8。你有没有理由使用3.0.1而不是3.2.8?我的建议是使用本教程使用的版本,否则可能会遇到难以诊断的错误。

如果您可以转到Rails 3.2.8,那么您的问题也会得到解决,因为bundler 1.2.1Rails 3.2.8兼容。