【发布时间】:2010-09-13 16:59:36
【问题描述】:
似乎大多数 Perl 安装程序都以安装 Perl 模块为中心,而不是应用程序。诸如 ExtUtils::MakeMaker 和 Module::Build 之类的东西非常适合模块,但对于 Web 应用程序需要一些额外的工作。
理想情况下,在从存储库中签出源代码后能够执行以下操作会很好:
- 检测到缺少依赖项
- 从 CPAN 下载并安装依赖项
- 运行命令将源“构建”为最终状态(执行本地环境所需的任何源解析或配置)。
- 运行命令将构建文件安装到适当的位置。不仅是 perl 模块,还包括模板 (.tt) 文件、CGI 脚本、JS 和图像文件等应该可以通过网络访问的内容。
- 确保为已安装的文件设置了适当的权限(必要时还包括 SELinux 上下文)。
现在我们有一个基于 Module::Build 的系统来完成大部分工作。这项工作是由我当时正在学习使用 Module::Build 的同事完成的,我们想要一些关于推广我们的解决方案的建议,因为它是相当特定于应用程序的权利现在。特别是,我们的系统要求我们手动安装依赖项(尽管它确实会检测到它们)。
您使用过哪些特别成功的系统?您是否必须编写基于 Module::Build 或 ExtUtils::MakeMaker 的安装程序,该安装程序特定于您的应用程序,还是更通用的可用?
编辑:回答以下布赖恩的问题:
- 我们可以登录机器
- 我们没有机器的 root 访问权限
- 这些机器都是(表面上)相同的启用 SELinux 的 RHEL5 版本
- 目前,安装机器的人只是我们组的程序员,我们的源不向公众开放。但是,可以想象我们的源代码最终会安装在我们组织中其他人的机器上,由他们的程序员或系统人员安装。
- 我们通过从存储库中签出进行安装,但我们希望可以选择使用分布式存档(见上文)。
【问题讨论】:
标签: perl web-applications installation