Perl을 사용하면 접했던 애매한 문제들에 대한 문제와 그 해결법을 FAQ형식으로 모아볼 생각입니다. --microcos

Perl 모듈을 including 시키는 디렉토리 설정 ( @INC의 영구 변경 )

RedHat 배포판을 설치하면 perl은 /usr/bin에 설치가 된다. 만약 RedHat 7.3을 설치하면 Perl 5.6.1이 기본으로 설치되며 경우에 따라 5.8.3을 RPM으로 설치하지 않고 source를 받아서 설치하면 기본 설치 디렉토리가 /usr/local/bin/usr/local/lib에 설치가 된다. 물론 ./configure에서 세부지정을 바꿔서 가능하지만 RedHat 배포판에 따라 조금씩 바뀌므로 정확히 지정하는 것에 신경이 많이 쓰인다. 따라서 source로 설치하는 경우에 기본 디렉토리인 /usr/local이하에 설치되는 경우가 많다. 이렇게 설치하면 기존에 설치된 경로에 있는 라이브러리를 불러올 때 오류가 많이 발생한다( @INC 배열에 참조할 디렉토리 리스트가 등록되어 있음). 다음은 Perl 5.6.1이 설치된 RedHat 7.3에 Perl 5.8.3을 source로 설치한 뒤의 @INC 배열의 내용이다.

#perl -V

  ...중략...

  @INC:
    /usr/lib/perl5/5.8.3/i686-linux
    /usr/lib/perl5/5.8.3
    /usr/lib/perl5/site_perl/5.8.3/i686-linux
    /usr/lib/perl5/site_perl/5.8.3
    /usr/lib/perl5/site_perl/5.6.1
    /usr/lib/perl5/site_perl/5.6.0
    /usr/lib/perl5/site_perl
    .

@INC 배열에 펄 모듈을 경로를 추가하는 방법은 perl -I/usr/directory/하거나 펄 코드에 다음과 같이 use lib programa를 추가하는 것이다.

use lib "/usr/local/lib/perl5/...";
use MyPerlPM

.

하지만, 이런 방법은 매번 사용하기에는 불편하므로 @INC에 미리 지정하는 것 좋다. 이럴때는 /etc/profile를 편집하여 환경변수 PERL5LIB를 추가하면 된다.

편집할 파일을 불러오고,

#vi /etc/profile

다음과 같이 환경변수를 설정 라인을 추가.

export PERL5LIB=/usr/local/lib/perl5/...

시스템에 반영한다.

#source /etc/profile

지금까지의 내용을 요약하면

  1. perl -I 옵션 사용

  2. use lib 프로그래마 사용

  3. PERL5LIB 환경변수 설정

이다.

PerlFaq (last edited 2012-06-15 15:17:22 by 110)

web biohackers.net