我的任务是复制生产环境以创建许多测试/就座环境。
我需要做的一件事就是建立Perl,并使用多年来安装的所有模块(包括内部和外部模块)。我可以只使用CPAN.pm autobundle,但这将导致测试环境具有生产所具有的外部模块的更新版本。
获取和安装(很多)特定于版本的Perl模块的最简单/最佳方法是什么。
Answers:
随心所欲地制作自己的CPAN镜像。Stratopan.com(一项服务)和基于此工具构建的Pinto工具可以帮助您实现这一目标。
CPA工具仅安装任何发行版的最新版本,因为PAUSE仅索引最新版本。但是,您可以创建自己的私有CPAN,该CPAN具有所需的确切分发。一旦拥有了仅包含所需内容的CPAN镜像,就可以将CPAN工具仅指向该镜像,以便仅安装这些版本。一分钟内可以了解更多。
现在,您希望拥有多个版本。您可以创建任意数量的镜像,也可以将镜像置于源代码管理中,以便可以签出所需版本的镜像。
诸如CPAN :: Mini :: Inject之类的工具可以帮助您设置自己的CPAN。请查看我在Slideshare上的演讲以获取基本示例,并在Vimeo上获取一些视频以进行一些演示。查看标题中带有“ CPAN”或“ BackPAN”的任何内容。我想我在Perl评论中可能也有一些相关内容,或者应该在下一期中发表。:)
最近,我正在开发一个名为dpan(适用于DarkPAN)的程序,该程序可以查看随机目录,在其中查找Perl发行版,并创建所需的结构和索引文件。运行dpan,您将获得一个指向CPAN客户端的URL,然后退出。这是我的MyCPAN-Indexer项目的一部分,该项目位于Github中。还没有准备好在无人监督的公共场合使用,因为我主要与公司客户一起定制他们的设置。如果您对此感兴趣,请随时向我提问。
另外,我最近发布了CPAN :: PackageDetails,可以帮助您构建正确的索引文件。它也还很年轻,但是如果您需要一些特别的东西,那就问一下。
bdfoy是最好的大规模解决方案,但是如果您只想安装一些模块,则可以通过引用tarball的路径(相对于CPAN树的顶部)来要求CPAN shell安装特定的发行版。
cpan> install MSCHWERN/Test-Simple-0.62.tar.gz
将BackBack的URL放入您的URL列表中,您可以安装任何旧版本。
cpan> o conf urllist push http://backpan.perl.org/
这在CPAN.pm常见问题解答中的“如何安装模块的'DEVELOPER RELEASE'?”中。
install MSCHWERN/Test-Simple-0.62.tar.gz
@Schwern我认为您需要放弃M / MS前缀才能找到压缩包
cpan install App::cpanminus
cpanm Your::Module@1.23
(如其他答案中所述,纸箱在cpanm
下面用于解决显式版本要求。)
aptitude install cpanminus
Can't configure the distribution
您需要运行sudo apt-get install build-essential
。感谢您的回答!
Stratopan.com是另一种选择。Stratopan在云中提供私有CPAN。您可以使用特定版本的模块(及其依赖性)填充Stratopan存储库,然后使用标准Perl工具链安装它们。仅当您决定更改存储库时,存储库才会更改,因此您将始终获得所需模块的版本。
免责声明:我经营Stratopan。