我如何确定CPAN分布的哪些依赖需要编译器?

时间:2010-11-23 11:36:56

标签: perl compiler-construction cpan

我需要在没有编译器的生产服务器上安装perl工具。我可以通过local :: lib安装CPAN发行版,但缺少编译器意味着我必须要求系统管理员安装更多模块。由于他们的平均周转时间为1-2周,即使对于最荒谬的简单任务,尝试安装,要求他们安装什么是borked,尝试再次安装等等的过程非常痛苦。

那么我如何能够快速找出dist的哪些依赖关系需要一个c编译器,所以我可以给它们一个列表?

4 个答案:

答案 0 :(得分:6)

http://search.cpan.org处搜索CPAN中的模块时,请查看浏览器窗口的最右侧。在那里,您会看到一个名为 依赖关系 的链接。这是在下载模块的链接下方。

如果单击该链接,它将转到http://deps.cpantesters.org,它将显示该模块的依赖关系树。例如,在http://deps.cpantesters.org/?module=File::Spec&perl=5.12.1&os=any+OS&pureperl=on&devperls=on处查看File :: Spec的这个。

它并不完美,但它会让你知道你需要什么模块。

最好的方法是在Windows上使用cpan命令或ppm管理器。这些将自动下载相关模块。

答案 1 :(得分:4)

也许您可以在测试服务器上安装所需的全部内容,然后使用PAR将应用程序及其依赖项打包?

答案 2 :(得分:3)

正如David所说,cpantesters试图找出一个模块是否“纯粹”。
their explanation on how they do this可能会有所帮助..

或者我想你可以将模块安装在类似的系统上并将它们复制过来?或者这违反了“规则”? ;)

答案 3 :(得分:0)

找出解决方案:

使用Technet ProcMon(适用于Windows)或Linux上的strace跟踪系统调用,然后运行测试套件并过滤“/ auto /”的结果。这样你就会看到它试图加载的所有dll,并且可以从那里找出需要编译器的dists。