Perl CPAN模块预需求
我计划不久将一个模块上传到CPAN。这是我参与的第一个模块。我有一个模块,我会考虑一个“beta”阶段。我使用ExtUtils::MakeMaker通过Makefile.PL生成一个Makefile(我已经在下面粘贴了它的内容)。Makefile.PL脚本列出了所有prereq模块。我想知道在安装过程中的哪一点上,如果prereq模块不存在,会安装它们吗?我很好奇,因为我在一个缺少一些prereq模块的单独环境中运行了Makefile.PL,然后是Perl CPAN模块预需求,perl,cpan,Perl,Cpan,我计划不久将一个模块上传到CPAN。这是我参与的第一个模块。我有一个模块,我会考虑一个“beta”阶段。我使用ExtUtils::MakeMaker通过Makefile.PL生成一个Makefile(我已经在下面粘贴了它的内容)。Makefile.PL脚本列出了所有prereq模块。我想知道在安装过程中的哪一点上,如果prereq模块不存在,会安装它们吗?我很好奇,因为我在一个缺少一些prereq模块的单独环境中运行了Makefile.PL,然后是make,然后是makeinstall。但是,它
make
,然后是makeinstall
。但是,它们没有安装吗?我以为他们会,但也许我错过了什么?我正在找人提供一些清晰的信息。提前谢谢~
Makefile.PL
#!/usr/bin/env perl
use strict;
use warnings;
use ExtUtils::MakeMaker;
WriteMakefile(
NAME => 'Imgur',
VERSION => '0.01',
PREREQ_PM => {
'JSON' => 2.90,
'LWP::UserAgent' => 6.05,
'HTTP::Request::Common' => 6.04,
'Data::Dumper' => 2.154,
'DateTime::Format::ISO8601' => 0.08,
'Config::IniFiles' => 2.86,
'Scalar::Util' => 1.42,
'Class::Std::Utils' => 0.0.3,
'MIME::Base64' => 3.15,
'File::Slurp' => 9999.19
}
);
Makefile.PL不安装先决条件;如果没有安装,它只会抱怨。安装先决条件是CPAN客户端的工作
注意:有一个
自动安装
功能可以做到这一点,但普遍的共识似乎是使用它是一个坏主意。如果使用Module::Build而不是ExtUtils::MakeMaker,则可以使用/Build installdeps
。然而,有些人认为M::B是一个失败的实验(我认为它包含了它的维护者)。模块::构建也不再是5.22的核心。0@ikegami你介意分享一些额外的讨论链接吗?在旁注中,您应该将版本指定为字符串(例如'JSON'=>'2.90',
)。这避免了浮点转换问题。