2012-03-02 29 views
2

私のperl 5.8.8にモジュールをインストールできません。このエラーメッセージで何かをインストールしようとしています:Perlのインストールが壊れた

Global symbol "%Config" requires explicit package name at /usr/lib/perl5/5.8.8/File/Copy.pm line 83. 
Global symbol "%Config" requires explicit package name at /usr/lib/perl5/5.8.8/File/Copy.pm line 83. 
Global symbol "%Config" requires explicit package name at /usr/lib/perl5/5.8.8/File/Copy.pm line 83. 
Compilation failed in require at /usr/lib/perl5/5.8.8/CPAN.pm line 51. 
BEGIN failed--compilation aborted at /usr/lib/perl5/5.8.8/CPAN.pm line 51. 
Compilation failed in require at /usr/lib/perl5/5.8.8/App/Cpan.pm line 183. 
BEGIN failed--compilation aborted at /usr/lib/perl5/5.8.8/App/Cpan.pm line 183. 
Compilation failed in require at /usr/bin/cpan line 8. 
BEGIN failed--compilation aborted at /usr/bin/cpan line 8. 

お手数ですが、私はグーグルで試しましたが、ヒットのほとんどは約use strictと仮定します。私の場合、壊れたインストールがあるようです。 (あなたのコードを実行しているディレクトリに含む)@INCConfig.pmという名前のファイルがある場合は、それが優先されます

use Config; 

以降

if ((($Config{d_symlink} && $Config{d_readlink}) || $Config{d_link}) && 

+4

ご質問できません。何がモジュール化できないのですか? – TLP

+0

問題が何であるかわからないけど、最初はNet :: SFTP :: Foreignをインストールしようとしていました。エラーが発生しました。グーグルでは、Bundle :: CPANを再読み込みしようとする提案がありました。同じエラー。 – Lazloman

+0

あなたのコアperlのインストールが壊れていて、Config.pmがゴミ箱になっているか、Perlの隠しているConfig.pmが* else *インストールされています。 'perl-MConfig -le 'は$ INC {" Config.pm "}'出力を出力しますか? – hobbs

答えて

3

File::CopyはこれをやっていますPerlのConfigモジュールに組み込まれており、File::Copyには%Configハッシュが与えられなくなるので、File::Copyは壊れてしまいます。

解決策は、問題のモジュールに何か他の名前を付けることです。

+1

私は検索して、自分のシステムに分散しているConfig.pmのコピーを見つけました。どちらが間違っているかを判断するにはどうしますか? Config.pmが競合しているINCの最初のディレクトリを仮定する必要がありますか?現在のディレクトリは耐えられません。 – Lazloman

+1

@ user675712 - 'perl -MConfig -e 'print $ INC {" Config.pm "}''は 'Config.pm'がどのファイルにロードされているかを示します。 – mob

+0

私はConfig.pmの最初のオカレンス(INCに基づく)の名前を変更し、以前はできなかったcpanシェルに入ることができたので、この問題は解決されたと思いますが、今はメモリエラーです。 ..メモリを割り当てることができない...私はおそらくデーモン、Apache、mySQLなどを停止する必要があるだろうが、それは後になるまで待たなければならない。いずれにせよ、この問題は少なくとも解決されています。誰もが助けてくれてありがとう。 – Lazloman

関連する問題