有没有一种最简单的方法来构建perl包

时间:2012-03-05 12:11:11

标签: perl ubuntu build

我在Ubuntu上写了几个Perl库(.pm)和Perlscripts(.pl),我需要将它们分发给我办公室的同事。这些脚本和库需要第三方库。我想让它变得非常简单。

关于我的信息。

  • 我知道如何创建Perl脚本。
  • 我知道如何创建bash文件。
  • 我没有创建MAKE文件,rpm,Deb等的经验。

2 个答案:

答案 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.PLmodule_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文件
  • 将主模块的POD文档转换为纯文本,自动创建LICENSE文件