在我们的rails应用程序中,我们使用了需要rest-client的两个gems(urbanairship和nylas)。一个想要~> 1.6.7,另一个想要~> 1.7.1

通常的bundle udpaterm Gemfile.lock; bundle install不起作用。

Bundler解决依赖关系时,我们得到以下信息:

Fetching dependency metadata from https://rubygems.org/..
Resolving dependencies............................................................................................................................................
Bundler could not find compatible versions for gem "rest-client":
  In Gemfile:
    urbanairship (~> 3.0.1) ruby depends on
      unirest (>= 1.1.2, ~> 1.1) ruby depends on
        rest-client (~> 1.6.7) ruby

    nylas (>= 0) ruby depends on
      rest-client (~> 1.7) ruby

不幸的是,我们不能使用其他版本的nylasurbanairship。我们正在寻找的唯一解决方案是 fork 两者之一,然后编辑.gemspec以接受相同版本的rest-client

有没有更简单的解决方案?

最佳答案

最后,按照克里斯的建议告终。

  • fork 的nylas https://github.com/hartator/nylas-ruby/
  • 放松了Gemfilerest-client要求。 (是1.7)
    gem 'rest-client', '~> 1.6'
  • 放松了nylas.gemspecrest-client要求。 (是1.7)
    s.add_dependency(%q<rest-client>, ["~> 1.6"])
  • 放松了nylas.gemspecrest-client运行时要求。 (是1.7)
    s.add_runtime_dependency(%q<rest-client>, ["~> 1.6"])
  • 冉规范,一切仍在过去。
  • 将更改后的gem添加到我的应用程序Gemfilegem 'nylas', git: '[email protected]:hartator/nylas-ruby.git'

  • 一切正常。仍然想知道是否有更清洁的解决方案。

    引用:https://github.com/hartator/nylas-ruby/commit/f7ff4076e96d8a31e223ca0f12d35811d6e9d811

    09-28 00:35