我如何找出具有特定依赖关系的gem?

Chl*_*loe 62 ruby gem ruby-on-rails bundler

我注释掉了一个gem,但'bundle install'仍然无法运行.如何找出哪个gem依赖于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]
Run Code Online (Sandbox Code Playgroud)

Gemfile:http://pastebin.com/9WWMfKtv

我已经尝试过这些故障排除步骤:https://github.com/carlhuda/bundler/blob/1-2-stable/ISSUES.md

fme*_*dez 97

在bash shell中,您可以:

gem dependency name_of_the_gem --reverse-dependencies, 例如:

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))
...
Run Code Online (Sandbox Code Playgroud)

  • 如果实际上没有安装gem,这不起作用. (6认同)
  • 对我来说,只有在指定``-b``参数("``-b``,`` - -both`` - 允许LOCAL和REMOTE操作"时才有效) (4认同)
  • @Chloe你可以试试这个:gem依赖sys-proctable --reverse-dependencies,我在命令中添加了反向依赖选项. (2认同)

Dee*_*ale 8

我知道这个答案包含一个链接,但这不是特定于链接的答案

您始终可以在rubygems.org上检查 gem 的反向依赖关系。网站右侧面板上有一个链接。

在此处输入图片说明

或者您可以访问该网站

https://rubygems.org/gems/{gem_name}/reverse_dependencies

所以,在你的情况下

https://rubygems.org/gems/sys-proctable/reverse_dependencies


Jar*_*eck 5

如何找出哪个 gem 依赖于 sys-proctable?

尝试使用bundler-why插件(灵感来自yarn why

bundler plugin install bundler-why
bundle why tzinfo
# ransack -> activesupport -> tzinfo
# rspec-rails -> activesupport -> tzinfo
# business_time -> tzinfo
Run Code Online (Sandbox Code Playgroud)

gem dependency --reverse-dependencies将遍历路径的单个边缘。相比之下,将遍历所有边。bundle why