cpan
コマンドとcpanm
コマンドの違いは何ですか?
どちらもPerl
モジュールをインストールしているようですが、違いは何ですか?
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
はありません。
最近のほとんどのPerlユーザーは、その単純さと主に出力の簡潔さのためにcpanm
を好みます。
cpan
を使用すると、ダウンロード、チェックサム、インストーラーの実行、解析、ロードなど、実行中のすべてが表示されるため、数百行の出力が発生する可能性があります。同じことがすべての依存関係に当てはまります。
一方、cpanm
は、より簡潔で一般的な方法で何を行っているかを示します。つまり、フェッチ、構成、構築、テスト、完了です。
したがって、使用法の主な違いは、cpanm
が多くの(通常)無関係な情報を抑制することです。モジュールに障害が発生したときに、詳細情報が必要になる場合があります。あります -v|--verbose
フラグは、基本的にcpan
が行うすべてのことを示します。
また、ユーザー入力を必要とする一部のモジュールは、インストールしようとすると「ハング」しているように見える場合があります。これは、何かを入力するように求める出力が抑制されるためです。 --interactive
(または--verbose
)これを回避するためのフラグ。
出力の比較については、スライド35-39 ここ またはスライド37-41 ここ を参照してください。 (これらは同じプレゼンテーションからのものです。オフラインになった場合に備えて、リンクを複製しています。)