How do I find out which gem has a specific dependency?
Ruby on-RailsRubyGemBundlerRuby on-Rails Problem Overview
I commented out a gem, but 'bundle install' still won't run. How do I find out which gem has a dependency on sys-proctable?
$ bundle install
Fetching gem metadata from https://rubygems.org/.........
Fetching gem metadata from https://rubygems.org/..
Resolving dependencies...
Could not find sys-proctable-0.9.2 in any of the sources
$ grep proctable Gemfile
#gem 'sys-proctable', '0.9.2', :path => "vendor/gems"
$ bundle list
Resolving dependencies...
Could not find gem 'rspec-rails (= 2.11.0) ruby' in the gems available on this machine.
$ bundle viz
Resolving dependencies...
Could not find gem 'rspec-rails (= 2.11.0) ruby' in the gems available on this machine.
$ bundle -v
Bundler version 1.3.0
$ ruby -v
ruby 1.9.3p385 (2013-02-06 revision 39114) [i386-cygwin]
Gemfile: http://pastebin.com/9WWMfKtv
I've already tried these troubleshooting steps: https://github.com/carlhuda/bundler/blob/1-2-stable/ISSUES.md
Ruby on-Rails Solutions
Solution 1 - Ruby on-Rails
In the bash shell you can do:
gem dependency name_of_the_gem --reverse-dependencies
For instance:
$ gem dependency activesupport --reverse-dependencies
Gem activesupport-2.3.14
Used by
actionpack-2.3.14 (activesupport (= 2.3.14))
activerecord-2.3.14 (activesupport (= 2.3.14))
activeresource-2.3.14 (activesupport (= 2.3.14))
Solution 2 - Ruby on-Rails
I know this answer includes a link, but this is not a link specific answer
You can always check the reverse dependencies of a gem on rubygems.org. There's a link on the right side panel on the website.
Or you can visit the site
> https://rubygems.org/gems/{gem_name}/reverse_dependencies
So, in your case
https://rubygems.org/gems/sys-proctable/reverse_dependencies
Solution 3 - Ruby on-Rails
> How do I find out which gem has a dependency on sys-proctable?
Try the bundler-why plugin (inspired by yarn why
)
bundler plugin install bundler-why
bundle why tzinfo
# ransack -> activesupport -> tzinfo
# rspec-rails -> activesupport -> tzinfo
# business_time -> tzinfo
gem dependency --reverse-dependencies
will traverse a single edge of the paths. In comparison, bundle why
will traverse all edges.