すべてのCPANモジュールを最新バージョンに更新するにはどうすればよいですか?


136

すべてのCPANモジュールを最新バージョンに更新するにはどうすればよいですか?

回答:


145

upgradeデフォルトのCPANシェルから使用する別の方法は、cpanminusおよびを使用することcpan-outdatedです。

これらはとても簡単で使いやすいので、CPANシェルに戻ることはほとんどありません。すべてのモジュールを一度にアップグレードするには、コマンドは次のとおりです。

cpan-outdated -p | cpanm

cpanminusドキュメントが説明するようにインストールすることをお勧めします:

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

次にcpan-outdated、他のすべてのCPANモジュールと一緒にインストールしますcpanm

cpanm App::cpanoutdated

ところで:あなたが使用している場合は、perlbrewその下にインストールしたPerlごとにこれを繰り返す必要があります。

Githubリポジトリについての詳細cpanminuscpan-outdated、こちらをご覧ください。


4
なぜ組み込みのソリューションがあるのにそのような追加のツールを使用するのですか(2番目の回答を参照)。
eav

3
「そのような追加のツールを使用する理由」これはOPの質問の範囲外ですが、cpanimusはCPANの問題を解決して、Enterキーを押すか[y] esと入力するように要求します。残念ながら、バニラCPANではこの動作を確実に抑制できません。これは、任意の種類のcronまたはCIサーバーが関与するとすぐに重要になります。および/または、コーヒーを飲んでいる間、アップグレードがハングアップしないという確信を持ってアップグレードを開始できるようにしたい場合(私の経験では、多くの場合、バニラCPANの場合)も、この回答を参照してくださいstackoverflow.com/questions/898782/...
ノアサスマン

[root @ portal-test bugzilla-4.4.4]#cpan-outdated -p | cpanmは、/ usr / binに/ CPAN-時代遅れライン170で「LWP :: UserAgentの」パッケージを経由して「新しい」オブジェクトのメソッドが見つかりません
shorif2000

3
それらは古い(2006年からのperlの日付、2005年からのLWP)。理想的には、両方の新しいバージョンが必要です。何らかの理由でこれを実行できない場合は、cpanm | cpan-outdatedが機能するまで、LWPをバージョンごとにアップグレードします。NB。重要-CentOSがインストールされたPerlを使用している場合は、これらでCPANまたはCPANMINUSを使用しないでください。OSパッケージと混在させないでください!! 代わりにPerlbrewを使用して独自のperlを作成してください(そして、この中でcpanminusなどを使用してください)。
draegtun 2014

1
cpan-outdated -p実際にアップグレードを実行する前に、簡単に最初に実行して何が行われるかを確認できるため、このソリューションが気に入っています。cpan upgrade
ドライラン

51

すべてのPerlパッケージ(CPANモジュール)をアップグレードする簡単な方法は次のとおりです。

cpan upgrade /(.*)/

cpanはこのような正規表現を認識し、インストールされているすべてのパッケージを更新/アップグレードします。


8
さて、これはようではないクールとしてcpanminus、しかし少なくとも、あなたが仕事にこれを取得するために何かをダウンロードする必要はありません。
David W.

13
このコマンドで問題が発生した場合。を介してcpanシェルを実行してからcpan、cpanシェルでを実行してくださいupgrade /(.*)/
earthmeLon 2016

33

Strawberry Perlの場合:

cpan -u

4
通常のPerlにも。manページから:-u Upgrade all installed modules. Blindly doing this can really break things, so keep a backup.
Chloe


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.