同时使用两个版本的gem[英] Use 2 versions of gem at same time

本文是小编为大家收集整理的关于同时使用两个版本的gem的处理方法,想解了同时使用两个版本的gem的问题怎么解决?同时使用两个版本的gem问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我可以在一个应用程序中使用两个版本的 gem 吗?我正在尝试使用两个 Rails 插件一起工作:

  1. Pengwynn 的 LinkedIn https://github.com/pengwynn/linkedin 用于 LinkedIn API 调用,依赖于 oauth (~> 0.3.5)
  2. OmniAuth 用于用户通过多个知名网站登录,依赖于 oauth 0.4.0

当我在 Rails 中尝试某些东西时,我收到以下错误消息:

$ rails server
c:/Ruby187/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/resolver.rb:129:in `resolve': Bundler could not find compatible versions for gem "oauth": (Bundler::VersionConflict)
  In snapshot (Gemfile.lock):
    oauth (0.4.4)

  In Gemfile:
    linkedin depends on
      oauth (~> 0.3.5)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

尝试更新包只会冻结我的终端

这两个插件可以同时使用吗?

推荐答案

使用单个gem的两个版本通常意味着:使用同一个类的两个版本.

不修改这些宝石是不可能的.您可以尝试将创建的类放在某个模块中,解决导入其他类的方法中的冲突,等等.总的来说,这不是一件容易的事,而且通常效果不值得.

在这种情况下,你应该应该做的是让 gem 维护者更新依赖关系,或者尝试自己做.

也许您可以将其中一个 gem 降级(使用旧版本)到依赖项相同的版本.

本文地址:https://www.itbaoku.cn/post/786682.html