如何在不安装CPAN模块的情况下安装deps?

zou*_*oul 5 deployment installation perl cpan module

这是我之前关于开发Perl应用程序的问题的后续内容.假设我使用开发应用程序作为CPAN模块Module::Install.现在我将代码上传到生产服务器,比如使用a git push,我想安装中列出的应用程序依赖项Makefile.PL.如果我只是运行cpan .,那么就会尝试像普通的Perl模块那样安装应用程序,即.开始将模块和文档复制到整个系统的标准Perl目录.

这是应该的方式吗?您是否将应用程序安装到标准Perl目录中?我习惯将我的Perl应用程序放在一个目录中并单独使用lib.否则,似乎我必须管理很多其他的事情,比如在路径上的某处安装资源等.如果我只想安装声明的deps Makefile.PL并运行应用程序测试以确保一切正常,我该怎么办?

(这是在某处记录的吗?我的意思是,是否有类似于部署和更新非平凡Perl应用程序的最佳实践?或者每个人都以自己的方式这样做?)

hob*_*bbs 10

我可能会误解,但我认为你在寻找的是什么

perl Makefile.PL
make installdeps
Run Code Online (Sandbox Code Playgroud)


bri*_*foy 8

如果你使用的是Module :: Install,那么你真的在后台使用ExtUtils :: MakeMaker.您可以使用所有MakeMaker功能及其提供的目标.虽然文档没有显示每个功能,但在生成的文件中有一些有价值的东西Makefile.

然而,这MakeMaker是旧闻,大多数人都要求圣诞老人消失.如果你想更好的控制,包括创建自己的目标和过程,Module :: Build进行是更加的简单订单合作以及跨平台(即使这只是意味着不使用不同的make,gmake或任何在同一操作系统上在不同的盒子上).如果你偏离了正常的,消费者级的安装过程,那么你的生活就会变得更轻松MakeMaker.

有些人很欣赏Module::Install构建文件的简洁性,但是一旦构建完成,你就不会花很多时间搞乱你的构建文件,所以它并没有那么多真正的好处.当你获得的小利益锁定你MakeMaker,它根本不是一个胜利.


2014年更新:Module :: Build现已失宠,需要维护人员.它从来没有达到人们可以使用它来构建和分发XS模块的程度.它在Perl v5.19中已被弃用,尽管您仍然可以从CPAN获取它.