有没有最简单的方法来构建perl包
我在Ubuntu上编写了一些Perl库(.pm)和PerlScript(.pl),我需要将它们分发给我办公室的同事。这些脚本和库需要第三方库。我想让它变得非常简单 关于我的信息有没有最简单的方法来构建perl包,perl,ubuntu,build,Perl,Ubuntu,Build,我在Ubuntu上编写了一些Perl库(.pm)和PerlScript(.pl),我需要将它们分发给我办公室的同事。这些脚本和库需要第三方库。我想让它变得非常简单 关于我的信息 我知道如何创建Perl脚本 我知道如何创建bash文件 我在创建MAKE文件、rpm、Deb等方面没有经验 我建议使用为每个模块设置模板。安装后,您可以从命令行调用模块启动器,例如: module-starter --module=My::Module --author="Jessada Thutkawkorapin"
- 我知道如何创建Perl脚本
- 我知道如何创建bash文件
- 我在创建MAKE文件、rpm、Deb等方面没有经验
模块启动器
,例如:
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模块,则可以使用该模块安装它们,例如:
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($_);
}
因此,您可以分发一个zip/tarball/etc,其中包含
modulestarter
启动(以及您修改过的)的文件夹和文件以及上述脚本,以安装任何CPAN依赖项,并将其称为CPAN\u install.pl
。如果您愿意,您可以将所有内容封装在一个名为install.pl
的最终脚本中,该脚本可以完成所有这些操作。现在我常用的方法是从我现有的发行版中复制一个Build.pl
文件,然后从那里开始。显然,对于第一种策略,这不是一个有用的策略,但是CPAN中充满了数千个这样的文件
对于一个简单的-.pm
文件纯perl发行版,从复制其他人的Build.PL
文件开始并根据您的情况编辑字段可能是最容易的。您可能只需要更改模块名称
和需要
字段
这是我的一个简单的例子,你可以从中得到启发:
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;
这些字段按顺序表示:
- 发行版中主要模块的名称-这是发行版本身的名称以及版本和摘要的来源
- 此发行版将依赖于构建或运行的其他模块
- 此发行版将依赖于构建的其他模块,但安装后不再需要(通常是
modules或其他构建工具)Test::
- 适用于分销的许可条款
- 为不理解
协议的旧CPAN客户端创建一个遗留Build.PL
Makefile.PL
- 根据上面声明的许可条款自动创建一个
文件许可
- 通过将主模块的POD文档转换为纯文本,自动创建
自述文件
*.deb
包是值得的。@BasileStarynkevitch,我不想具体说明。它们要么是linux要么是Mac用户,你读过吗?@Konerak,我还没试过。这是最简单的方法吗?起初,我认为rpm是最简单的,但我坚持使用许多不同版本的“howto”。所以我决定在这里请教专家。@Konerak,事实上,在我问这个问题之前,我自己试着学习这些东西的时候,确实通过了好几次这样的页面。我的主要问题是我只看到了构建和安装模块的标准过程:perl Build.PL./Build./Build test./Build install,但不知道在哪里创建这个make文件以及如何让它知道我的脚本。我这里的主要问题是如何以及在哪里指定脚本的位置?所有我的脚本都在/bin下,my.pm在/bin/libWell下,对于每个模块(对于发行版,如果您使用--distro
选项),模块启动程序
包括lib
和t
目录,以及一些您通常可以忽略的其他样板文件。一旦安装了模块(通过perl Makefile.PL;make;make test;make install
),它们就被安装到您正在使用的任何perl发行版的site\u perl
子目录中。向下投票。相反,使用声明依赖项,以便它们最终出现在发行版元文件中,另请参见和中的示例。