2011-02-24 13 views
3

我准备在我的公司内部设置一个完整的CPAN镜像供内部使用。然而,我们有几个内部的基于Module::Build的发行版,我想通过这个镜像向人们提供。这些分配只能从我们的镜子中获得;他们只是内部库。从本质上讲,一旦人们已经建立了自己的CPAN配置文件加载“cpan.mycompany.com”镜子,我希望他们能够做一个如何将自定义模块分布添加到我的本地CPAN镜像中?

cpan install MyCompany::Bundle 
cpan install MyCompany::Other::Module 

在他们的命令行安装任意数量的内部,理想情况下,随着这些模块发行版本的增加,所有这些版本都将被我们的内部CPAN镜像索引并提供,就像先前版本的CPAN模块可用一样。最初的问题,我能够想出一些其他的可能性。

There's CPAN::Inject,但看起来我不能用它来获得cpan install My::Module语法。

然后有MyCPAN::App::DPAN,这也看起来很有趣,几乎看起来像我所需要的。有没有人有这个工具的经验?

我刚碰到的另一个是CPAN::Site。这似乎也能够建立一个自定义的CPAN分配。对这个工具有什么想法?

回答

1

要使用完整的CPAN镜像,CPAN::Site涵盖了这一点。它可以让你制作镜像,然后将自己的库注入其中,并配有工具来帮助您管理设置并保持最新状态。

5

如果您使用CPAN::Mini来创建镜像,那么您使用CPAN::Mini::Inject来添加自己的模块。

+0

我打算有一个完整的CPAN镜像。这是针对企业的,所以空间不是问题,以前的版本很重要。 – 2011-02-24 20:32:06

0

我想第二个CPAN::Site的建议 - 作者是敏感的,并会很乐意应用修复程序,如果您要求或提交关于CPAN RT的错误报告。

我最近一直在使用它来创建一个只包含特定应用程序所需内容的“微型计算机”,除此之外,还有cpanminus可以使任何环境下的安装变得简单。然而,不要问我的解决方案 - miyagawa ++今年在YAPC::NA,并炫耀“Carton”哪些和更多,方式比我的哈克东西好。

CPAN::Mini::Inject可能有点太“低级”,因为它需要您在注入minicpan之前指定大量关于每个远程前端的信息 - 我觉得几乎所有这些都应该是auto - 通过分析dist来检测,例如通过使用CPAN::ParseDistribution

MyCPAN::App::DPAN实际上很酷,但有一点学习曲线,可能不是正确的工具。我也发现它倾向于扼杀一些形成不良的纸张,并发现涉及在原木上钻探(据我所知 - 也许还有更好的方法)。但是,我强烈建议检查出来。

0

如果您对MyCPAN :: App :: DPAN仍然感兴趣,我刚刚发布了如何使用它来创建类似于CPAN的迷你目录结构,并解答了此问题的答案(其中之一):

Internal CPAN - what module

(我不知道这是否是OK链接到我自己的答案在这里,让我知道,如果它不是。)

相关问题