【发布时间】:2015-03-07 07:38:22
【问题描述】:
我正在开发一个打算使用 Module::Build 部署的 Perl 应用程序。我需要通过 CPAN 安装一些模块,因为它们不能通过 Ubuntu 的包管理器获得——或者更准确地说,是我们所有服务器使用的内部 apt-get 镜像。虽然这在我们的开发服务器上一切都很好,但 IT (可以理解)不愿意在没有缓存或内部控制的生产机器上运行代码。
由于我们目前没有 CPAN 镜像,这基本上意味着我需要将所有这些非 Ubuntu 模块集中到一个地方,以便将它们存档和/或提交给版本控制。理想的解决方案是从源代码控制中检查该实用程序,更改数据库等的几个配置变量,也许运行构建/安装命令,然后完成。幸运的是,开发服务器是生产服务器的克隆,因此使用 XS 或其他特定于体系结构的功能的模块不会造成问题。
我认为处理这个问题的最干净的方法是检查我需要的模块的源 tarball 并设置 Module::Build 以使用它们来解决其依赖关系而不是寻找 CPAN,但我没有看到一个选项.这是可行的,还是有另一种方法来汇总我需要的所有模块以进行基本上离线部署?
【问题讨论】:
-
你看过App::FatPacker吗?
-
Module::Build 不会(我上次检查过)本身解决依赖关系,它只是告诉 cpan(或 cpanplus 或 cpanm)它们是什么。 cpan 可以使用文件 url 来查找模块。但考虑使用 Pinto 之类的东西
标签: perl deployment module-build