4

我正准备设置一个完整的 CPAN 镜像以供我公司内部使用。但是,我们有几个基于内部Module::Build的发行版,我想通过这个镜像向人们提供这些发行版。这些发行版只能从我们的镜像中获得;它们只是内部库。本质上,一旦人们设置了他们的 CPAN 配置文件来加载“cpan.mycompany.com”镜像,我希望他们能够做一个

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

在他们的命令行上安装任意数量的内部自定义模块分发。理想情况下,随着这些模块分发版本的增加,所有这些版本都将被我们的内部 CPAN 镜像索引并可用,就像以前版本的 CPAN 模块可用一样。

在最初的问题之后,我能够提出其他一些可能性。

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

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

我刚刚遇到的另一个是CPAN::Site。这似乎也能够设置自定义 CPAN 分发。对这个工具有什么想法吗?

4

4 回答 4

5

如果您使用CPAN::Mini创建镜像,则使用CPAN::Mini::Inject向其中添加您自己的模块。

于 2011-02-24T19:00:21.390 回答
1

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

于 2011-05-31T22:24:06.103 回答
0

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

内部 CPAN - 什么模块

(我不知道是否可以在这里链接到我自己的答案。如果不是,请告诉我。)

于 2013-11-15T11:42:55.570 回答
0

我想支持CPAN::Site的建议- 如果您询问或提交有关CPAN RT的错误报告,作者会很乐意应用修复程序。

我最近一直在使用它来制作一个“micro-cpan”,它只包含特定应用程序需要的东西,而没有其他东西,以及cpanminus使在任何环境中的安装变得非常简单。但是,不要问我的解决方案——miyagawa ++今年在YAPC::NA上展示了“ Carton ”,它比我的老一套东西做得更好

CPAN::Mini::Inject可能有点过于“低级”,因为它要求您在注入 minipan 之前预先指定有关每个 dist 的大量信息 - 我觉得几乎所有这些都应该通过分析 dist 自动检测到,例如使用CPAN::ParseDistribution

MyCPAN::App::DPAN实际上很酷,但有一点学习曲线,可能不是适合这项工作的工具。我还发现它倾向于扼杀一些格式错误的 dists 并检测涉及通过日志进行拖网(据我所知 - 也许有更好的方法)但是,我强烈建议检查出来。

于 2011-07-18T15:50:09.340 回答