使用Stratopan轻松进行应用程序依赖管理

优秀的Perl作者编写模块化代码,并尽可能利用CPAN。这种方法的缺点是,Perl应用程序会积累数百个CPAN模块依赖。幸运的是,对于Perl来说,Stratopan使管理应用程序依赖变得简单,并快速将其部署到新的环境中。

有多少依赖?!

Perl应用程序依赖迅速增长。这是因为每次你导入一个模块时,你就承担了该模块的依赖,以及它的导入及其依赖等等。上面的封面图显示了PerlTricks.com应用程序的依赖关系图;它有283个模块。这需要管理大量的代码。

使用Stratopan管理模块依赖

Stratopan,基于云的模块托管服务,允许你将Perl模块上传到云中的个人仓库。在我们的PerlTricks堆栈上,我们上传了生产环境中使用的所有模块的确切版本。许多模块尚未更新,但这没关系,因为这些是确实可以工作的模块版本。

快速部署

将此堆栈部署到新环境非常简单。我们可以使用cpanm读取我们的Makefile.PL,并递归地安装我们的应用程序依赖项,使用Stratopan作为源。在终端中,我们导航到根应用程序目录并输入

$ cpanm -n --installdeps --mirror-only --mirror https://stratopan.com/sillymoose/WebStuff/perltricks .

让我们回顾一下这段代码:首先,我们使用cpanm的“-n”开关关闭模块测试以快速安装模块。“–installdeps”开关使cpanm寻找应用程序依赖项。“mirror”开关指示cpan使用我们的Stratopan堆栈作为安装源。后面的点号表示在当前目录中搜索依赖项。这是完美的结合:Stratopan递归地将我们的模块依赖项拉入我们的堆栈,cpanm递归地安装它找到的所有依赖项。尽管我们的Makefile列出了约40个模块,但cpanm最终安装了所有283个。

当我们想升级我们的模块时,我们可以在开发环境中通过复制我们的堆栈并升级模块进行测试,然后在升级生产环境之前进行升级,以受控的方式完成。

结论

没有Stratopan和cpanm,将PerlTricks应用程序部署到新服务器将会是更多的工作。我们要么必须列出和源特定的模块版本并手动部署它们,要么安装所有283个依赖项的最新版本并希望它们仍然能够很好地协同工作。我们的两个依赖项甚至已经不在CPAN上了!

想开始使用Stratopan吗?查看我们的快速入门用户指南

喜欢这篇文章吗?帮助我们,并通过转发它!


这篇文章最初发布在PerlTricks.com

标签

David Farrell

David是一位专业的程序员,他经常推文博客关于代码和编程的艺术。

浏览他们的文章

反馈

这篇文章有什么问题吗?请在GitHub上打开一个问题或拉取请求来帮助我们。