如何覆盖 gem 依赖?

2024-02-08

我有 2 个 gem,它们依赖于冲突版本的 hashie(一个需要 ~> 1.2.0,另一个需要 3.3.1):

Bundler could not find compatible versions for gem "hashie":
  In Gemfile:
    restforce (>= 0) ruby depends on
      hashie (~> 1.2.0) ruby

    omniauth (>= 0) ruby depends on
      hashie (3.3.1)

我想保留这两个宝石并使用更高版本的 hashie。有没有办法让我覆盖其中一个 gem 依赖项?


标准建议是使用更高版本兼容的.

我这样做,但我认为捆绑器有一个定义的命令。

首先删除该行gem 'omniauth'在您的 Gemfile 中。跑步bundle install,那么您必须再次添加该行gem 'omniauth'到您的 Gemfile 中,再次运行捆绑安装。

如果你看 Gemfile.lock,这个安装hashie 2.0.5,兼容性越高。

编辑:为什么这有效?

首先我检查omniauth https://rubygems.org/gems/omniauth与 hashie 的依赖关系:hashie < 4, >= 1.2,那么与休息力量 https://rubygems.org/gems/restforce: hashie < 2.1, >= 1.2.0。此时,我知道 1.2 和 2.0.x 之间的任何版本的 hashie 都必须工作。然后我们必须删除 Gemfile.lock 中继续使用 hassie 3.3.1 的约束,从 Gemfile 中删除“omniauth”就完成了。之后,当安装restforce时,捆绑程序会发现与restforce“2.0.5”兼容的新版本。当您再次添加omniauth 捆绑程序时,不会更新已完成的依赖项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何覆盖 gem 依赖? 的相关文章

随机推荐

  • 我可以在没有任何操作系统平台的情况下执行任何 c 制作的程序吗?

    我用谷歌搜索了一下 并在某处读过 是的你可以 这种情况发生在嵌入式系统中 我认为不 这是不可能的 任何平台都必须有操作系统 否则 你的程序本身必须是一个操作系统 无论是软线还是硬线 如果没有操作系统 您的组件将无法工作 我是对的还是有人可以
  • 如何防止Coldfusion将cfform.js注入head部分?

    HTML 模板将传递到 Coldfusion 模板的 head 标签有附加属性 问题是 当基于此模板生成输出时 Coldfusion 会将其脚本注入 head 标签内 profile http abc com gt 这导致profile h
  • Valgrind 的令人困惑的输出显示间接丢失的内存泄漏,但没有明确丢失或可能丢失

    我在 macos x 10 8 上运行 valgrind Valgrind 在启动时说 11312 WARNING Support on MacOS 10 8 is experimental and mostly broken 11312
  • MySQLNumberTypeMapping'不支持值转换

    我添加了一些用于连接到 SQL 数据库的模型 现在正在移植到 MySQL 当我运行时出现此错误 dotnet ef update context context 块引用 System NotImplementedException MySQ
  • 在 Laravel 中的路由文件处理之前是否可以修改请求?

    是否可以在路由文件处理之前修改请求 基本上我想要构建的应用程序将有数百个 slug URL 但这些段头会导致不同的控制器 为了实现这一点 我将在 redis 中保留键 值对 例如 slug domain com slug one Would
  • GIT:如何压缩已推送到远程存储库的多个提交?

    我对 Git 有一个奇怪的设置 基本上我有 client 1 lt gt remote repo gt client 2 客户端 1 本质上是我正在使用的本地存储库 因为我无法在本地计算机上编译 构建该项目 客户端2 是用于构建的远程服务器
  • 每秒将变量增加 X [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我被困在代码的这一部分 我想要一个
  • 获取adb shell命令的结果代码

    我应该如何得到 of adb shell
  • Redis 支持的 ASP.NET SessionState 提供程序 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • C# regex 查找并替换重用部分匹配文本

    我需要对长文本字符串进行搜索和替换 我想找到如下所示的所有损坏链接的实例 a href http any url here 7BlocalLink 1369 7D 7C 7CThank 20you 20for 20registering b
  • 如何从 Java 调用 scala 的 Option 构造函数

    我正在开发一个混合 java scala 项目 并且尝试从 Java 调用 scala 对象的方法 该方法需要一个Option Double 作为参数 我认为这会起作用 Double doubleValue new Double 1 0 s
  • Clojure STM 歧义因子

    在 Clojure 中 我们使用 STM 来实现并发 我的问题是STM使用数据的时间点值 这是否会带来歧义 我们如何知道访问了什么值 Clojure 中的 STM 提供 通过ref http clojure org refss and do
  • 命名空间中所需的 WSDL 扩展元素“绑定”

    我的网络服务遇到了很大的问题 当我尝试通过 svcutil 生成文件时 收到以下错误消息 Attempting to download metadata from http srv 13208 GROUPING WS ASMX as mx
  • VS Web Essentials 2012 在导入保存时编译主 LESS

    我正在尝试维护一个全局 less 文件 该文件 imports 应用程序的其余 less 文件 我目前正在 Visual Studio 2012 中使用 Web Essentials 扩展开发这个项目 该扩展在保存时自动生成 css 文件
  • pip:升级包而不升级特定依赖

    我的问题非常类似于this https stackoverflow com questions 2861183 pip upgrade package without upgrading dependencies问题 但它的不同之处在于 如
  • 如何从 SQL 编写存储过程脚本

    我知道有一种方法可以做到这一点 因为我已经见过它了 我只是不记得怎么做了 我想运行一个 SQL 命令 该命令将返回脚本以创建存储过程作为结果 我怎样才能做到这一点 尝试使用 sp helptext 命令 sp helptext yourpr
  • [UICollectionView setCollectionViewLayout:animated:] 访问错误

    我的 UICollectionView 发生了奇怪的崩溃 崩溃的 UICollectionView 嵌入到另一个 UICollectionView 的 UICollectionView 单元格中 我无法重现这个问题 如果内部 UIColle
  • 在 docker 容器中运行 emacs

    我使用的是 Mac 想在我的 docker 容器中运行 emacs 有解决这个问题的首选方法吗 在我的流程中 我陷入困境 因为未设置显示 术语 gt docker exec it c6a7a76db84c bash gt sudo apt
  • 测试php字符串是否为整数

    post用于模拟 POST 我发现 POST int 是一个字符串 我怎样才能知道是否 post int 是一个整数 下面表明它不是整数 编辑 根据文档 http php net manual en function is int php
  • 如何覆盖 gem 依赖?

    我有 2 个 gem 它们依赖于冲突版本的 hashie 一个需要 gt 1 2 0 另一个需要 3 3 1 Bundler could not find compatible versions for gem hashie In Gemf