我发布了这个问题,寻找类似于Buildout的Perl工具。我认为Shipwright是我要找的工具,但我不太确定。我试着使用它并创建了一个项目,导入了所有源代码和依赖项,然后将所有内容导出到船只中。但随后文档就停止了更新。我该如何处理船坞船只?我应该在船只中进行实际开发工作,还是在Shipyard中进行开发?我假设船只仅用于部署,但我该如何将船只部署到Web服务器上(比如我使用的是Linux、Apache并直接运行CGI)?
Shipwright是我尝试实现目标的正确选择吗?还是有其他更适合的东西?理想情况下,我可以像使用Buildout一样使用Shipwright。我使用Buildout为我的开发创建一个良好的隔离环境,并且在部署到生产服务器时使用Buildout来管理我的应用程序的所有依赖关系。
编辑:以下是我可以使用Buildout完成的亮点,我希望能够在Perl中完成相同的操作。
使用Buildout,我在我的代码库中有一个列出依赖项的文件(对于Perl来说,这可能是CPAN模块或其他源存储库)。我可以运行引导脚本,该脚本将获取所有这些依赖项并将它们放入项目内的一个目录中,并不会在系统级别安装它们。Buildout还创建实用程序脚本,可以执行任何你想要的操作(运行测试、其他命令行工具等等),这些脚本明确地将依赖项添加到路径中,以便在我的脚本运行时,所有依赖项都可以被导入。
这个工具非常好的地方在于它允许我管理依赖项,而无需在系统级别安装任何东西。这使得从一个版本切换到另一个版本非常容易。此外,它允许我在同一系统上运行多个 Buildout 项目,使用相同模块的不同版本。最后,一个巨大的好处是,通过 Buildout 的目录结构,我只需要提交依赖项到源代码控制,并部署到新机器时,我只需要进行检出,所有依赖项都已满足,而无需触及任何已安装的系统级别内容。
Shipwright是我尝试实现目标的正确选择吗?还是有其他更适合的东西?理想情况下,我可以像使用Buildout一样使用Shipwright。我使用Buildout为我的开发创建一个良好的隔离环境,并且在部署到生产服务器时使用Buildout来管理我的应用程序的所有依赖关系。
编辑:以下是我可以使用Buildout完成的亮点,我希望能够在Perl中完成相同的操作。
使用Buildout,我在我的代码库中有一个列出依赖项的文件(对于Perl来说,这可能是CPAN模块或其他源存储库)。我可以运行引导脚本,该脚本将获取所有这些依赖项并将它们放入项目内的一个目录中,并不会在系统级别安装它们。Buildout还创建实用程序脚本,可以执行任何你想要的操作(运行测试、其他命令行工具等等),这些脚本明确地将依赖项添加到路径中,以便在我的脚本运行时,所有依赖项都可以被导入。
这个工具非常好的地方在于它允许我管理依赖项,而无需在系统级别安装任何东西。这使得从一个版本切换到另一个版本非常容易。此外,它允许我在同一系统上运行多个 Buildout 项目,使用相同模块的不同版本。最后,一个巨大的好处是,通过 Buildout 的目录结构,我只需要提交依赖项到源代码控制,并部署到新机器时,我只需要进行检出,所有依赖项都已满足,而无需触及任何已安装的系统级别内容。