单独安装Gems与版本兼容性冲突

时间:2013-08-17 06:06:23

标签: ruby-on-rails-3 gem bundler

我想安装'metric_fu'gem

gem 'metric_fu'

一旦我bundle我得到了这个

Fetching gem metadata from https://rubygems.org/.......
Fetching gem metadata from https://rubygems.org/..
Resolving dependencies...
Bundler could not find compatible versions for gem "ruby_parser":
  In Gemfile:
    metric_fu (>= 0) x86-mingw32 depends on
      ruby_parser (~> 2.0) x86-mingw32

    brakeman (~> 2.1.0) x86-mingw32 depends on
      ruby_parser (3.2.2)

Could not find gem 'mojombo-chronic (>= 0.3.0) x86-mingw32', which is required
by gem 'metric_fu (>= 0) x86-mingw32', in any of the sources.

一方面,我想要安装metric_fu,这取决于ruby_parser 2,但brakeman取决于ruby_parser 3

有没有办法以metric_fu使用ruby_parser 2而brakeman使用版本3的方式使用这两种宝石?

3 个答案:

答案 0 :(得分:1)

此问题应该在最新版本的MetricFu中消失。

答案 1 :(得分:0)

您可以使用更多旧版本的brakeman,它使用ruby解析器2 - 1.8.3或更早。 Here 您可以选​​择最佳版本。

答案 2 :(得分:0)

Bundler真的很难在这里混淆。最新的metric_fu实际上取决于ruby_parser 3.1.3,这只是因为reek目前依赖于" ruby​​_parser~> 3.1.1&#34 ;.如果你真的想,你可以明确地依赖Brakeman 2.0.0,它与ruby_parser 3.1.1兼容。但降级安全工具通常不是一个好主意。

事实是,Bundler仅适用于管理应用程序加载所需的依赖项。 Brakeman不需要加载,它几乎总是用作独立的命令行工具。所以我的建议是不要在你的Gemfile中使用它。只需gem install brakeman

或者,让reek更新他们的依赖项。它将有助于Ruby 2.0语法支持。