从 Gemfile 中找出哪些 gem 需要本机 c 扩展?

2024-05-03

我最近才开始将注意力转向在上面部署 Ruby 应用程序TorqueBox当然,它是构建在 Jruby 之上的。到目前为止,我基本上一直在执行bundle install然后在通往 jrubydom 的路上解决每个宝石,但我遇到了一些宝石,由于需要重新实现其中的大部分,所以花了我相当长的时间来解决。

有没有办法调用捆绑器或 ruby​​gems 来运行所有 gem 及其 deps 来测试它们是否需要本机 c 扩展,然后返回这样的列表?解决一些更小的项目,或者甚至知道是否值得解决一个项目并将其转移到 jruby 方面肯定会很好。


基于具有本机扩展的 gem 通常有一个 /ext 目录的事实,我制作了一个简单的 oneliner 来查找这些 gem:

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')) }"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Gemfile 中找出哪些 gem 需要本机 c 扩展? 的相关文章

随机推荐