将gem更新为以前的版本是个好主意

时间:2015-04-21 14:23:55

标签: ruby-on-rails ruby rubygems

我正在尝试在我的Rails 4.2应用中安装jimson gem:

Gemfile:

gem 'jimson', '~> 0.10.0'

捆绑后,我收到此错误:

Fetching gem metadata from https://rubygems.org/.........
Fetching version metadata from https://rubygems.org/..
Resolving dependencies...
Bundler could not find compatible versions for gem "rack":
  In snapshot (Gemfile.lock):
    rack (1.6.0)

  In Gemfile:
    jimson (~> 0.10.0) ruby depends on
      rack (~> 1.4.5) ruby

正如错误所说, jimson取决于机架1.4.5 ,而我当前的机架版本是1.6.0

(我已经在multi_json gem中遇到了同样的错误,我将它从1.11.0降级到1.7.6,现在它要求我降级到机架1.4.5 !!)

用机架1.4.5替换机架1.6.0是个好主意吗?我不确定是否有其他解决方案使用jimson而不修改已安装的宝石!!

1 个答案:

答案 0 :(得分:2)

降级机架不起作用,因为导轨4.2需要机架1.6。

这个宝石完全可能适用于较新版本的机架 - 1.4.5可能只是当时的当前版本。

要测试此理论,您需要分叉gem并更新依赖项。我检查gems测试/规格是否仍然运行,然后你可以将你的宝石分支添加到你的应用程序作为:git依赖。还可以考虑向原作者发送拉取请求。

在这种情况下,您不需要执行任何操作,因为有人已经创建了这样的pull request,并且travis规范会传递该拉取请求,因此您只需要合并来自将请求拉入你的分支