我的任务是复制生产环境以创建多个测试/测试环境。我需要做的事情之一是构建Perl,使用这些年来安装的所有模块(包括内部和外部模块)。我可以只使用CPAN.pmautobundle,但这将导致测试环境具有比生产环境更新得多的外部模块版本。获取和安装(大量)版本特定的Perl模块的最简单/最好的方法是什么?
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常见问题解答中的“如何安装模块的”开发人员版本“?”
envsm3lx2#
cpan install App::cpanminus cpanm Your::Module@1.23
(如其他答案中所述,Carton在下面使用cpanm来解决显式版本需求。)
cpanm
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,它可以帮助你建立正确的索引文件,它也还有点年轻,但是同样,如果你需要一些特殊的东西,尽管问。
ibps3vxo4#
Carton是一个相对较新的工具,风格与App::cpanminus、App::cpanoutdated、perlbrew * 等相同。* 作者(Miyagawa)称之为“alpha”质量,但即使在其当前状态下,carton也有助于简化跨机器的版本调优模块的多个环境的维护。Pinto也是与一些答复有关的另一个最新工具(事实上,其中一个答复者是撰稿人)。
Carton
App::cpanminus
App::cpanoutdated
perlbrew
Pinto
gwbalxhn5#
Stratopan.com是另一种选择。Stratopan在云中提供私有CPAN。您可以用特定版本的模块(及其依赖项)填充Stratopan存储库,然后使用标准Perl工具链安装它们。存储库仅在 * 您 * 决定更改时更改,因此您将始终获得所需模块的版本。
mbyulnm06#
创建一个cpanfile列表列出所有模块和所需版本(使用== <version>语法将其锁定到特定版本)似乎在这里也能很好地发挥作用,这意味着使用Carton或cpanm来安装模块。这样做的好处是能够快速/轻松地调整文件以测试在开发或过渡环境中升级特定模块-这是私有CPAN镜像不允许您做的(不创建多个镜像)。
cpanfile
== <version>
6条答案
按热度按时间vatpfxk51#
bdfoy有最好的大规模解决方案,但是如果您只想安装几个模块,您可以要求CPAN shell通过引用一个tarball的路径(相对于CPAN树的顶部)来安装一个特定的发行版。
把BackPAN的URL扔到你的URL列表中,你就可以安装任何旧版本了。
这是在CPAN.pm常见问题解答中的“如何安装模块的”开发人员版本“?”
envsm3lx2#
(如其他答案中所述,Carton在下面使用
cpanm
来解决显式版本需求。)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,它可以帮助你建立正确的索引文件,它也还有点年轻,但是同样,如果你需要一些特殊的东西,尽管问。
ibps3vxo4#
Carton
是一个相对较新的工具,风格与App::cpanminus
、App::cpanoutdated
、perlbrew
* 等相同。* 作者(Miyagawa)称之为“alpha”质量,但即使在其当前状态下,carton也有助于简化跨机器的版本调优模块的多个环境的维护。Pinto
也是与一些答复有关的另一个最新工具(事实上,其中一个答复者是撰稿人)。gwbalxhn5#
Stratopan.com是另一种选择。Stratopan在云中提供私有CPAN。您可以用特定版本的模块(及其依赖项)填充Stratopan存储库,然后使用标准Perl工具链安装它们。存储库仅在 * 您 * 决定更改时更改,因此您将始终获得所需模块的版本。
mbyulnm06#
创建一个
cpanfile
列表列出所有模块和所需版本(使用== <version>
语法将其锁定到特定版本)似乎在这里也能很好地发挥作用,这意味着使用Carton
或cpanm
来安装模块。这样做的好处是能够快速/轻松地调整文件以测试在开发或过渡环境中升级特定模块-这是私有CPAN镜像不允许您做的(不创建多个镜像)。