了解哪些宝石需要来自Gemfile的本机C扩展?[英] Find out which gems require native c extensions from a Gemfile?

本文是小编为大家收集整理的关于了解哪些宝石需要来自Gemfile的本机C扩展?的处理方法,想解了了解哪些宝石需要来自Gemfile的本机C扩展?的问题怎么解决?了解哪些宝石需要来自Gemfile的本机C扩展?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我刚刚开始将注意力转移到部署Ruby Apps Atop TorqueBox,这当然是在JRuby内构建的.迄今为止,我一直基本上表演了一个bundle install,然后沿着jrubydom的方式解决每个gem,但我遇到了几个宝石,这让我带来了一些相当长的时间来解决,因为需要重新实现它们的大量部分.

有没有办法调用Bundler或Rubygems以通过所有GEMS和其DEPS运行,以测试它们是否需要本机C扩展,然后返回此类列表?肯定会很好地解决一些更小的物品甚至知道是否值得在将其转移到JRUBY方面是值得的.

推荐答案

您可以使用 jruby lint .它将检查需要C扩展甚至列出替代的一些宝石(基于此列表).

其他推荐答案

基于本机扩展的宝石通常具有/ext目录,我制作了一个简单的oneliner,找到这些宝石:

puts `bundle show --paths`.split("\n").select{|dep| File.directory?("#{dep}/ext") }.map{|dep| dep.split('/').last }.join(', ')

您可以使用此命令在命令行上执行此操作:

$ bundle show --paths | ruby -e "STDIN.each_line {|dep| puts dep.split('/').last if File.directory?(File.join(dep.chomp, 'ext')) }"

本文地址:https://www.itbaoku.cn/post/786560.html