如何管理开源Perl项目使用的模块的安装?

我在 small open-source Perl project上使用Catalyst,Open Street Map和几十个模块.我尝试尽可能多地使用CPAN上的模块,因为我的目标不是重新发明轮子.

所有这些东西都是通过cpanm和local :: lib安装的.每次我需要新东西时,我都会安装几个模块和依赖项(使用cpanm非常简单).现在,我问自己,克隆我的项目的人们如何安装数十个模块而不会出现可怕的头痛问题?

这方面的最佳做法是什么?我应该将所有必需的模块列入Makefile.pl?我现在感到焦虑,因为我在这个项目上努力工作,尝试遵循很多好的做法,但觉得我在这一点上犯了一个错误(因为没想到​​这个).

我需要一些关于这个问题的建议,因为一切看起来都很神奇,我不相信它足以用’require’关键字在Makefile中列出模块名称.我希望也没有必要在项目中包含所有依赖项并提交所有这些大包以供以后使用.

解决方法

您应该只列出(在Makefile.PL中)您需要的模块(即您在模块中使用或需要的模块).您无需担心间接需要的模块(即,您使用的模块);这是安装程序的工作.

要获得您使用的模块列表,您当然可以手动编译列表.但是如果您碰巧拥有Catalyst的权威指南,那么第129页有一个方便的Bash功能,我不确定我能在这里重现.还有Perl::PrereqScanner::App,我没有直接使用,但是由dist :: Zilla使用.

FWIW,如果您使用Dist::Zilla来管理您的发行版(我甚至对我没有上传到CPAN的私有项目都这样做),它可以(并且认情况下)跟踪您的依赖关系.

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...