Bundler 找不到 gem 的兼容版本

Bundler could not find compatible versions for gem

我正在构建这个 gem,它目前是私有的,但稍后会开源。

.gemspec 我有 spec.add_dependency 'hashie', '~> 3.3.2'.

在我的应用程序中使用 gem 时,我得到:

Bundler could not find compatible versions for gem "hashie":
  In Gemfile:
    desk (~> 1.0.4) ruby depends on
      hashie (~> 2.1) ruby

    my_gem (>= 0) ruby depends on
      hashie (3.3.2)

我该如何解决这个问题?

一种方法是解除对 ~> 3.3.2 的锁定,但我不想这样做。

我试过从应用程序中删除 Gemfile.lock 和 运行 bundle install/update 但这也没有用。

欢迎来到依赖地狱:)。不可能使用相同 gem.

的两个不同版本

您可以尝试 fork desk 并在那里更新到 hashie ~> 3.3.2,或者简单地使用 hashie ~> 2.1 并将您的 hashie 降级到 2.x 版本。

我接受了@ascar 的回答,因为这是正确的做法。人们建议您应该 fork gems 以确保兼容性。

现在我本着 OSS 的精神做了什么 :) 我实际上已经在 Desk gem 上提交了一个 PR 来更新 hashie gem.