我想要一个perl脚本,它会在运行perl脚本时自动安装所有cpan模块。你可以帮忙吗?
答案 0 :(得分:2)
CPAN
客户端只是一个Perl module,它由命令行工具包装。因此,您可以直接从Perl脚本调用它。
但是,您可能需要系统管理员priveleges来安装新模块。避免这种情况的一种方法是使用local::lib
,或者询问用户必要的权限。在Unix上,如果不以root身份运行,您可以拒绝运行脚本。但是,这会带来许多安全问题,应尽可能避免。
一个相当理智的解决方案是要求您的用户安装cpanm
client,并在cpanfile
中指定您的依赖项。然后,您的用户只需执行cpanm --installdeps /dir/of/your/script
。
但如果我们已经遇到了所有麻烦,你也可以做出正确的CPAN分配。您不必将其上传到CPAN,但您可以分发tarball,并让您的用户安装它。这有很多优点:成熟的工具链,自动化测试以及像Dist::Zilla
这样的精彩助手,可以轻松创建分发。
答案 1 :(得分:1)
使用文档中的CPAN::Shell:
CPAN::Shell->install("Acme::Meta");