2014-04-13 4 views
3

cpanm을 사용하여 perl 모듈을 설치하는 동안 컴퓨터가 손상되었습니다 (CarpMoose의 종속성으로 설치하는 것 같음). 나는 비슷한 (이 다른 수 (cpanm --reinstall 또는 cpanm force 사용) 패키지를 설치중단 된 CPAN 모듈 설치를 복구하는 방법은 무엇입니까?

[email protected]:~$ ./script_using_moose.pl 
Carp.pm did not return a true value at /usr/share/perl/5.14/diagnostics.pm line 185. 
BEGIN failed--compilation aborted at /usr/share/perl/5.14/diagnostics.pm line 185. 
Compilation failed in require at ./script_using_moose.pl line 5. 
BEGIN failed--compilation aborted at ./script_using_moose.pl line 5. 
[email protected]:~$ 

을 내가하려고하면 (재) : 지금은 내가 사용하고자하는 모듈을 사용하려고 할 때, 나는 다음과 같은 오류가 발생합니다) 오류 :

[email protected]:~$ sudo cpanm --force Moose 
Carp.pm did not return a true value at /usr/local/share/perl/5.14.2/Parse/CPAN/Meta.pm line 6. 
BEGIN failed--compilation aborted at /usr/local/share/perl/5.14.2/Parse/CPAN/Meta.pm line 6. 
Compilation failed in require at /loader/0x1692090/App/cpanminus/script.pm line 11. 
BEGIN failed--compilation aborted at /loader/0x1692090/App/cpanminus/script.pm line 11. 
Compilation failed in require at /usr/bin/cpanm line 2029. 
BEGIN failed--compilation aborted at /usr/bin/cpanm line 2029. 
[email protected]:~$ 

어떻게하면 불완전 모듈의 설치를 다시 시작하거나 다시 구성 할 수 있습니까?

+0

'잉어 '는 정말로 중요한 핵심 모듈이며 일반적으로 언급 할 가치가있는 전제 조건으로 간주되지 않습니다. 'cpanm Carp'와 그 변형을 시도해 보셨습니까? 어떤 경우에도 작동하지 않는 경우 : Carp.pm의 내용을 표시 할 수 있습니까? – amon

+0

'cpanm Carp'는 위와 같은 오류 ('cpanm --force Moose'와 같은 오류)를줍니다. 'find'에 따르면 내 컴퓨터에는'Carp.pm'이라는 파일 5 개가 있습니다 : CGI :: Carp를 제공하는 파일, Carp를 제공하는 파일 (/usr/share/perl/5.14.2/Carp.pm) ') ... 그리고 나머지 세 개는 비어 있습니다. 이 중 두 개는'~/.cpanm/work'의 폴더에 있고 다른 하나는'/ usr/local/share/perl/5.14.2/Carp.pm'에 있습니다. 그 빈 파일들은보기에 좋지 않습니다 ... – jja

+0

'~/.cpanm' 폴더를 삭제하면 cpanm 상태가 재설정 될 수 있지만, 빈 모듈이 적절한 모듈 위치에있는 것은 이상합니다. 모듈 위치는 어떤 순서로 검사됩니까 ('perl -E'say for @ INC''가 트릭을합니까?) – amon

답변

3

몇 가지 이유로 파일 몇 개가 작성되었지만 기록되지 않았거나 잘 렸습니다.

Checking dependencies from MYMETA.json ... 
... 
Checking if you have Task::Weaken 0 ... Yes (undef) 
... 
Checking if you have Devel::GlobalDestruction 0 ... Yes (undef) 

이 모듈 Task::Weaken을 다시 설치하고, Devel::GlobalDestruction 트릭을 수행해야합니다 이들은 쉽게 undef 버전 번호와 그 모듈과 같은 전체 설치 로그에서 확인 할 수있다.