Perl 如何将所有CPAN模块更新为其最新版本?

Perl 如何将所有CPAN模块更新为其最新版本?,perl,cpan,Perl,Cpan,如何将所有CPAN模块更新为其最新版本? 顺便说一句,有一个help命令。从默认CPAN外壳使用upgrade的另一种方法是使用和 这些都是如此简单和灵活的使用,我几乎从来没有回到CPANShell。要一次性升级所有模块,命令如下: cpan-outdated -p | cpanm 我建议您安装cpanminus,如文档所述: curl -L https://cpanmin.us | perl - App::cpanminus 然后使用cpanm安装cpan过时的以及所有其他cpan模块:

如何将所有CPAN模块更新为其最新版本?


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

从默认CPAN外壳使用
upgrade
的另一种方法是使用和

这些都是如此简单和灵活的使用,我几乎从来没有回到CPANShell。要一次性升级所有模块,命令如下:

cpan-outdated -p | cpanm
我建议您安装
cpanminus
,如文档所述:

curl -L https://cpanmin.us | perl - App::cpanminus
然后使用
cpanm
安装
cpan过时的
以及所有其他cpan模块:

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

您可以在Github repos找到有关
cpanminus
cpan过时的
的更多信息:


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

cpan upgrade /(.*)/

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

对于草莓Perl,请尝试:

cpan -u

请尝试
perl-MCPAN-e“升级/(.\*)/”
。它对我来说很好。

好吧,这不像
cpanminus
那么酷,但至少你不需要下载任何东西就能让它工作;尝试通过
cpan
运行cpanshell,然后在cpanshell中运行
升级/(.*)/
。既然有内置的解决方案,为什么还要使用这些额外的工具(请参见第二个答案)?“为什么要使用这些额外的工具”虽然不在OP的问题范围之内,但cpanimus确实解决了cpan要求您按Enter和/或type的问题[y] es.Afaict您无法用vanilla CPAN可靠地抑制这种行为。一旦涉及到任何类型的cron或CI服务器,和/或如果您希望能够自信地启动升级,它就不会在您外出喝咖啡时挂起(根据我的经验,vanilla CPAN通常就是这样)请参见此答案[root@portal-测试bugzilla-4.4.4]#cpan过时-p | cpanm无法通过/usr/bin/cpan过时行170上的包“LWP::UserAgent”找到对象方法“new”。这些都是旧的(perl日期从2006年开始,LWP从2005年开始)。理想情况下,您需要这两个版本的更新版本。如果出于某种原因您无法做到这一点,那么我将逐个版本升级LWP版本,直到您的cpanm | cpan过时工作。注意:重要信息-如果您使用的是CentOS安装的Perl,则不要将cpan或CPANMINUS与它们一起使用!永远不要与操作系统软件包混合使用!!而是使用Perlbrew来编写您自己的Perl(然后在此范围内使用cpanminus等)。我喜欢这种解决方案,因为您可以很容易地运行
cpan-outleted-p
,在实际运行升级之前先看看它将要做什么。不清楚如何使用
cpan-upgrade
对常规Perl进行试运行。从手册页上看:
-u升级所有已安装的模块。盲目地这样做确实会破坏一切,因此保留备份。
选项
cpan-u
更新需要多长时间?