【问题标题】:Bundler range <= 1 || >= 3捆绑器范围 <= 1 || >= 3
【发布时间】:2015-08-26 18:43:23
【问题描述】:

有没有办法通过 Bundler 为 gem 指定低于 X 或高于 Y(如果可用)?

例如,我想做这样的事情,但不确定语法并且找不到任何示例:

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.7 发布之前使用 1.6.3.1(我的最后一个稳定版本)。如果只是提醒我的团队,几个月过去了,我们正在等待 1.6.7。

这可能吗?

【问题讨论】:

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

标签: ruby-on-rails bundle bundler gemfile


【解决方案1】:

您可以使用!= 表示法排除任何特定版本

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

但这显然很愚蠢,因为您必须列出要排除的每个次要版本。如果您列出!=1.6.4,它不起作用。不幸的是,我还没有找到任何替代品。

【讨论】:

    猜你喜欢
    • 2015-08-13
    • 1970-01-01
    • 1970-01-01
    • 2018-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多