【问题标题】:How do I tell CPAN.pm where to get modules?我如何告诉 CPAN.pm 从哪里获取模块?
【发布时间】:2010-09-25 22:34:55
【问题描述】:

这是 CPAN 的完整安装命令和输出:

sudo perl -MCPAN -e "install Bundle::CPAN"
CPAN: Storable loaded ok (v2.13)
Going to read /home/delgreco/.cpan/Metadata
  Database was generated on Mon, 08 Dec 2008 03:27:10 GMT
CPAN: LWP::UserAgent loaded ok (v2.033)
CPAN: Time::HiRes loaded ok (v1.55)
CPAN: YAML loaded ok (v0.39)
Warning: YAML version '0.39' is too low, please upgrade!
I'll continue but problems are *very* likely to happen.
Your urllist is empty! The urllist can be edited. E.g. with 'o conf urllist
push ftp://myurl/'

Could not fetch authors/id/A/AN/ANDK/Bundle-CPAN-1.857.tar.gz
Giving up on '/home/delgreco/.cpan/sources/authors/id/A/AN/ANDK/Bundle-CPAN-1.857.tar.gz'
Note: Current database in memory was generated on Mon, 08 Dec 2008 03:27:10 GMT

        ...propagated at /usr/lib/perl5/5.8.5/CPAN.pm line 3417.

这对我有用,谢谢...

cpan> o conf urllist http://cpan.yahoo.com/

当然,Bundle::CPAN 安装在其他依赖项上继续失败,但至少我现在有一个 YAML 0.68。

【问题讨论】:

    标签: perl yaml cpan


    【解决方案1】:

    当您第一次使用 CPAN 模块时,系统会询问您“您准备好进行交互式配置了吗?”这样的问题。你可能会回答“不”。选择了默认配置选项,因此没有配置 CPAN 存储库镜像供您从中提取模块 tarball。

    正如其他人所指出的,您可以使用 CPAN shell 中的 o conf urllist 命令配置该选项。

    我个人的偏好是创建一个“miniCPAN”,一个基本上包含每个模块的最新版本的本地存储库(比提取所有 CPAN 小得多,后者将包含每个模块的许多过时版本)。为此,请配置一个 CPAN 镜像存储库以临时使用,从中安装 CPAN::Mini 模块,然后使用将安装的 minicpan 命令行程序来创建您的存储库。现在使用 o conf urllist pop 删除您配置的 CPAN 镜像,并使用 o conf urllist push file:///path/to/your/minicpan 告诉 CPAN 模块从现在开始从您的本地镜像安装。您可以将 minicpan 命令放在 cron 中定期更新,或者在需要刷新时从命令行运行它。

    minicpan 命令的格式是

    minicpan -l /path/to/your/local/minicpan-repository -r http://example.com/url/of/CPAN/mirror
    

    【讨论】:

      【解决方案2】:

      这看起来很重要:

      你的 urllist 是空的!可以编辑 urllist。例如。使用 'o conf urllist push ftp://myurl/'

      也许运行sudo cpan,然后运行o conf inito conf urllist push http://cpan.yahoo.com/(例如)以理顺你的urllist?然后尝试进行安装。

      【讨论】:

      • 一百万谢谢!我已经与 CPAN 争论了几个小时,试图解决这个问题。在 o conf urllist 命令中添加“push”对我来说至关重要。没有推动,马库斯列出的为他工作的命令对我不起作用。
      【解决方案3】:

      猜测:

      sudo perl -MCPAN -e "install YAML"
      

      【讨论】:

      • 试过了...我得到:“无法通过包“YAML”在 -e 第 1 行找到对象方法“安装”。”
      • 你可以输入cpan YAML
      猜你喜欢
      • 2016-10-30
      • 1970-01-01
      • 1970-01-01
      • 2010-10-21
      • 1970-01-01
      • 1970-01-01
      • 2017-01-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多