如何更改perl cpan存储库位置

时间:2013-08-22 20:03:08

标签: linux perl cpan

当我使用cpan安装模块时,有一个非常不稳定且速度慢的下载源,我可能想在许多机器上安装该模块?

是否可以将perl模块存储库更改为其他地址,或将存储库复制到本地磁盘。

或者,我们可以在使用cpan时将本地模块文件保存到本地。似乎cpan会在安装后将其删除。

4 个答案:

答案 0 :(得分:3)

  

是否可以将perl模块存储库更改为其他地址

您可以通过运行CPAN shell重新配置cpan(并更改镜像):

perl -MCPAN -eshell

然后输入:

o conf init

  

或将存储库复制到本地磁盘。

CPAN Mini是此常用工具。

答案 1 :(得分:2)

cpanm(称为“cpanminus”)是Perl模块非常受欢迎的替代安装程序。使用cpanm,您可以使用--mirror选项将其指向不同的存储库URL。我相信cpanm还可以为您安装的所有模块创建本地缓存,以便以后更快地访问。

Pinto是在本地磁盘上创建类似CPAN的存储库的另一种选择。但是,它希望成为管理Perl模块的更“完整”的解决方案。所以它可能比你正在寻找的更多。

答案 2 :(得分:2)

您可以设置CPAN :: Mini存储库。您需要安装CPAN::Mini,并提供配置文件.minicpanrc。我的很短:

# contents of .minicpanrc in home directory
local: /home/ebaudrez/mirrors/minicpan
remote: http://cpan.cu.be/

显然,您需要将其调整到您的安装。您可以找到CPAN镜像列表here。然后你必须通过调用

来创建本地镜像
minicpan

注意:第一次,这需要相当长的时间。预计会消耗几千兆字节的存储空间。后续调用会更快。它发现每天多次调用它是没有意义的。另请注意,仅保留分发的最后一个版本,旧的或已删除的分发将从本地存储库中删除。

然后最后,你可以告诉cpanm优先使用你的镜像,并且只有当你所使用的特定发行版或版本在你的本地镜像中不可用时才能回到真正的CPAN:

PERL_CPANM_OPT="--mirror $HOME/mirrors/minicpan --mirror http://search.cpan.org/CPAN"

也可以配置CPAN或CPANPLUS来使用你的镜子,但是我觉得这样做不太方便,而且更喜欢cpanminus。

现在,您可以使用cpanm安装所需的任何发行版/版本,例如

cpanm Dist::Zilla; # enjoy as the dependencies fly by ;-)

或者说,PDL版本2.006(注意:撰写本文时的最新版本是2.007; - ))

cpanm PDL@2.006 # note: that is new syntax since cpanminus 1.6

如果可用,将使用本地镜像中的内容。全球CPAN将用于后备。

答案 3 :(得分:0)

我很惊讶没有人添加如何仅编辑默认CPAN配置的信息。与编辑小型文本文件相比,使用CPAN Shell做到这一点简直太疯狂了。

方法如下:

  1. 从官方CPAN mirror list中选择一些CPAN镜像。
  2. 通常在以下位置找到CPAN配置:
    $HOME/.cpan/CPAN/MyConfig.pm
    (如果不存在,则搜索文件:MyConfig.pm。)
  3. 编辑名为 urllist 的列表项,然后将URL添加到其中。
'urllist' => [
    q[http://httpupdate3.cpanel.net/CPAN/], 
    q[http://mirrors.servercentral.net/CPAN/], 
    q[ftp://cpan.cse.msu.edu/]
],