如何安装Perl脚本的依赖关系?

我试图执行一个在Perl上运行的守护进程,并且该文件被称为ffencoderd.pl 。 每次运行时,都会指出文件丢失,例如Can't Locate IO/Scalar.pm

所以我去CPAN.orgfind这个文件并安装它。 唯一的问题是我刚刚安装了6个文件,我担心可能会有20个以上的文件。 而不是继续运行ffencoderd.pl并发现我需要安装另一个文件,我想知道是否有更新perl 。 这些文件是否在正确安装的Perl中是标准的? EX: Config-General-2.50Pod-Xhtml-1.61libxml-enno-1.02

Solutions Collecting From Web of "如何安装Perl脚本的依赖关系?"

更新Perl不会帮助你,因为缺少的模块不是核心Perl发行版的一部分; 他们必须分开安装。 像cpanm这样的工具将帮助你安装模块(给出一个需要的模块列表),但是它们不能查看脚本并找出它需要的模块。 脚本的作者应该做到了,但显然没有。 更新:如果你正在谈论这个ffencoderd.pl ,作者没有列出所需的模块 。 您需要安装IPC :: ShareLite,Config :: General,SOAP :: Lite,XML :: DOM,XML :: Simple,Pod :: WSDL,Pod :: Xhtml和HTML :: Template。

最简单的安装方法是安装cpanm ,然后键入:

 cpanm IPC::ShareLite Config::General SOAP::Lite XML::DOM XML::Simple Pod::WSDL Pod::Xhtml HTML::Template 

如果您没有要安装的模块列表,则此问题是关于了解脚本的依赖关系。 在我的答案你会发现一个脚本,使用modulee :: ExtractUse列出脚本的依赖关系。 你需要安装的唯一模块是modulee :: ExtractUse和modulee :: CoreList (如果你还没有的话)。 您需要针对您的情况调整脚本。

更新perl应该通过你的包maganger来完成。 来自CPAN的perl的模块安装应该由CPAN实用程序来处理,这个实用程序可以像命令perl -MCPAN -e shell一样通过命令来访问。 CPAN将处理包装要求和正确的安装流程。

您可以在文档中获得核心Perl模块列表 。 我不认为你列出的核心是核心。

有各种实用程序将自动安装模块和跟踪依赖关系。 cpan和cpan减去例如。 如果您想避免系统范围的安装(以root用户身份), local :: lib将允许您将它们安装在特定的目录(您可以添加到PERL5LIB环境变量中)。

请注意,某些模块(如使用libxml的模块)取决于要安装的非Perl库。

如果你真的想升级Perl,那么你可以看看perlbrew ,这可以帮助你并排安装多个版本的Perl。