【问题标题】:Beta version of gem not recognized by Bundler as resolving dependencyBundler 无法将 Beta 版 gem 识别为解析依赖项
【发布时间】:2014-01-15 16:02:39
【问题描述】:

我正在尝试将 fuubar gem 添加到我的 Gemfile 中,但我使用的是 rspec-rails 的 beta 版本,而 Bundler 找不到两者兼容的依赖项。

# Gemfile
gem 'rspec-rails', '~> 3.0.0.beta1'
gem 'fuubar', '>= 1.3.2'

Fuubar 依赖于rspec < 3.1.0, >= 2.14.0。从what I understand3.0.0.beta1 应该符合该要求。我得到的错误如下:

Bundler could not find compatible versions for gem "rspec-mocks":
  In Gemfile:
    rspec (< 3.1.0, >= 2.14.0) x86-mingw32 depends on
      rspec-mocks (~> 2.14.0) x86-mingw32

    rspec-rails (~> 3.0.0.beta1) ruby depends on
      rspec-mocks (3.0.0.beta1)

x86-mingw32 是这里的关键吗?该平台没有可用的测试版,或者..?

【问题讨论】:

  • 3.0.0.beta1 满足 &lt; 3.1.0 但您对 rspec-mocks 有问题。您将rspec-rails 定义为~&gt; 3.0.0.beta1 的原因是什么?也许尝试更新 gems 进行测试。
  • 测试版有我想使用的功能。具体的宝石对这个问题并不重要,我对 Bundler 如何尝试解决这样的依赖情况以及为什么它无法识别 rspec 3.0.0.beta1 would satisfy the requirements 感兴趣。

标签: ruby-on-rails rspec rubygems bundler


【解决方案1】:

好吧,我设法安装了 gem。如果我明确地将gem 'rspec', '~&gt; 3.0.0.beta1' 添加到我的 Gemfile 中,Bundler 会愉快地安装所有内容。除非特别要求,否则 Bundler 可能会避免预发布版本。

由于依赖关系树存储在 Gemfile.lock 中,我什至可以从我的 Gemfile 中删除上述行,随后的 bundle install 将成功。不确定bundle update,但我总是一一更新宝石。

然而,这并没有回答为什么的问题。如果有人可以解释它,或者向我指出表明这是预期工作方式的文档,我可以很容易地做出接受的答案。

【讨论】:

    猜你喜欢
    • 2011-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-22
    • 2023-01-18
    • 1970-01-01
    • 2017-05-06
    • 2021-04-16
    相关资源
    最近更新 更多