我可以使用rubygems来忽略gem版本冲突吗?

时间:2016-07-06 16:13:01

标签: ruby rubygems dependencies

我已经完成了对rubygems代码的一些挖掘,并且看起来没有一种内置的方法可以让它不抛出jar即使有一个Gem::ConflictError。在开发过程中,我可能想要测试一些我知道不会触及冲突的代码的东西,或者我知道以前冲突的宝石的任何版本都不会导致问题。我只是想继续测试我想要测试的内容,以后我会担心版本冲突。

我知道我可以破解rubygems来做到这一点。我可以想或用多种方法来完成它。我有点好奇,如果有人已经这样做了,他们是怎么做到的,也许这个代码是在某个地方共享的。我还有点好奇为什么它不作为开发工具内置于rubygems中。

2 个答案:

答案 0 :(得分:2)

在完成任何工作之前,您需要担心版本冲突。由于Ruby具有单个根命名空间并且每个依赖项都被加载,因此通常无法加载同一gem的多个版本。像NPM for Node.js这样的其他系统要灵活得多,可以同时加载任意数量的版本,所以如果你已经习惯了,你需要调整你的期望。

如果您尝试进行测试并希望避免解决冲突,请暂时从gem删除Gemfile要求。

最终你必须解决问题,没有办法解决问题,但你可以随时选择你需要的东西。

答案 1 :(得分:0)

如果你真的知道自己在做什么,试试这个:

export NOEXEC_DISABLE=1
ruby you-program.rb

此环境变量将禁用搜索并检查Gemfiles和gem版本。