【问题标题】:Why won't Bundler let me update a few gems? [closed]为什么 Bundler 不让我更新一些 gem? [关闭]
【发布时间】:2013-02-06 21:31:49
【问题描述】:

.................................................. .......

【问题讨论】:

    标签: ruby-on-rails ruby bundle gemfile


    【解决方案1】:

    在没有看到 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 或更高版本,因为该版本可能与您的测试不兼容。

    更多信息,请阅读:

    【讨论】:

      【解决方案2】:

      由于版本要求,您需要同时更新两个 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 应该可以正常工作。

      【讨论】:

        【解决方案3】:

        @Daniel Evan 的回答应该对你有用,但要解释你问题的下一部分......

        bundle install 将使用您当前的 Gemfile.lock 来安装 gems。 Gemfile.lock 会在您第一次执行捆绑安装时生成,并在您执行捆绑更新时进行更新。所以,如果你做一个

         bundle update 
        

        它将使用新生成的依赖树更新您的 Gemfile.lock。这应该可以解决您的问题。

        【讨论】:

        • 这会起作用,但也可能会产生不希望的宝石升级。
        猜你喜欢
        • 2011-09-06
        • 1970-01-01
        • 1970-01-01
        • 2012-07-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多