2013년 7월 23일 화요일

비표준 위치에 Perl module 설치하기

연구소에서 공용으로 쓰는 서버는 홈 디렉토리에 파일을 많이 저장하는 것을 권장하지 않는다. 별도의 대용량 볼륨을 만들어서 그곳에서 작업을 해야 하는데, 그러자면 Perl 모듈을 설치하는 위치를 임으로 바꾸지 않을 수 없다.

간단히 웹 검색을 통해서 비표준 위치에 Perl module을 설치하는 방법을 알아보았다. 이는 2003년 O'Reilly에서 출판된 Eric Cholet과 Stas Bekman의 책 Practical mod_perl에 실린 것이다.

Installing Perl Modules into a Nonstandard Directory

Finding Modules Installed in Nonstandard Directories

   Modifying @INC

   Using the PERL5LIB environmental variable

Using the CPAN.pm Shell with Nonstandard Installation Directories


CPAN.pm을 사용하면서도 비표준 위치에 Perl module을 설치할 수 있다면 매우 유용할 것이다. 이를 연구해 보도록 하자.

시스템에 Perl이 제대로 설치되어 있다면, system-wide configuration file이 있을 것이다. 내 경우에는 다음의 위치에 있었다.

/usr/share/perl5/CPAN/Config.pm

홈 디렉토리에 다음과 같이 자리를 만들어 주고, 여기에 CPAN.pm을 복사한다.

mkdir -p .cpan/CPAN
cp /usr/share/perl5/CPAN/Config.pm ~/.cpan/CPAN/MyConfig.pm

이것으로 끝난 것이 아니다. MyConfig.pm에서 /root를 내 홈 디렉토리로 변경해야 하고(여러 곳임에 유의), 마지막으로 다음의 줄(1)을 원하는 위치에 맞게 (2)와 같이 변경해야 한다.

(1) makepl_arg' => q[ ],
(2) makepl_arg' => q[PREFIX=원하는위치],

그런데 makepl_arg의 기본값은 빈 칸(q[ ])이 아니고 INSTALLDIRS=site라고 되어 있다. 도대체 이것을 어떻게 설정해야 할까? 몇 번의 테스트를 거쳤지만 계속 설치에 실패하고 있다. BioPerl 설치 문서를 참고해 본 결과 makepl_arg => q[PREFIX=$$$],의 형태가 되어야 하는 것으로 보인다. INSTALLDIRS가 아니고.

INSTALLING IN A PERSONAL MODULE AREA

>cpan o conf commit makepl_arg PREFIX=원하는_위치
>cpan o conf commit mbuildpl_arg "--prefix 원하는_위치" <- nbsp="" p="">

댓글 없음: