我正在尝试执行在Perl上运行的守护程序,该文件名为ffencoderd.pl
。每次运行时,都会指出文件丢失,例如Can't Locate IO/Scalar.pm
。
所以我去CPAN.org查找文件并安装它。唯一的问题是我刚安装了6个文件,我担心可能还有20个。我想知道是否有更新ffencoderd.pl
的方法,而不是继续运行perl
并发现我需要安装另一个文件。这些文件是否在正确安装的Perl中标准化? EX:Config-General-2.50
,Pod-Xhtml-1.61
,libxml-enno-1.02
等
答案 0 :(得分:8)
更新Perl对您没有帮助,因为缺少的模块不是核心Perl发行版的一部分;它们必须单独安装。像cpanm这样的工具将帮助您安装模块(给定所需模块的列表),但是他们无法查看脚本并找出所需的模块。剧本的作者本应该这样做,但显然没有。 更新:如果您正在谈论this ffencoderd.pl,则作者did list the required modules。您需要安装IPC :: ShareLite,Config :: General,SOAP :: Lite,XML :: DOM,XML :: Simple,Pod :: WSDL,Pod :: Xhtml和HTML :: Template。
安装这些内容的最简单方法是install cpanm,然后输入:
cpanm IPC::ShareLite Config::General SOAP::Lite XML::DOM XML::Simple Pod::WSDL Pod::Xhtml HTML::Template
如果您没有要安装的模块列表,this question就是要弄清楚脚本的依赖关系。在my answer中,您将找到一个使用Module::ExtractUse列出脚本依赖关系的脚本。您需要安装的唯一模块是Module :: ExtractUse和Module::CoreList(如果您还没有)。你需要根据自己的情况稍微调整一下脚本。
答案 1 :(得分:2)
更新perl应该通过你的包maganger来完成。来自CPAN的perl模块安装应该由CPAN实用程序处理,该实用程序通过命令perl -MCPAN -e shell
来访问。 CPAN将处理包装要求和正确的安装过程。
答案 2 :(得分:2)
您可以在文档中获得list of core Perl modules。我认为你列出的任何一个都不是核心。
有各种实用程序可以自动为您安装模块和跟踪依赖项。例如cpan和cpan minus。如果要避免系统范围的安装(以root身份),local::lib将允许您将它们安装在特定目录中(可以添加到PERL5LIB环境变量中)。
请注意,某些模块(例如使用libxml的模块)依赖于要安装的非Perl库。
如果您真的想要升级Perl,那么您可以查看perlbrew,它可以帮助您并排安装多个版本的Perl。