部署Perl应用程序的好方法是什么?

Mat*_*son 9 deployment perl dependencies

我发布了这个问题,寻找与Buildout for Perl 类似的东西.我认为Shipwright是我正在寻找的,但我不太确定.我玩过它,我创建了一个项目,导入了我的所有源代码和依赖项,然后我将所有内容导出到一个容器中,然后文档类型就停止了.我如何处理造船厂的船只?我是否在船上进行实际的开发工作,还是在船厂进行开发?我假设这艘船仅用于部署,但我如何实际将船只部署到网络服务器上(比如我正在使用linux,apache和直接运行cgi).

Shipwright对我正在努力完成的事情是正确的吗还是还有其他更合适的东西?理想情况下,我可以使用Shipwright,类似于我如何使用Buildout.我使用Buildout为我的开发创建一个漂亮的隔离环境,并且在部署到实时服务器时使用Buildout来管理我的所有应用程序的依赖项.

编辑:以下是我希望能够在Perl中使用Buildout做什么的亮点.

使用Buildout,我的代码库中有一个文件列出了依赖项(Perl可以是CPAN模块或其他源代码库).我可以运行一个引导脚本来获取所有这些依赖项并将它们放到我的项目中的目录中,而不是在系统级别安装它们.Buildout还创建了可以执行任何操作的实用程序脚本(运行测试,其他命令行工具,任何实际操作),并且这些脚本显式地将依赖项添加到路径中,以便在我的脚本运行时可以导入所有依赖项.

这真的非常好,它允许我管理我的依赖项,而无需在系统级别安装任何东西.这使得从一个版本更改为另一个版本非常容易.此外,它允许我使用同一模块的不同版本在同一系统上运行多个Buildout项目.最后,一个巨大的好处是,使用Buildout的目录结构,我可以将依赖项提交到源代码控制并部署到新机器,我只需要执行检出,并且所有依赖项都已满足,而无需触及安装在系统级别.

mpe*_*ers 3

我认为您不会在 Perl 中找到与 Buildout 完全相同的东西,但您可以将一些东西放在一起来实现这一目的。

您可以使用Module::Build的标准 Build.PL 脚本来管理依赖项并使用命令来运行测试等。

然后,您可以使用cpanminus将这些依赖项安装到本地(非系统)目录中。

然后,您也许能够使用 Shipwright 与这些现在本地依赖项进行项目的捆绑和部署。