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

标签 perl deployment dependencies

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

Shipwright 是我想要完成的事情的正确选择,还是有其他更合适的方法?理想情况下,我可以像使用 Buildout 一样使用 Shipwright。我使用 Buildout 为我的开发创建一个很好的隔离环境,并且在部署到实时服务器时我使用 Buildout 来管理我的所有应用程序的依赖项。

编辑:以下是我希望能够在 Perl 中做的 Buildout 的亮点。

使用 Buildout,我的代码库中有一个列出依赖项的文件(对于 Perl,它可以是 CPAN 模块或其他源存储库)。我可以运行一个引导脚本,它将获取所有这些依赖项并将它们放入我的项目中的一个目录和。不要在系统级别安装它们 . Buildout 还创建了实用程序脚本,它可以做任何你想做的事情(运行测试、其他命令行工具、任何东西),并且这些脚本显式地将依赖项添加到路径中,以便在我的脚本运行时我的所有依赖项都可以导入。

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

最佳答案

我认为您不会在 Perl 中找到与 Buildout 完全相同的东西,但是您可以将一些东西放在一起就可以了。

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

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

然后,您也许可以使用 Shipwright 对具有这些现在本地依赖项的项目进行捆绑和部署。

关于perl - 部署 Perl 应用程序的好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3929567/

相关文章:

visual-studio-2010 - 如何从 Visual Studio 2010 部署桌面应用程序升级

perl - 如何制作默认使用 $_ 的 Perl 函数?

Docker - 检查私有(private)注册表镜像版本

windows - 使用 Parallel::ForkManager 发出警告,但仅在 Windows 中

ruby-on-rails - Docker Rails 应用程序无法提供服务 - curl : (56) Recv failure: Connection reset by peer

jar - 如何/在哪里可以找到有关 JBoss 客户端依赖项的信息?有什么文件吗?

build.gradle中testImplementation和androidTestImplementation之间的android区别

gradle - 是否可以在整个项目中强制使用特定的库版本?

linux - 在 Linux Redhat 中的 Eclipse Classic 中运行 Perl 脚本

javascript - 将动态 XML 内容检索到 Perl 中的变量中