首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >依赖于某些gem的不同版本

依赖于某些gem的不同版本
EN

Stack Overflow用户
提问于 2014-01-24 14:25:10
回答 2查看 384关注 0票数 1

我一直在玩杰姆大厨。当我检查它的依赖关系时,发现它依赖于一些gem的多个版本,比如json、chef-zero等。

我的问题是,为什么一个gem依赖于同一gem的多个版本?我的意思是,难道不应该像我安装了最新版本的chef-zero,它满足了chef的所有依赖关系吗?此外,有没有办法使我可以进行更改,使chef只依赖于一个版本的chef-zero?

EN

回答 2

Stack Overflow用户

发布于 2014-01-24 14:37:11

这就是开源的美妙之处,任何有伟大想法和优秀编程技能的人都可以贡献自己的力量。但是,人们并不是从零开始编写所有代码的。这是一个进化的过程,因此gem使用其他可用的gem来满足他们的需求,从而导致依赖。

一个简单的例子是像'PDFKit‘或'wicked_pdf’这样的gem。这两个都是将html页面打印成pdf的优秀工具。但它们使用相同的深度,即'wkhtmltopdf-binary‘。由于后者已经可用,因此对于这些插件的作者来说,编写这部分代码实际上并不是一个好主意。这样更聪明。

所以简而言之,你必须自己处理依赖关系,但从好的方面来说,几乎每个好的gem都会在他们的更改日志中明确地提到它们的依赖状态。

票数 3
EN

Stack Overflow用户

发布于 2014-01-27 19:23:14

不完全是这样的。您不必安装同一gem的多个版本。据我所知,您对以下类型的Chef 11.8.2的依赖项感到困惑:

代码语言:javascript
复制
chef-zero >= 1.6.2, ~> 1.6
diff-lcs >= 1.2.4, ~> 1.2

在这种情况下,您必须安装支持这两个约束的版本。例如,对于chef-zero,它将是超过1.6.2 (第一个约束)的任何版本,但不大于2.0 (第二个约束)。(Gem dependencies versions meaning)

使用json甚至更简单

代码语言:javascript
复制
json <= 1.7.7, >= 1.4.4

安装的版本应在1.4.4到1.7.7之间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21325853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档