Bundler似乎正在安装我不需要的宝石,它们正在引发问题.我们举两个例子:timers
和celluloid
bundle install
安装timers
是必需的,celluloid
但我不知道为什么要安装赛璐珞.我正在使用ruby 1.8.7和rails 3.2.13.
为什么celluloid
要安装?如何查找未安装(无法安装)的gem的反向依赖项?
我的Gemfile
source "https://rubygems.org" gem "rails", "3.2.13" gem "mysql2", "~> 0.3.13" gem "json", "~> 1.8.0" group :assets do gem "guard-rails-assets", "~> 0.1.3" gem "sass-rails", "~> 3.2.6" gem "coffee-rails", "~> 3.2.2" gem "uglifier", "~> 1.0.3" end gem "jquery-rails", "~> 3.0.4" gem "simple_form", "~> 2.1.0" gem "bootstrap-sass", :path => "gems/bootstrap-sass-c0e12a90ba3e" gem "client_side_validations", "~> 3.2.6" gem "client_side_validations-simple_form", "~> 2.1.0" gem "therubyracer", :platform => :ruby gem "require_relative", "~> 1.0.3" gem "icalendar", "~> 1.4.3" gem "whenever", "~> 0.8.4", :require => false gem "jquery-cookie-rails", "~> 1.3.1" gem "hominid", "~> 3.0.5"
输出来自 bundle install
Fetching gem metadata from https://rubygems.org/.......... Fetching additional metadata from https://rubygems.org/.. Resolving dependencies... Using rake (10.1.1) Using i18n (0.6.1) Using multi_json (1.8.4) Using activesupport (3.2.13) Using builder (3.0.4) Using activemodel (3.2.13) Using erubis (2.7.0) Using journey (1.0.4) Using rack (1.4.5) Using rack-cache (1.2) Using rack-test (0.6.2) Using hike (1.2.3) Using tilt (1.4.1) Using sprockets (2.2.2) Using actionpack (3.2.13) Using mime-types (1.25.1) Using polyglot (0.3.3) Using treetop (1.4.15) Using mail (2.5.4) Using actionmailer (3.2.13) Using arel (3.0.3) Using tzinfo (0.3.38) Using activerecord (3.2.13) Using activeresource (3.2.13) Using sass (3.2.13) Using bootstrap-sass (3.0.0.0) from source at gems/bootstrap-sass-c0e12a90ba3e Using bundler (1.5.2) Using timers (1.1.0) Gem::InstallError: celluloid requires Ruby version >= 1.9.2. An error occurred while installing celluloid (0.15.2), and Bundler cannot continue. Make sure that `gem install celluloid -v '0.15.2'` succeeds before bundling.
Ash Wilson.. 7
您可以让Bundler向您显示完整的依赖关系图:
sudo apt-get install graphviz # Or however you install graphviz on your platform; http://www.graphviz.org/ gem install ruby-graphviz bundle viz
你将在当前目录中有一个带有完整依赖关系图的.png.
或者,您可以通过查看Gemfile.lock
文件来追溯依赖关系.在该GEM
部分中,每个gem都会在其下方缩进,并且可以追溯到您要求的gem:
GEM # ... listen (2.4.0) celluloid (>= 0.15.2) rb-fsevent (>= 0.9.3) rb-inotify (>= 0.9) # ... guard (2.2.5) formatador (>= 0.2.4) listen (~> 2.1) lumberjack (~> 1.0) pry (>= 0.9.12) thor (>= 0.18.1) # ...
从您的Gemfile判断,我猜测Celluloid被包含为传递依赖guard-rails-assets
.