2010-11-23 49 views
4

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

那么我怎样才能快速找出dist的给定依赖关系需要一个c编译器,所以我可以给他们一个列表?

回答

6

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

如果您点击该链接,它会带您到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管理器。这些将自动下载相关模块。

+0

你没有明确提到它,但你的url包括依赖接口的pureperl选项(我已经知道接口),它正是*我所需要的。 :) – Mithaldu 2010-11-23 15:19:23

4

也许你可以在测试服务器上安装所有你需要的东西,然后用PAR打包应用程序及其依赖关系?

+1

不是我所需要的,但它给了我正确的想法。谢谢。 :) – Mithaldu 2010-11-23 14:27:18

0

想出了一个解决方案:

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

3

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

或者我猜你可能只是一个类似的系统上安装模块,并将它们复制过度?或者这是否违反“规则”? ;)

+0

它不违反规则,但对30台机器很多工作。 ;) – Mithaldu 2010-11-23 15:18:20

相关问题