作者:jerry613 | 2023-06-29 17:14
如何将所有CPAN模块更新到最新版本?
1> draegtun..:
upgrade
从默认CPAN shell 使用的另一种方法是使用cpanminus
和cpan-outdated
.
这些非常简单易用,我几乎不会回到CPAN shell.要一次性升级所有模块,命令为:
cpan-outdated -p | cpanm
我建议您cpanminus
按照文档描述安装:
curl -L https://cpanmin.us | perl - App::cpanminus
然后使用以下命令安装cpan-outdated
所有其他CPAN模块cpanm
:
cpanm App::cpanoutdated
顺便说一句:如果您正在使用,perlbrew
那么您需要为其下安装的每个Perl重复此操作.
你可以找到更多关于cpanminus
和cpan-outdated
在这里的Github上回购:
https://github.com/miyagawa/cpanminus
https://github.com/tokuhirom/cpan-outdated
为什么在有内置解决方案时使用这些额外工具(参见第二个答案)?
"为什么使用这些额外的工具"虽然它超出了OP问题的范围,但是cpanimus解决了CPAN要求你按Enter和/或输入[y] es的问题.虽然你不能_reliable_用香草CPAN抑制这种行为.一旦涉及到任何类型的cron或CI服务器,这一点就变得很重要,并且/或者如果您希望能够自信地开始升级,那么当您外出喝咖啡时它不会挂起(根据我的经验,这是经常与香草CPAN的情况)参见这个答案http://stackoverflow.com/questions/898782/how-do-i-tell-cpan-to-install-all-dependencies
这些都是旧的(perl的日期是2006年,LWP是2005年).理想情况下,您需要更新版本的两者.如果由于某种原因你不能这样做,那么我会按版本升级LWP版本,直到你有cpanm | cpan-outdated工作.NB.重要信息 - 如果您使用的是CentOS安装的Perl,请不要使用CPAN或CPANMINUS!永远不要与OS包混用!而是使用Perlbrew来酿造你自己的perl(然后在其中使用cpanminus等).
2> 小智..:
升级所有Perl软件包(CPAN模块)的简便方法有以下几种:
cpan upgrade /(.*)/
cpan将识别这样的正则表达式,并将更新/升级所有已安装的软件包.
对于那些遇到此命令问题的人; 尝试通过`cpan`运行cpan shell,然后在cpan shell中运行`upgrade /(.*)/`.
好吧,这不像`cpanminus`那样_cool_,但至少你不需要下载任何东西来让它工作.
3> Denis Howe..:
对于Strawberry Perl,请尝试:
cpan -u
对于普通的Perl也是如此.从手册页:`-u升级所有已安装的模块.盲目地这样做可以真正打破事情,所以保持备份
4> musiKk..:
upgrade
BTW有一个help
命令.
5> Matthias Mun..:
试试perl -MCPAN -e "upgrade /(.\*)/"
.这对我来说可以.