web-dev-qa-db-ja.com

cpanとcpanmの違いは何ですか?

cpanコマンドとcpanmコマンドの違いは何ですか?

どちらもPerlモジュールをインストールしているようですが、違いは何ですか?

22
CJ7

cpan CPANシェルは、1997年頃からPerlに同梱されています。初めて実行すると、多数の質問が表示され、回答が構成ファイルに保存されます。次に、次のコマンドを実行してモジュールをインストールできます。

cpan -i Module::Name

シェルには、CPANを検索したり、配布ファイルを確認したりするための他のコマンドが用意されています。

Jos Boumans によって、CPANPLUS(コマンドラインからのcpanp)と呼ばれる、より新しく、より機能性の高いCPANシェルを作成するプロジェクトが開始されましたが、元のビジョンに到達するまでは完全には完了しませんでした実現されました。

その間 [〜#〜] miyagawa [〜#〜] は、cpanpがやりすぎていること、そして世界が本当に必要としているのは、少ないシンプルなシェルであることを決定しました質問数が少ない(理想的にはまったくない)。彼は App :: cpanminus を作成しました。これは、cpanmコマンドを提供し、意図したとおりに動作します。これを使用して、次のようなコマンドでモジュール(およびすべてのモジュールの依存関係)をインストールできます。

cpanm Module::Name

2つの主な違いは、Perlを使用している場合は、cpanコマンドがすでにあるはずです。これをインストールしない限り、cpanmはありません。

21
Grant McLean

最近のほとんどのPerlユーザーは、その単純さと主に出力の簡潔さのためにcpanmを好みます。

cpanを使用すると、ダウンロード、チェックサム、インストーラーの実行、解析、ロードなど、実行中のすべてが表示されるため、数百行の出力が発生する可能性があります。同じことがすべての依存関係に当てはまります。

一方、cpanmは、より簡潔で一般的な方法で何を行っているかを示します。つまり、フェッチ、構成、構築、テスト、完了です。

したがって、使用法の主な違いは、cpanmが多くの(通常)無関係な情報を抑制することです。モジュールに障害が発生したときに、詳細情報が必要になる場合があります。あります -v|--verboseフラグは、基本的にcpanが行うすべてのことを示します。

また、ユーザー入力を必要とする一部のモジュールは、インストールしようとすると「ハング」しているように見える場合があります。これは、何かを入力するように求める出力が抑制されるためです。 --interactive(または--verbose)これを回避するためのフラグ。

出力の比較については、スライド35-39 ここ またはスライド37-41 ここ を参照してください。 (これらは同じプレゼンテーションからのものです。オフラインになった場合に備えて、リンクを複製しています。)

14
Joshua