【问题标题】:How do I update all my CPAN modules to their latest versions?如何将我的所有 CPAN 模块更新到最新版本?
【发布时间】:2011-04-13 06:29:22
【问题描述】:

如何将我的所有 CPAN 模块更新到最新版本?

【问题讨论】:

    标签: perl cpan


    【解决方案1】:

    在默认 CPAN shell 中使用upgrade 的另一种方法是使用cpanminuscpan-outdated

    它们使用起来非常简单灵活,以至于我几乎不会再回到 CPAN shell。要一次性升级所有模块,命令是:

    cpan-outdated -p | cpanm
    

    我建议您像文档描述的那样安装cpanminus

    curl -L https://cpanmin.us | perl - App::cpanminus
    

    然后使用cpanm 安装cpan-outdated 以及所有其他CPAN 模块:

    cpanm App::cpanoutdated
    

    顺便说一句:如果您使用的是perlbrew,那么您将需要为您在其下安装的每个 Perl 重复此操作。

    您可以在此处的 Github 存储库中找到有关 cpanminuscpan-outdated 的更多信息:

    【讨论】:

    • 为什么在有内置解决方案的情况下使用这些额外的工具(见第二个答案)?
    • “为什么要使用这些额外的工具”虽然它超出了 OP 问题的范围,但 cpanimus 确实解决了 CPAN 要求您按 Enter 和/或键入 [y]es 的问题。 Afaict 你不能可靠地 用 vanilla CPAN 抑制这种行为。一旦涉及任何类型的 cron 或 CI 服务器,和/或如果您希望能够开始升级并确信它不会在您外出喝咖啡时挂起(根据我的经验是香草CPAN通常是这种情况)另见此答案stackoverflow.com/questions/898782/…
    • [root@portal-test bugzilla-4.4.4]# cpan-outdated -p | cpanm 无法通过 /usr/bin/cpan-outdated 第 170 行的包“LWP::UserAgent”定位对象方法“new”。
    • 那些都是旧的(perl 从 2006 年开始,LWP 从 2005 年开始)。理想情况下,您需要两者的更新版本。如果由于某种原因你不能这样做,那么我会逐个升级 LWP 版本,直到你得到 cpanm|cpan-outdated 工作。注意。重要 - 如果您使用的是 CentOS 安装的 Perl,那么请不要将 CPAN 或 CPANMINUS 与这些一起使用!切勿与 OS 软件包混用!!而是使用 Perlbrew 来酿造你自己的 perl(然后在其中使用 cpanminus 等)。
    • 我喜欢这个解决方案,因为您可以轻松地先运行cpan-outdated -p,在实际运行升级之前先看看它会做什么。目前尚不清楚如何使用cpan upgrade进行试运行@
    【解决方案2】:

    升级所有 Perl 包(CPAN 模块)的简单方法如下:

    cpan upgrade /(.*)/
    

    cpan 将识别这样的正则表达式,并将更新/升级所有已安装的软件包。

    【讨论】:

    • 好吧,这不像cpanminus那样,但至少你不需要下载任何东西来让它工作。
    • 对于那些对此命令有问题的人;尝试通过cpan 运行cpan shell,然后在cpan shell 中运行upgrade /(.*)/
    【解决方案3】:

    对于 Strawberry Perl,请尝试:

    cpan -u
    

    【讨论】:

    • 也适用于常规 Perl。来自手册页:-u Upgrade all installed modules. Blindly doing this can really break things, so keep a backup.
    • 选项cpan -u更新需要多长时间?
    【解决方案4】:

    试试perl -MCPAN -e "upgrade /(.\*)/"。对我来说效果很好。

    【讨论】:

      【解决方案5】:

      upgrade

      顺便说一句,有一个help 命令。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-11-07
        • 1970-01-01
        • 2021-02-12
        • 1970-01-01
        • 2013-11-09
        • 2019-03-09
        • 1970-01-01
        相关资源
        最近更新 更多