【发布时间】:2013-02-06 21:31:49
【问题描述】:
.................................................. .......
【问题讨论】:
标签: ruby-on-rails ruby bundle gemfile
.................................................. .......
【问题讨论】:
标签: ruby-on-rails ruby bundle gemfile
在没有看到 Gemfile 的情况下很难准确回答,但该消息表明您在 Gemfile 中依赖于 rspec-core 的 2.10.1 版本,但您也依赖于依赖于的 rspec-rails 2.1.0 rspec-core ~> 2.1.0,表示 rspec-core 版本 2.1.0-2.1.x。使用~> 和补丁级别版本号,补丁版本(最后一个数字)可以与指定的相同或更高,但不能是次要版本(第二个数字)或主要版本(第一个数字)。
解决方法是,如果您在 Gemfile 中定义了 rspec-rails,则只需从 Gemfile 中删除 rspec/rspec-core,然后 rspec-core 将由 rspec-rails 加载。在撰写本文时 (2013-02-06),最新的 rspec-rails 是 2.12.2,因此您可能希望使用:gem 'rspec-rails', '~> 2.12.2',然后更新您的测试以使用最新的语法。这样你是最新的,但如果你稍后使用bundle update,如果新版本是 2.12.3 或更高版本,它将更新,但不会更新到 2.13.x 或更高版本,因为该版本可能与您的测试不兼容。
更多信息,请阅读:
【讨论】:
由于版本要求,您需要同时更新两个 gem。
尝试:
bundle update rspec-rails rspec-core
编辑:
感谢您发布您的 Gemfile。真正的问题是您锁定了 rspec-rails 版本。
换行:
gem 'rspec-rails', '2.1.0'
到
gem 'rspec-rails', '~> 2.12.2'
之后bundle update rspec-rails 应该可以正常工作。
【讨论】:
@Daniel Evan 的回答应该对你有用,但要解释你问题的下一部分......
bundle install 将使用您当前的 Gemfile.lock 来安装 gems。 Gemfile.lock 会在您第一次执行捆绑安装时生成,并在您执行捆绑更新时进行更新。所以,如果你做一个
bundle update
它将使用新生成的依赖树更新您的 Gemfile.lock。这应该可以解决您的问题。
【讨论】: