cpan
とcpanm
コマンドの違いは何ですか?
perl
どちらもモジュールをインストールしているように見えますが、違いは何ですか?
cpan
CPAN シェルは 1997 年頃から Perl に同梱されています。初めて実行すると、一連の質問が表示され、回答が構成ファイルに保存されます。次に、次を実行してモジュールをインストールできます。
cpan -i Module::Name
シェルは、CPAN を検索し、配布ファイル内を調べるための他のコマンドを提供します。
CPANPLUS (cpanp
コマンドラインから)と呼ばれる、より新しく、より優れた、より機能的な CPAN シェルを作成するプロジェクトがJos Boumansによって開始されましたが、元のビジョンが実現されるまでには完全には完了しませんでした。
一方、 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 を参照してください。(これらは同じプレゼンテーションからのものです。リンクがオフラインになった場合に備えて、リンクを複製しています。)