如何安装一组Perl模块的特定版本?

时间:2008-11-04 02:03:27

标签: perl version module cpan

我的任务是复制生产环境以创建许多测试/坐标环境。

我需要做的一件事就是建立Perl,多年来已经安装了所有模块(包括内部和外部模块)。我可以使用CPAN.pm autobundle,但这会导致测试环境中有更多新版本的外部模块生产。

获取和安装(很多)特定于版本的Perl模块的最简单/最好的方法是什么。

6 个答案:

答案 0 :(得分:104)

bdfoy拥有最好的大规模解决方案,但是如果你只想安装几个模块,你可以通过引用tarball的路径(相对于CPAN树的顶部)来要求CPAN shell安装特定的发行版。

cpan> install MSCHWERN/Test-Simple-0.62.tar.gz

将BackPAN的URL丢入您的URL列表,您可以安装任何旧版本。

cpan> o conf urllist push http://backpan.perl.org/

这是在CPAN.pm FAQ下的“如何安装模块的'DEVELOPER RELEASE'?”

答案 1 :(得分:37)

制作您自己的CPAN镜像,正是您想要的。 Stratopan.com,一项服务和Pinto工具,可以帮助您实现这一目标。

CPAN工具仅安装任何发行版的最新版本,因为PAUSE仅索引最新版本。但是,您可以创建自己的私有CPAN,其具有您想要的分布。只有拥有自己想要的CPAN镜像后,才能将CPAN工具指向该镜像,以便只安装这些版本。更多关于这一点。

现在,你想拥有它的几个版本。您可以根据需要创建任意数量的镜像,也可以将镜像放在源代码管理中,以便查看所需的任何镜像版本。

CPAN :: Mini :: Inject等工具可以帮助您设置自己的CPAN。查看my talks on Slideshare以获取基本示例,并查看部分演示my videos on Vimeo。查看标题中包含“CPAN”或“BackPAN”的任何内容。我想我也可能在The Perl Review中有一些关于它的东西,或者应该在下一期。 :)

最近,我一直致力于一个名为dpan(对于DarkPAN)的程序,它可以查看随机目录,在其中找到Perl发行版,并创建所需的结构和索引文件。你运行dpan,你得到一个URL指向你的CPAN客户端,然后离开你。它是我的MyCPAN-Indexer项目的一部分,该项目位于Github。它还没有为无人监督的公共使用做好准备,因为我主要与公司客户合作来定制他们的设置。如果您对此感兴趣,请随时向我提问。

另外,我最近发布了CPAN::PackageDetails,它可以帮助您构建正确的索引文件。它仍然有点年轻,但是,如果你需要特别的东西,请问。

答案 2 :(得分:28)

cpan install App::cpanminus
cpanm Your::Module@1.23

(Carton,在其他答案中引用,使用下面的cpanm来解析显式版本要求。)

答案 3 :(得分:9)

[这已经快五年了,这个问题很好,答案很好,有很多观点。由于此页面仍然必须出现在Google搜索中,因此更新不会受到影响。]

Carton值得一提。 Carton是一种相对较新的工具,其风格与App::cpanminusApp::cpanoutdatedperlbrew等相同。 al。作者(Miyagawa)将其称为“alpha”质量,但即使在当前状态下,纸盒也有助于简化跨机器的多个版本调整模块环境的维护。

Pinto也是与某些回复相关的另一个新工具(实际上其中一个回复者是贡献者)。

答案 4 :(得分:4)

Stratopan.com是另一种选择。 Stratopan在云中提供私有CPAN。您可以使用特定版本的模块(及其依赖项)填充Stratopan存储库,然后使用标准Perl工具链进行安装。只有当决定更改它时,存储库才会更改,因此您将始终获得所需模块的版本。

免责声明:我经营Stratopan。

答案 5 :(得分:2)

似乎创建列出所有模块和所需版本的cpanfile(使用== <version>语法将其锁定到特定版本)也可以在此处很好地提供。这意味着使用Cartoncpanm来安装模块。

这样做的好处是能够快速/轻松地调整文件以测试在开发或登台环境中升级特定模块 - 私有CPAN镜像不允许您这样做(不创建多个镜像)。