【问题标题】:How to change the perl cpan repository location如何更改 perl cpan 存储库位置
【发布时间】:2013-08-25 17:41:50
【问题描述】:

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

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

或者,我们可以在使用cpan时将本地模块文件保存到本地吗?看来cpan会在安装后删除它。

【问题讨论】:

    标签: linux perl cpan


    【解决方案1】:

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

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

    perl -MCPAN -eshell
    

    然后输入:

    o conf init
    

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

    CPAN Mini 是常用的工具。

    【讨论】:

      【解决方案2】:

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

      Pinto 是在本地磁盘上创建类似 CPAN 的存储库的另一个选项。然而,它渴望成为管理 Perl 模块的更“完整”的解决方案。所以它可能比你想要的更多。

      【讨论】:

        【解决方案3】:

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

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

        显然,您需要根据您的安装对其进行调整。您可以找到 CPAN 镜像列表here。然后你必须通过调用来创建本地镜像

        minicpan
        

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

        最后,您可以告诉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 将用于后备。

        【讨论】:

          【解决方案4】:

          我很惊讶没有人添加如何编辑默认 CPAN 配置。与编辑小文本文件相比,使用 CPAN shell 执行此操作简直太疯狂了。

          具体做法如下:

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

          【讨论】:

            猜你喜欢
            • 2020-01-03
            • 1970-01-01
            • 2012-06-08
            • 2012-07-21
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-05-22
            • 2012-07-08
            相关资源
            最近更新 更多