【问题标题】:How to make a gem work with newer version of dependencies?如何使 gem 使用较新版本的依赖项?
【发布时间】:2016-04-14 01:47:27
【问题描述】:

我正在使用resque gem,它需要 sinatra (>= 0.9.2)

这会安装 Sinatra 1.0 gem,它会产生类似 loadError: cannot load such file -- rack/showexceptions 的错误

这是 Sinatra 版本 1.4.7 中修复的问题,但我无法使用 1.4.7,即使安装了版本 1.4.7,捆绑安装仍然安装版本 1.0

【问题讨论】:

  • 你不能。没有简单的解决方案可以让两个不兼容的软件正常工作。升级一个,或降级另一个。
  • 你坚持使用 resque 吗?还有一些替代品,比如delayed_job、beanneater(使用beantalkd)等等。
  • 该 gem 的 gemspec 只需要 sinatra >= 0.9.2 - 你确定没有其他东西阻止使用更新的版本吗?
  • 我做了一个依赖检查,它说 resque 需要 sinatra 1.0

标签: ruby-on-rails ruby resque


【解决方案1】:

在 GitHub 上分叉项目。替换依赖版本here。运行测试,如果一切通过,则创建一个拉取请求。

s.add_dependency "sinatra", ">= 0.9.2"

# to this
s.add_dependency "sinatra", "~> 1.4"

或者,您必须拥有自己的 gem 并在您的项目中使用它。但这显然有它的缺点!这应该是你最后的手段。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 2016-09-19
    • 1970-01-01
    相关资源
    最近更新 更多