如何在Perl中重新分发非核心模块?
我是Perl的新手,我需要一些帮助来重新分配非核心模块.这是整个故事.
Perl脚本中使用了两个非核心模块:XML :: Simple和SOAP :: Lite.我正在使用的版本(目前在Windows上)是Strawberry Perl,所以这两个模块已经包含在内.但是,我们不知道最终用户(Unix / Linux系统)是否具有这两个模块,因为它们可能只有标准版本,因此只有核心模块.我的目标是让最终用户尽可能少地进行配置/安装. 首先,我试着看看是否有类似于XML :: Simple和SOAP :: Lite的核心模块.不幸的是,我没有发现任何问题(如果我错了请纠正我). 所以我想现在唯一的选择是重新分配这两个模块.我查了一下,这两个模块允许重新分配.我现在的问题是如何做到这一点.我尝试使用关键字“perl redistribute”搜索,但没有找到任何有用的东西.我的猜测是我们使用导出工具来实现这一目标.但这两个模块是相当复杂的模块,它们有几个嵌套的文件夹/ p??m文件(以及一大堆其他文件,如MAKE,pod,ini文件),所以我不确定我应该做什么.我使用导出器找到的示例相当简单:它们只有1 pm文件和1 pl文件,它们被放在一个文件夹中. 此外,我愿意接受任何其他更好的方法来解决问题.目标只是确保所有最终用户都可以使用我的脚本进行最少的配置/安装工作,因为我们不希望它们遇到一大堆兼容性问题. 任何帮助,将不胜感激.谢谢! = d 解决方法
关于Perl的最好的事情之一是CPAN,即Perl Perlling Archive网络.它是一种镜像服务,因为Perl 5最初出现的时间允许人们通过标准的通用工具(Perl附带的cpan客户端)共享有用的附加模块,如XML :: Simple或SOAP :: Lite.几乎所有的Perl发行版(例如Strawberry Perl和Linux附带的大多数Perl发行版)都配置了CPAN客户端并将其包含在内.该客户端允许人们通过知道模块的名称从CPAN下载和安装模块.
CPAN上的几乎所有模块分布都遵循完全相同的布局.它们通常有一个Makefile.PL文件(如果它使用ExtUtils :: MakeMaker来生成安装脚本),Build.PL文件(如果它使用Module :: Build来生成安装脚本),或两者都有.这些Perl脚本一旦运行,就会创建一个“Makefile”或“Build”文件,可以让您安装模块并验证是否满足所有先决条件. 如果您之前从未进行过Perl发行版,则可以从CPAN下载任何所需的发行版,并查看内容的布局.一旦你看到文件夹和文件位置非常直观.它们通常使用安装脚本和根目录中的支持文件(如自述文件),使用lib目录中的自定义模块(您创建的模块)以及t目录中的单元测试进行布局. 如果你是新手,我建议你看看基于Build.PL的那些;这些是基于Perl的纯安装脚本.如果您决定使用基于Module.PL的发行版,那么很容易指定您的模块发行版需要XML :: Simple和SOAP :: Lite.首先,创建一个基本的Module :: Build安装脚本.这看起来像: use Module::Build; my $build = Module::Build->new( module_name => 'Foo::Bar',license => 'perl',requires => { 'perl' => '5.6.1','Some::Module' => '1.23','Other::Module' => '>= 1.2,!= 1.5,< 2.0',},); $build->create_build_script; (这是从Module::Build::Authoring文档中获得的). 然后,指定所需的库及其最低版本.如果您不在乎,零(0)是可接受的版本,但这意味着“任何事情”都是好的.我建议至少指定您正在测试的计算机上安装的库的版本. (整洁的捷径:你可以找到任何具有$VERSION包变量的库的版本: perl -MSome::Lib -E "say Some::Lib->VERSION()" .) 要安装模块,步骤如下所示: cd folderwheremylibis perl Build.PL Build Build test Build install 这将创建安装工具,准备用于测试的文件夹(通常只是将内容复制到构建库区域以获取简单模块),在t文件夹中运行所有.t脚本(“tests”,通常使用 构建脚本作为“设置”阶段的一部分,将查看您的先决条件,并在您尚未拥有它们时发出警告. 然后,正如ikegami’s answer所指出的,如果您使用cpanm客户端安装库,cpan客户端将自动为您下载,下载,测试和安装您的依赖项!或者,基于Build.PL的安装程序也具有’installdeps’选项,它将执行相同的操作.然后,即使它们将来发生变化,也会自动下载,测试和安装任何和所有依赖项(以及可能的递归依赖项). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |