如何设置本地CPAN镜像?

8

我需要设置和维护本地的CPAN镜像,需要什么脚本和最佳实践应该注意?


这是一篇完整、易懂、逐步指导的文章,包含所有命令...只需复制粘贴即可运行 :) 使用自己的CPAN安装Perl - Gianluca Casati
5个回答

25

CPAN::Mini 是一个不错的选择。在本地镜像了 CPAN 之后,您需要通过 "file:" URL 将镜像地址设置为在 CPAN.pm 或 CPANPLUS 中使用的本地目录。

file:///path/to/my/cpan/mirror

如果您想让您的镜像拥有CPAN分发的开发版本副本,您可以使用CPAN::Mini::Devel

更新:

“如何镜像CPAN?” FAQ提供的另一个答案是用于镜像所有 CPAN,通常是为了提供另一个公共镜像。这包括过时的旧版本分发。CPAN::Mini只镜像最新版本。这个规模更小,对于大多数用户来说,通常是人们用于访问本地或无连接(笔记本电脑)的CPAN。


从1.1版本开始,http://search.cpan.org/perldoc?App::cpanminus App::cpanminus (cpanm)</a>支持--mirror-only选项,可以从本地镜像拉取元数据而无需在线查询。 >1.1000 Thu Nov 11 23:56:46 PST 2010
  • 添加了--mirror-only选项以支持minicpan和DarkPAN (jonallen, xdg, tokuhirom)
- spazm

8
除了其他答案,还可以看看Leon的CPAN::Mini::Webserver,它为您提供了一个CPAN搜索界面,可访问本地的CPAN副本。
如果您想做更高级的事情,请查看我的"MyCPAN"演讲。例如,您可以使用CPAN::Mini::Inject将自己的私有模块注入到私有CPAN中。

5

CPAN::Mini很不错。默认情况下,它只保留发行版的最新版本,而不是像CPAN一样保留每个版本。

您还可以安装CPAN::Mini::Webserver,它为您提供了一个本地cpan镜像的Web界面 - 如果您离线并仍然想使用perl,则非常方便。


3

1
或者,如果该链接因为与特定版本相关联而消失,请尝试 {{link1:CPAN::Mini</A>。请参阅<a href="http://stackoverflow.com/questions/43758">如何在答案中链接到CPAN模块</a>},以获取关于永久链接的讨论。 :) - brian d foy
或者停止使用 search.cpan.org,改用 metacpan (更美观,而且开源!): https://metacpan.org/pod/CPAN::Mini - Randal Schwartz

2
运行CPAN镜像的最可能场景是,您的50台机器可以从本地更新,而不是每个机器都访问网络。我认为传统方式使用CPAN并不是保持服务器网络更新的好方法。我运行一组RedHat机器。我将所有用于生产的CPAN模块打包成RPM(主要使用RPM::Specfile中的cpanflute2工具),然后以这种方式部署它们,从而确保适当的依赖项跟踪,而您无法从CPAN本身以任何明智的方式获取这些跟踪信息。

我希望你不要使用RedHat的供应商perl?它充满了有问题的“修复程序”,这让perl开发人员摇头不已。 如果我们从RedHat用户那里收到错误报告,第一步总是验证它是否是perl的问题,而不是RedHat的问题。大多数情况下确实是RedHat的问题。 - moritz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接