1

当我安装另一个 gem 时,我如何知道为什么要安装一个特定的 gem?

也就是说,有没有一种简单的方法可以找出依赖项的来源?gem 安装失败,所以 gem 依赖不起作用,因为它只处理已安装的 gem。这就是为什么我想追踪依赖关系,它破坏了安装,而且似乎没有必要。

是否有工具可以帮助跟踪尚未安装的 gem 之间的依赖关系?也许是一个打印依赖树的秘密 bundlerswitch?

更新他们刚刚发布了一个新版本的 twitter-bootstrap-rails 来解决这个问题。尽管如此,如果有一种方法可以跟踪已卸载 gem 的依赖关系图,那将会很有用。

这是失败的命令,在带有 JRuby 的 Windows 上运行

gem install twitter-bootstrap-rails

不知何故,这会导致安装旧版本的 libv8 gem,然后安装失败。twitter-bootstrap-rails 没有在它的 gem_spec 中列出 libv8,只有 ruby​​rhino 和 less-rails,它们依赖于其他人和其他人......最终有人依赖于旧版本的 libv8(v3.3.10.4)。问题是哪个 gem 会导致对 libv8 的依赖?

这是我的环境。

RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.15
  - RUBY VERSION: 1.9.2 (2012-02-22 patchlevel 312) [java]
  - INSTALLATION DIRECTORY: c:/jruby-1.6.7/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: c:/jruby-1.6.7/bin/jruby.exe
  - EXECUTABLE DIRECTORY: c:/jruby-1.6.7/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - universal-java-1.7
  - GEM PATHS:
     - c:/jruby-1.6.7/lib/ruby/gems/1.8
     - c:/Users/alex/.gem/jruby/1.9
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
     - "install" => "--no-rdoc --no-ri --env-shebang"
     - "update" => "--no-rdoc --no-ri --env-shebang"
  - REMOTE SOURCES:
     - http://rubygems.org/
4

1 回答 1

1

如果可以在 MRI 下安装它,则可以使用gemviz显示依赖关系图,如下所示:

gemviz twitter-bootstrap-rails

应该可以使用未安装的 gem 来做到这一点(必须有一个这样做的网站),但 gemviz 不能这样做。

编辑:这是依赖关系图:

twitter-bootstrap-rails gem 依赖图

所以therubyracer依赖于libv8。那里有很多依赖项..

于 2012-07-16T22:00:15.510 回答