我怎么知道哪个gem需要依赖另一个不能安装的gem?

时间:2017-07-17 16:38:56

标签: ruby rubygems dependencies bundle

我在Linux CentOS 6上升级Ruby on Rails软件,并在运行时

bundle install

停止:

Gem::InstallError: nokogiri requires Ruby version >= 2.1.0.
An error occurred while installing nokogiri (1.8.0), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.8.0'` succeeds before bundling.

但是,我知道的gemfiles中的依赖项不需要nokogiri 1.8.0,它们检查我安装的Ruby版本,如果我没有Ruby 2.1则只需要1.6.8。

我试过了

gem dependency nokogiri --reverse-dependencies

但由于未安装版本1.8.0,因此未在反向依赖项中列出。

那么我在哪里可以获得有关哪个gem或gemfile实际上试图强迫我使用nokogiri 1.8.0的信息?

[编辑:我已经用新版本1.15.2替换了旧版本的bundle install的输出,因为它现在提供了不同的信息] bundle install的输出--verbose:

Fetching rdoc 5.1.0
Installing rdoc 5.1.0
Using redcarpet 3.3.4
0:  redcarpet (3.3.4) from /usr/local/rvm/gems/ruby-2.0.0-p247/specifications/redcarpet-3.3.4.gemspec
Using redis 3.3.3
0:  redis (3.3.3) from /usr/local/rvm/gems/ruby-2.0.0-p247/specifications/redis-3.3.3.gemspec
Using request_store 1.0.5
0:  request_store (1.0.5) from /usr/local/rvm/gems/ruby-2.0.0-p247/specifications/request_store-1.0.5.gemspec
Using tilt 2.0.7
0:  tilt (2.0.7) from /usr/local/rvm/gems/ruby-2.0.0-p247/specifications/tilt-2.0.7.gemspec
Using rmagick 2.16.0
0:  rmagick (2.16.0) from /usr/local/rvm/gems/ruby-2.0.0-p247/specifications/rmagick-2.16.0.gemspec
Using ruby-ole 1.2.12.1
0:  ruby-ole (1.2.12.1) from /usr/local/rvm/gems/ruby-2.0.0-p247/specifications/ruby-ole-1.2.12.1.gemspec
Using rubyzip 1.2.1
0:  rubyzip (1.2.1) from /usr/local/rvm/gems/ruby-2.0.0-p247/specifications/rubyzip-1.2.1.gemspec
Using simplecov-html 0.9.0
0:  simplecov-html (0.9.0) from /usr/local/rvm/gems/ruby-2.0.0-p247/specifications/simplecov-html-0.9.0.gemspec
Using tiny_tds 0.6.2
0:  tiny_tds (0.6.2) from /usr/local/rvm/gems/ruby-2.0.0-p247/specifications/tiny_tds-0.6.2.gemspec
Using vcard 0.2.15
0:  vcard (0.2.15) from /usr/local/rvm/gems/ruby-2.0.0-p247/specifications/vcard-0.2.15.gemspec
Using yard 0.9.9
0:  yard (0.9.9) from /usr/local/rvm/gems/ruby-2.0.0-p247/specifications/yard-0.9.9.gemspec
Using tzinfo 1.2.3
0:  tzinfo (1.2.3) from /usr/local/rvm/gems/ruby-2.0.0-p247/specifications/tzinfo-1.2.3.gemspec
Fetching nokogiri 1.8.0
Installing nokogiri 1.8.0 with native extensions
Using rack-test 0.6.3
0:  rack-test (0.6.3) from /usr/local/rvm/gems/ruby-2.0.0-p247/specifications/rack-test-0.6.3.gemspec
Using rack-protection 1.5.3
0:  rack-protection (1.5.3) from /usr/local/rvm/gems/ruby-2.0.0-p247/specifications/rack-protection-1.5.3.gemspec
Using vegas 0.1.11
0:  vegas (0.1.11) from /usr/local/rvm/gems/ruby-2.0.0-p247/specifications/vegas-0.1.11.gemspec
Using mime-types 3.1
0:  mime-types (3.1) from /usr/local/rvm/gems/ruby-2.0.0-p247/specifications/mime-types-3.1.gemspec
Using addressable 2.5.1
0:  addressable (2.5.1) from /usr/local/rvm/gems/ruby-2.0.0-p247/specifications/addressable-2.5.1.gemspec
Using childprocess 0.7.1
0:  childprocess (0.7.1) from /usr/local/rvm/gems/ruby-2.0.0-p247/specifications/childprocess-0.7.1.gemspec
Using sprockets 3.7.1
0:  sprockets (3.7.1) from /usr/local/rvm/gems/ruby-2.0.0-p247/specifications/sprockets-3.7.1.gemspec
Using redmine_crm 0.0.31
0:  redmine_crm (0.0.31) from /usr/local/rvm/gems/ruby-2.0.0-p247/specifications/redmine_crm-0.0.31.gemspec
Using mocha 1.2.1
0:  mocha (1.2.1) from /usr/local/rvm/gems/ruby-2.0.0-p247/specifications/mocha-1.2.1.gemspec
Using rack-openid 1.4.2
0:  rack-openid (1.4.2) from /usr/local/rvm/gems/ruby-2.0.0-p247/specifications/rack-openid-1.4.2.gemspec
Using rbpdf 1.19.2
0:  rbpdf (1.19.2) from /usr/local/rvm/gems/ruby-2.0.0-p247/specifications/rbpdf-1.19.2.gemspec
Gem::InstallError: rdoc requires RubyGems version >= 2.2. Try 'gem update --system' to update RubyGems itself.
  /usr/local/rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/installer.rb:541:in `ensure_required_rubygems_version_met'

2 个答案:

答案 0 :(得分:0)

看起来你正在运行旧版本的bundler(1.9.1),它可能没有对ruby版本控制的适当支持。尝试使用新版本运行gem update bundler并运行bundle install

答案 1 :(得分:0)

所以似乎问题来自使用旧版本的捆绑包(1.9.1)。

使用gem update bundler将其升级到最新版本将我转移到版本1.15.2,然后捆绑安装工作(在第二次执行时,但最终确实成功了。)