我的webapp取决于很多模块。当我在远程服务器上部署时,我必须cpanm重新安装所有模块,这有以下问题:
所以我想在部署时重新发布它们。我几乎可以使用PAR,但我不能,因为我不希望以二进制形式这样做 - 因为Perl版本,架构可能会有所不同。
Module::Install::Bundle
是我找到的壁橱。在指定prereq后,它可以从CPAN自动获取模块及其所有依赖项(直到核心模块)。模块确实构建和测试,但“make install”什么都不做 - 它根本不安装这些先决条件。
我有什么遗漏的吗?
我在Windows上使用Strawberry Perl。
答案 0 :(得分:1)
原则上,cpanm可以满足您的要求:
cpanm --notest
速度很快(当然,您并不总是希望跳过测试,但是测试是造成速度下降的最大原因。除此之外,您可以尝试自己编写并行下载器)cpanm FOO/Bar-1.234.tar.gz
将安装确切的版本,并且可以在您的PAUSE帐户下上传您的分叉包(因此它适用于私有但仍为开源库)cpanm .
将发行版本安装在当前目录中,因此这可能是您的私有库的方式。cpanm foo.tar.gz
也可以cpanm唯一的问题是自动化依赖项列表。
还请注意,固定库版本而不固定perl版本也没有意义。在这种情况下,您可以使用PAR。同样,对于PAR,您无需使用打包程序即可获取整体文件-您可以使用PAR :: Repository安装模块,这比整体软件包更适合调试。
答案 1 :(得分:0)
您可以查看Carton。有了它,您可以为应用程序提供一组自包含的依赖项。