smo*_*nff 7 perl cpan makefile catalyst
我使用Catalyst,Open Street Map和几十个模块开发了一个小型的开源Perl项目.我尝试尽可能多地使用CPAN上的模块,因为我的目标不是重新发明轮子.
所有这些东西都是通过cpanm和local :: lib安装的.每次我需要新东西时,我都会安装几个模块和依赖项(使用cpanm非常简单).现在,我问自己,克隆我的项目的人们如何安装数十个模块而不会出现可怕的头痛问题?
这方面的最佳做法是什么?我应该将所有必需的模块列入Makefile.pl?我现在感到焦虑,因为我在这个项目上努力工作,尝试遵循很多好的做法,但觉得我在这一点上犯了一个错误(因为没想到这个).
我需要一些关于这个问题的建议,因为一切看起来都很神奇,我不相信它足以用'require'关键字列出Makefile中的模块名称.我希望也没有必要在项目中包含所有依赖项并提交所有这些大包以供以后使用.
您应该只列出(在 中Makefile.PL)您直接需要的模块(即您use或require您的模块中的模块)。您无需担心间接需要的模块(即您使用的模块);这是安装人员的工作。
要获取您使用的模块的列表,您当然可以手动编译该列表。但如果您碰巧有The Definitive Guide to Catalyst,第 129 页上有一个方便的 Bash 函数,我不确定是否可以在这里重现。还有Perl::PrereqScanner::App,我没有直接使用它,但 Dist::Zilla 使用它。
FWIW,如果您使用Dist::Zilla来管理您的发行版(我什至对于未上传到 CPAN 的私人项目也这样做),它可以(并且默认情况下)为您跟踪依赖项。