我在Ubuntu上编写了几个Perl库(.pm)和Perl脚本(.pl),需要将它们分发给办公室的同事。这些脚本和库需要第三方库支持,我希望能够非常简单地完成。
关于我的信息:
- 我知道如何创建Perl脚本。
- 我知道如何创建bash文件。
- 我没有创建MAKE文件、rpm或Deb等经验。
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
开始的文件夹和文件(以及您修改的文件),以及上面的安装任何 CPAN 依赖项的脚本,分发一个 zip/tarball/etc,并将其称为 cpan_install.pl
。如果您愿意,您可以再用一个叫做 install.pl
的最终脚本来包装所有这些功能。--distro
选项,则还包括发行版),module-starter
都会包含 lib
和 t
目录,以及一些其他的样板文件,你大多数情况下可以忽略它们。一旦这些模块被安装(通过 perl Makefile.PL;make;make test;make install
),它们就会被安装到你正在使用的任何 Perl 发行版的 site_perl
子目录中。 - user554546PREREQ_PM
声明依赖项,这样它们将出现在发行版元数据文件中,还可以参见https://dev59.com/qGsz5IYBdhLWcg3wxq4V#7664993和https://dev59.com/hk3Sa4cB1Zd3GeqPsBJI#2606677中的示例。 - daximuse 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::
模块或其他构建工具)Makefile.PL
文件,以便理解 Build.PL
协议LICENSE
文件README
文件
*.deb
软件包可能会很值得。 - Basile StarynkevitchMakefile.PL
完成的。 - user554546