如何跟踪和检查捆绑的Ruby gem中的依赖项

Sam*_*una 10 ruby rubygems bundler

Bundler将自动安装指定gem的任何依赖项,但是它不会输出哪些依赖项映射到标准输出中的哪些gem.当其中一个依赖项未能通过安装时,该信息很有用.

有没有办法将Bundler设置得更详细,并在安装时告知依赖关系?

我使用的是Bundler 1.0.2

Sam*_*una 12

要查看依赖关系树运行的可视化表示bundle viz:

apt-get install graphviz && gem install ruby-graphviz && bundle viz
Run Code Online (Sandbox Code Playgroud)

它将生成树的PNG文件.

  • 对于OSX,请使用自制程序:brew install graphviz && gem install ruby​​-graphviz && bundle viz (8认同)
  • 如果仍然有一个未完成的未完成的宝石依赖项,这将无法工作..这可以回到最初的问题. (5认同)
  • 想看样品输出?http://patshaughnessy.net/assets/2011/9/17/gem_graph.png (2认同)

ipd*_*ipd 5

一个不太令人兴奋但同样有效的方法就是:

gem dep
Run Code Online (Sandbox Code Playgroud)

这将生成带有依赖项信息的Gemfile.lock样式输出.您可以将此输出传递给less:

gem dep | less
Run Code Online (Sandbox Code Playgroud)

或者,如果您正在搜索失败的依赖项,则可以使用某些上下文进行grep.例如,为了找出我的Thin依赖失败的来源(JRuby失败),我做了:

gem dep | grep -C 15 thin
Run Code Online (Sandbox Code Playgroud)