2010-09-16 86 views

回答

121

從默認CPAN外殼中使用upgrade的替代方法是使用cpanminuscpan-outdated

這些都很簡單&靈活使用,我幾乎沒有回到CPAN外殼。要一氣呵成升級所有的模塊是:

cpan-outdated -p | cpanm 


我建議你安裝cpanminus像文檔描述:

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

,然後使用cpanm所有其他CPAN模塊一起安裝cpan-outdated

cpanm App::cpanoutdated 

順便說一句:如果您使用perlbrew那麼您將需要代表對於你安裝在它下面的每一個Perl,都要吃這個。

你可以找到在Github上回購這裏更多關於cpanminuscpan-outdated

+3

爲什麼使用這種額外的工具,而有一個內置的解決方案(見第二個答案)? – eav 2012-11-08 08:37:37

+3

「爲什麼使用這些額外的工具」雖然它不在OP的問題範圍之內,但cpanimus可以解決CPAN要求您按Enter鍵和/或鍵入[y] es的問題。 Afaict用vanilla CPAN不能可靠地抑制這種行爲。只要涉及任何類型的cron或CI服務器,並且/或者如果您希望能夠開始升級並且信心不會在您外出喝咖啡時掛起(這在我的經驗中是經常與香草CPAN的情況下)另請參閱此答案http://stackoverflow.com/questions/898782/how-do-i-tell-cpan-to-install-all-dependencies – 2013-12-27 16:33:02

+0

[root @ portal-test bugzilla-4.4 .4]#cpan-outdated -p | cpanm 無法通過位於/ usr/bin/cpan-outdated第170行的程序包「LWP :: UserAgent」找到對象方法「new」。 – shorif2000 2014-06-05 11:52:12

41

一個簡單的方法來升級所有的Perl包(CPAN模塊)是以下方式:

cpan upgrade /(.*)/ 

cpan將識別這樣的正則表達式,並將更新/升級所有已安裝的軟件包。

+5

好吧,這不是'cpanminus'的_cool_,但至少你不必下載任何東西就可以使它工作。 – 2012-04-26 02:21:16

+2

正則表達式甚至沒有必要。 + – TimZaman 2014-05-19 09:01:55

+0

這不起作用 – shorif2000 2014-06-05 11:48:19

23

草莓Perl中,嘗試:

cpan -u 
+0

這個伎倆!乾杯。 – 2013-12-30 23:21:22

+3

它也適用於通常的Perl,似乎(至少在Linux上)。 – ismail 2015-04-06 13:38:00

+2

對於普通的Perl也是如此。從手冊頁:'-u升級所有已安裝的模塊。盲目做這件事可能會破壞事情,所以保持備份。「 – Chloe 2016-04-04 03:04:59

15

嘗試perl -MCPAN -e "upgrade /(.\*)/"。這對我來說可以。

相關問題