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

hs1ihplo  于 2023-03-03  发布在  Perl
关注(0)|答案(6)|浏览(205)

我的任务是复制生产环境以创建多个测试/测试环境。
我需要做的事情之一是构建Perl,使用这些年来安装的所有模块(包括内部和外部模块)。我可以只使用CPAN.pmautobundle,但这将导致测试环境具有比生产环境更新得多的外部模块版本。
获取和安装(大量)版本特定的Perl模块的最简单/最好的方法是什么?

vatpfxk5

vatpfxk51#

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

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

把BackPAN的URL扔到你的URL列表中,你就可以安装任何旧版本了。

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

这是在CPAN.pm常见问题解答中的“如何安装模块的”开发人员版本“?”

envsm3lx

envsm3lx2#

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

(如其他答案中所述,Carton在下面使用cpanm来解决显式版本需求。)

8zzbczxx

8zzbczxx3#

制作你自己的CPAN镜像,里面有你想要的东西。
CPAN工具只安装任何发行版的最新版本,因为PAUSE只索引最新版本。然而,你可以创建你自己的,私有的CPAN,它包含你想要的发行版。一旦你有了你自己的CPAN镜像,它只包含你想要的,你把你的CPAN工具指向那个镜像,这样它就只安装那些版本。稍后会详细介绍。
现在,你想要它的几个版本,你可以创建任意多个镜像,你也可以把镜像放在源代码管理中,这样你就可以 checkout 你喜欢的任何版本的镜像。
像CPAN::Mini::Inject这样的工具可以帮助你建立你自己的CPAN。查看my talks on Slideshare来获得基本的例子,查看my videos on Vimeo的一些演示。看看标题中有“CPAN”或“BackPAN”的任何东西。我想我可能在The Perl Review中也有一些关于它的东西,或者应该在下一期之前。:)
最近我在做一个叫做dpan的程序(用于DarkPAN),它可以查看随机目录,在其中查找Perl发行版,并创建所需的结构和索引文件。运行dpan,您将获得一个指向CPAN客户机的URL,然后就可以开始了。它是我的MyCPAN-Indexer项目的一部分,这是在Github中。它还没有完全准备好供无人监督的公众使用,因为我主要是与企业客户一起定制他们的设置。如果你对此感兴趣,尽管尽管问我问题。
另外,我最近发布了CPAN::PackageDetails,它可以帮助你建立正确的索引文件,它也还有点年轻,但是同样,如果你需要一些特殊的东西,尽管问。

ibps3vxo

ibps3vxo4#

  • [这是一个问得好、回答得好的问题,已经有了很多浏览量。既然这个页面仍然会出现在谷歌搜索中,更新一下也无妨。]*

Carton是一个相对较新的工具,风格与App::cpanminusApp::cpanoutdatedperlbrew * 等相同。* 作者(Miyagawa)称之为“alpha”质量,但即使在其当前状态下,carton也有助于简化跨机器的版本调优模块的多个环境的维护。
Pinto也是与一些答复有关的另一个最新工具(事实上,其中一个答复者是撰稿人)。

gwbalxhn

gwbalxhn5#

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

  • 免责声明:我经营Stratopan公司。
mbyulnm0

mbyulnm06#

创建一个cpanfile列表列出所有模块和所需版本(使用== <version>语法将其锁定到特定版本)似乎在这里也能很好地发挥作用,这意味着使用Cartoncpanm来安装模块。
这样做的好处是能够快速/轻松地调整文件以测试在开发或过渡环境中升级特定模块-这是私有CPAN镜像不允许您做的(不创建多个镜像)。

相关问题