8

複数のモジュールを必要とするものを Perl で作成しようとしていますが、Perl を使用するのはこれが初めてで、必要な特定のモジュールをインストールできないようですArchive::zip

私は perlbrew を使用しており、次のコマンドを使用してモジュールのインストールを試みています。

cpanm install Archive::zip

これにより、コマンドラインから次のメッセージが返されます。

install is up to date. (0.01)
! Finding Archive::zip on cpanmetadb failed.
! Finding Archive::zip () on mirror http://www.cpan.org failed.
! Couldn't find module or a distribution Archive::zip

最初は「インストールは最新である」という意味だと思いましたが、そのモジュールを必要として実行しようとすると、モジュールが見つからないことがわかります。後のメッセージは、このモジュールをインストールする場所が見つからないことを意味していると思います。オンラインのどこかに投稿されたこの問題に遭遇したようには見えません。その場合、指定できる別のミラーはありますか?

これに関連する可能性がある場合、私は現在 OSX 10.10.2 を使用しています。

4

2 に答える 2

0

前の投稿者が指摘したように、モジュール名は大文字と小文字が区別されるため、「cpanm Archive::zip」は「Archive::Zip」を検出しません。

「インストールは最新です」に関しては、これは最初は少し混乱します。cpanm プログラムは、ダッシュで始まるオプションとそうでない引数を取ります。オプションを指定しない場合、デフォルトの動作では、引数として指定したモジュールがインストールされます。したがって、適切なコマンドは「cpanm Archive::Zip」です。cpanm に何か他のことをするように指示したい場合は、オプションを付けて言います: たとえば、「cpanm --showdeps Some::Module」は、Some::Module の依存関係を表示しますが、何もインストールしません。

「cpanm install Archive::Zip」と言うと、最初に「install」というモジュールをインストールし、次に「Archive::Zip」をインストールします。そして、「 install 」と呼ばれるモジュールがあります-- これは何もしませんが、「cpan install Some::Module」とぼんやりと入力したときに「モジュールまたはディストリビューションが見つかりませんでした」というエラーを回避するために特別に作成されました。したがって、「インストールは最新 (0.01) です」とは、以前に「インストール」モジュールをインストールしたことがあり、使用しているバージョンが最新バージョンであることを意味します。(何もしないモジュールは修正が必要ない可能性が高いため、これは驚くべきことではありません。)

于 2015-07-13T18:16:02.397 に答える