Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 找出gem的二进制依赖关系_Ruby_Rubygems_Dependencies_Rpm_Rpmbuild - Fatal编程技术网

Ruby 找出gem的二进制依赖关系

Ruby 找出gem的二进制依赖关系,ruby,rubygems,dependencies,rpm,rpmbuild,Ruby,Rubygems,Dependencies,Rpm,Rpmbuild,我想用我的Ruby应用程序和它的gems来构建rpm。由于一些宝石依赖于二进制文件,我想自动找到它们。例如,nokogirigem依赖于libxml。我可以自动获取Gemfile中所有gem的所有依赖项以将它们打包到rpm中吗 现在我很有礼貌,这很无聊 不,不幸的是,这是不可能的。RubyGems只记录Gem依赖项。很明显,它不能记录任何它不知道的依赖项,那怎么可能呢 有一个,但它只用于人类可读,而不是机器可读。通常,rpmbuild会自动执行这些操作…@glglglglgl,它如何知道gems

我想用我的Ruby应用程序和它的gems来构建rpm。由于一些宝石依赖于二进制文件,我想自动找到它们。例如,
nokogiri
gem依赖于
libxml
。我可以自动获取Gemfile中所有gem的所有依赖项以将它们打包到rpm中吗


现在我很有礼貌,这很无聊

不,不幸的是,这是不可能的。RubyGems只记录Gem依赖项。很明显,它不能记录任何它不知道的依赖项,那怎么可能呢


有一个,但它只用于人类可读,而不是机器可读。

通常,
rpmbuild
会自动执行这些操作…@glglglglgl,它如何知道gems的二进制依赖关系?我需要为它们手动设置
BuildRequires
,每当检查二进制文件和库并创建对其他库的依赖关系时。OTOH,库包提供与其包含的库相匹配的符号。但老实说,因为我不知道什么是宝石,我只能回答得不够。但是可能有一些脚本可以对它们进行适当的分析和处理。本主题的主要思想是找出这个脚本:)。但看起来好像没有这样的纸条,我明白这一点。我正在考虑解析extconf.rb,但这是一个非常复杂的问题,一般来说是不可行的:)还有一些依赖项,它们甚至没有出现在
extconf.rb
中,只要考虑一下使用
Kernel#system
或类似的东西就可以了。