cpan 모듈이 @INC에 등록된 디렉토리에 있음에도 못 찾는 이유
글쓴이: sephiron / 작성시간: 토, 2009/08/08 - 11:33오후
/usr/lib/perl5/site_perl/5.10/i686-cygwin/ 이 @INC에 포함되어 있는데도 /usr/lib/perl5/site_perl/5.10/i686-cygwin/Math/Factor/XS.pm 모듈을 로드하지 못하는 이유가 무엇인가요?
use Math::Factor::XS ':all';
위 코드를 실행시키니,
$ perl /cygdrive/c/Documents\ and\ Settings/sephiron/src/tmp2.pl Can't locate loadable object for module Math::Factor::XS in @INC (@INC contains /usr/lib/perl5/5.10/i686-cygwin /usr/lib/perl5/5.10 /usr/lib/perl5/site_perl/5 10/i686-cygwin /usr/lib/perl5/site_perl/5.10 /usr/lib/perl5/vendor_perl/5.10/i6 6-cygwin /usr/lib/perl5/vendor_perl/5.10 /usr/lib/perl5/vendor_perl/5.10 /usr/l b/perl5/site_perl/5.8 /usr/lib/perl5/vendor_perl/5.8 .) at /cygdrive/c/Document and Settings/sephiron/src/tmp2.pl line 1
이런 컴파일 에러가 뜹니다. 그래서 모듈의 정보를 확인해 보니
Module id = Math::Factor::XS CPAN_USERID SCHUBIGER (Steven Schubiger (stsc) <schubiger@cpan.org>) CPAN_VERSION 0.35 CPAN_FILE S/SC/SCHUBIGER/Math-Factor-XS-0.35.tar.gz UPLOAD_DATE 2008-02-03 MANPAGE Math::Factor::XS - Factorise numbers and calculate matching multiplications INST_FILE /usr/lib/perl5/site_perl/5.10/i686-cygwin/Math/Factor/XS.pm INST_VERSION 0.35
이고 실제 XS.pm파일은 /usr/lib/perl5/site_perl/5.10/i686-cygwin/Math/Factor/에 설치되어 있었습니다.
Math안의 다른 모듈은 정상작동하더군요. 이유가 뭘까요? cpan에서 force install로 깔았습니다만.
Forums:
모듈이 제대로 설치 되어있지 않은 것 같습니다.
제가 테스트로 설치해봤는데 cpan 명령프롬프트 상에서
install Math::Factor::XS 로 설치하니 무슨 이유에선지 몰라도 test과정에서 실패하는군요
CPAN모듈은 아시겠지만
make
make test
make install
과정을 거치며 test과정에서 실패하면 모듈을 설치하지 않습니다. 여기서 그냥 무시하고
force install 로 설치하면 나중에 문제가 생길 수 있습니다.
cpan에서 모듈을 설치하려고 하면 모듈 소스를
~/.cpan/build/모듈명[임의의uid값] 디렉토리에 풀고 make과정을 진행하는데
해당 디렉토리에 들어가서 수동으로
make Makefile.PL
make
make test
make install
하니깐 제대로 설치가 되네요
아마 이 모듈이 cpan을 통해서 설치하는 과정에 문제가 약간 있는듯 합니다.
답변감사드립니다.
여태까지 삽질했는데 해결은 못 했지만 방향을 잡을 수 있을 것 같습니다. CPAN에 대해 조금 더 깊숙히 이해해야 하겠더군요. 해결되면 내용을 올리겠습니다.^^ 감사합니다.
댓글 달기