我需要在没有编译器的生产服务器上安装perl工具。我可以通过local :: lib安装CPAN发行版,但缺乏编译器意味着我不得不要求系统管理员安装更多模块。由于他们的平均周转时间为1-2周,即使对于最荒谬的简单任务,尝试安装,要求他们安装什么,尝试再次安装等的过程也是非常痛苦的。我如何确定CPAN分布的哪些依赖需要编译器?
那么我怎样才能快速找出dist的给定依赖关系需要一个c编译器,所以我可以给他们一个列表?
我需要在没有编译器的生产服务器上安装perl工具。我可以通过local :: lib安装CPAN发行版,但缺乏编译器意味着我不得不要求系统管理员安装更多模块。由于他们的平均周转时间为1-2周,即使对于最荒谬的简单任务,尝试安装,要求他们安装什么,尝试再次安装等的过程也是非常痛苦的。我如何确定CPAN分布的哪些依赖需要编译器?
那么我怎样才能快速找出dist的给定依赖关系需要一个c编译器,所以我可以给他们一个列表?
当您在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
管理器。这些将自动下载相关模块。
想出了一个解决方案:
跟踪系统的Technet procmon中(适用于Windows)调用或strace的Linux上,然后运行测试套件和过滤结果为“/自动/”。这样你就可以看到它试图加载的所有dll,并且可以从那里找出需要编译器的dists。
正如大卫说,cpantesters试图找出如果一个模块是“纯” ..
their explanation on how they do this可能会有所帮助..
或者我猜你可能只是一个类似的系统上安装模块,并将它们复制过度?或者这是否违反“规则”? ;)
它不违反规则,但对30台机器很多工作。 ;) – Mithaldu 2010-11-23 15:18:20
你没有明确提到它,但你的url包括依赖接口的pureperl选项(我已经知道接口),它正是*我所需要的。 :) – Mithaldu 2010-11-23 15:19:23