Perl模块安装结构和版本控制

时间:2015-12-22 16:47:30

标签: perl

我刚开始在群集上组织一些东西,并希望得到一些建议。我发布了一个最近的问题How to organize Perl modules并得到了一些关于我做错了什么的好答案。我试图通过每次PREFIX设置Makefile.PL /path/to/lib/module-name/module-version/installation happens here来独立安装每个perl模块。

例如对于模块JSON,我安装它是这样的:

perl Makefile.PL --PREFIX=/path/to/lib/perl5/5.22.1/JSON/2.53
make
make test
make install

对于模块Data-UUID,我是这样做的:

perl Makefile.PL --PREFIX=/path/to/lib/perl5/5.22.1/Data-UUID/1.221
make
make test
make install

所以它在/path/to/lib/perl5/5.22.1中创建了一个目录JSON / 2.53,这就是它安装包的地方。但是因为我为每个单独的模块更改了PREFIX,所以我必须相应地在bash_profile中设置PATH,这有点混乱。

我的主要目标是进行版本控制。在一个假设的场景中,不同的版本适用于你的两个队友,比如JSON / 2.52适用于X而JSON / 2.53适用于Y,你如何控制版本而不必要求他们在本地安装他们的版本?在另一种情况下,如果一个版本在3个月后为您工作并且更新后的版本对您不起作用怎么办?如果将所有内容安装在一个目录中,如何跟踪版本?

我对模块local :: lib还有更多问题,但我会将其作为另一个问题发布。

谢谢!

1 个答案:

答案 0 :(得分:1)

维护CPAN模块的并发版本需要悲伤。我建议改为 - 不要使用docker进行任何部署。这样你就可以在一个孤立的容器中本地安装东西+ deps。

这有点像早期docker,但他们从一些非常大的名字中获得了大量的热情和支持。

就我个人而言,我只是用它来捆绑" mojolicious"反向代理后面的perl webapps,并将它们的依赖关系保持为自包含安装(我可以自主运行/测试/部署)