我在Ubuntu上写了几个Perl库(.pm)和Perlscripts(.pl),我需要将它们分发给我办公室的同事。这些脚本和库需要第三方库。我想让它变得非常简单。
关于我的信息。
答案 0 :(得分:15)
我建议使用Module::Starter
为每个模块设置模板。安装完成后,您可以从命令行调用module-starter
,例如:
module-starter --module=My::Module --author="Jessada Thutkawkorapin" --email=your@email.com
或者,如果您想要包含多个模块的分发:
module-starter --distro=Foo --module=Foo,Foo::Bar,Foo::Baz --author="Jessada Thutkawkorapin" --email=your@email.com
然后,只需用您的模块覆盖.pm
文件,包括您要运行的任何单元测试(默认测试基本上检查模块的语法以及pod语法)。然后通过
perl Makefile.PL
make
make test
make install
(从技术上讲,make test
是可选的,但强烈建议)。
现在,如果这些模块依赖于其他CPAN模块,那么您可以使用模块CPAN
来安装它们,例如:
use strict;
use warnings;
use CPAN;
#populate however you'd like, either hard-coded, read from a file, etc.
my @modules_to_install=();
foreach(@modules_to_install)
{
CPAN::Shell->install($_);
}
因此,您可以使用module-starter
启动(以及您修改过的)文件夹和文件以及上述脚本来分发zip / tarball / etc以安装任何CPAN依赖项,并调用它,比如说{ {1}}。如果你愿意,你可以将所有内容包装在一个名为cpan_install.pl
的最终脚本中,这个脚本可以完成所有这些工作。
答案 1 :(得分:2)
这些天我常用的方法是简单地从我现有的一个发行版中复制一个Build.PL
文件,然后从那里开始。显然,对于第一个策略来说,这不是一个有用的策略,但CPAN充满了数千个这样的文件。
对于一个简单的单{ - 1}}文件pure-perl发行版,最简单的方法是复制其他人的.pm
文件并根据你的情况编辑字段。您可能需要更改的是Build.PL
和module_name
字段。
这是我的一个简单的你可以偷窃^ W受到启发:
requires
这些字段按顺序表示:
use strict;
use warnings;
use Module::Build;
my $build = Module::Build->new(
module_name => 'Your::Name::Here',
requires => {
'Your::Requirements::Here' => '1.23',
},
build_requires => {
'Test::More' => 0,
},
license => 'perl',
create_makefile_pl => 'traditional',
create_license => 1,
create_readme => 1,
);
$build->create_build_script;
模块或其他构建工具)Test::
协议的旧CPAN客户端创建旧版Makefile.PL
Build.PL
文件LICENSE
文件