2015-08-26 31 views
2

有没有办法通过Bundler为gem指定一个低于X或更高的Y(如果可用)?Bundler range <= 1 || > = 3

比如我想这样做,但不能确定的语法,也找不到任何的例子:在这个

gem 'nokogiri', '<= 1.6.3.1', '>= 1.6.7' 

变化不起作用:

gem 'nokogiri', '<= 1.6.3.1 || >= 1.6.7' 

Nokogiri 1.6.7尚未发布,但几个月前接受的修补程序修复了1.6.4 - 1.6.6版本中存在的错误。

所以我想告诉我的Gemfile使用1.6.3.1(最后一个稳定版本),直到1.6.7发布。如果仅仅作为提醒我的团队,经过数月后,我们正在等待1.6.7。

这可能吗?

+0

你读过[bundler文档](http://bundler.io/v1.10/updating_gems.html)吗? –

+1

需要注意的是,OP并不试图包含一系列版本,而是排除它们,允许使用捆绑器来安装任何较早或更高版本的版本。这个用例不在bundler的文档中(也许那些建议阅读文档的人应该检查自己。) – sjagr

回答

0

可以使用!=符号来排除任何特定版本

gem 'nokogiri', '~>1.6', '!=1.6.4.0', '!=1.6.4.1', '!=1.6.4.2', # and so on... 

但这显然是愚蠢的,你不得不列出每一个次要版本排除。如果您列出!=1.6.4,则不起作用。不幸的是,我找不到任何替代品。

相关问题