【问题标题】:Is it a good idea to update a gem to a previous version将 gem 更新到以前的版本是个好主意吗
【发布时间】:2015-04-21 22:43:20
【问题描述】:

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

宝石文件:

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 !!)

将 rack 1.6.0 替换为 rack 1.4.5 是个好主意吗?我不确定是否有其他解决方案可以在不修改已安装 gem 的情况下使用 jimson !!

【问题讨论】:

    标签: ruby-on-rails ruby rubygems


    【解决方案1】:

    降级 rack 不起作用,因为 rails 4.2 需要 rack 1.6。

    这个 gem 完全有可能与更新版本的 rack 一起使用 - 1.4.5 可能只是当时的当前版本。

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

    在这种情况下,您不需要执行任何操作,因为有人已经创建了这样的 pull request,并且 travis 规范通过了该拉取请求,因此您只需要合并来自该拉取的更改请求进入你的叉子

    【讨论】:

    • 我如何合并该拉取请求,在底部注明“只有那些对该存储库具有写入权限的人才能合并拉取请求”
    • 您无法合并该拉取请求 - 您必须分叉存储库并将拉取请求中的更改应用到您的分叉。
    • 我最终分叉了那个拉取请求的所有者所做的分叉,所以我不必这样做:) 谢谢你的回答,他们非常有帮助。
    猜你喜欢
    • 2016-08-05
    • 1970-01-01
    • 2016-07-21
    • 2010-11-05
    • 1970-01-01
    • 2020-03-29
    • 1970-01-01
    • 2012-12-01
    • 1970-01-01
    相关资源
    最近更新 更多