2

CPAN を使用するか手動でインストールするかに関係なく、「perl Makefile.PL」を実行して Perl モジュールの Makefile をビルドしようとするたびに、次のエラーが発生します。

Makefile.PL の評価からのエラー: /usr/lib/perl5/5.8.8/ExtUtils/MM_Any.pm 行 1199 のパッケージ "CPAN::Meta" 経由でオブジェクト メソッド "new" が見つかりません

CPAN::Meta モジュールがインストールされているので、これには完全に困惑しています。

実行すると:perl -MCPAN::Meta -e1エラーが返されます:

バージョン 0.82 が必要です。これは /usr/lib/perl5/5.8.8/CPAN/Meta/Converter.pm の 12 行目のバージョン 0.78 のみです。

4

5 に答える 5

1

ExtUtils::MakeMaker のインストール時に、version.pm (EU::MM 内にバンドルされています) がアップグレードされていないようです。手動でアップグレードする必要があります。local::lib を使用しない場合、これには root が必要です。

于 2011-05-22T20:40:53.080 に答える
0

私はちょうどこれと同じ問題を抱えていました。ここに説明付きの解決策があります:

cpan Bundle::CPAN」を実行していましたが、失敗しました。再実行すると、cpan が壊れていることがわかり、モジュールをインストールできませんでした。さらに悪いことに、" perl Makefile.PL " も同じエラーで死んでいました:

/usr/lib/perl5/5.8.8/ExtUtils/MM_Any.pm 行 XXXX でパッケージ "CPAN::Meta" を介してオブジェクト メソッド "new" を見つけることができません

CPAN::Meta モジュールを直接テストしたところ、Parse::CPAN::Meta のバージョンが古すぎることがわかりました:
perl -MCPAN::Meta
Parse::CPAN::Meta バージョン 1.44 が必要です -- これは / のバージョン 1.40 のみです。 usr/lib/perl5/5.8.8/CPAN/Meta/Converter.pm 13 行目。

Parse::CPAN::Meta を更新できるようにするには、まず MakeMaker で CPAN::Meta の使用を無効にする必要がありました。次のファイルを編集しました:
/usr/lib/perl5/5.8.8/ExtUtils/MM_Any.pm
そして、「 sub _has_cpan_meta { 」の後に「return 0; 」を追加して、次のようにします: sub _has_cpan_meta { return 0;

その後、「 cpan Parse::CPAN::Meta 」を使用して、通常どおり Parse::CPAN::Meta をインストールできました。その後、CPAN::Meta が「perl -MCPAN::Meta 」で動作していることを確認し、 /usr/lib/perl5/5.8.8/ExtUtils/MM_Any.pmに追加した「 return 0 」を削除しました。

ちょっとプレスト、すべてが再び機能します:)

このスレッドを見つけた他の人の助けになることを願っています。

于 2011-07-30T00:02:21.687 に答える
0

最新の「バージョン」はこちら: https://metacpan.org/pod/version

ExtUtils::MakeMaker には、次のように簡素化されたバージョンが含まれています。

これは version.pm 0.9909 の変更されたコピーで、ExtUtils::Makemaker と version.pm が利用できない場合にブートストラップするための依存関係でのみ使用するためにバンドルされています。

しかし、コードでは次のように書かれています: $VERSION = '7.36';

于 2019-07-23T14:54:05.880 に答える
-1

CPAN::Meta の場所を見つけて削除するか、バックアップしてから、もう一度インストールしてみてください。

于 2011-05-20T16:08:56.890 に答える