오래전 이야기/Server

perl 설치

리눅스 엔지니어였던 2008. 9. 15. 14:21

NAME

CPAN 모듈 사용하기


SYNOPSiS

CPAN을 활용해 펄 모듈을 설치한다.


DESCRIPTION

펄 공동체에는 꽤 쓸만한 모듈이 많이 있다. 그것들이 체계적으로 정리되어 있는 곳이 CPAN(Comprehensive Perl Archive Network)이며 http://search.cpan.org/ 를 방문하면 개별적으로 검색할 수도 있다.

여기서 다룰 CPAN 모듈은, 광대한 바다에서 우리가 필요로 하는 보물을 찾는데 도와주는 역할을 한다. 펄 모듈의 가장 단순한 설치는 모듈을 파일 시스템에 복사하면 된다. 허나, 어지간히 쓸만한 모듈들은 다른 모듈을 필요로 하기도 하고 컴파일(C와의 연동으로)이 요구되기도 한다. CPAN 모듈을 사용하면 이러한 작업들을 손쉽게 처리할 수 있다.

여러분은 간단한 기능 몇 가지만 익혀두더라도 매우 유용한 스킬을 가지게 될 것이다!


CPAN 모듈

펄이 설치되면서 기본적으로 CPAN 모듈(CPAN.pm)이 설치되기 때문에, 우리 사용자들은 직접 이 모듈을 실행할 수 있다. 또 다른 방법은 cpan 프로그램을 실행함으로써 간접적으로 CPAN 모듈을 사용하는 것이다. 직접 또는 간접적으로 CPAN 모듈을 사용하는 것에는 별 차이가 없으나 cpan 프로그램 사용을 개인적으로 권장한다.

펄 5.8.5 설치

펄을 사용자 계정에 별도로 설치하는 이유는, 펄 모듈을 맘껏 설치해 보기 위함이다. 얼마전 나는 mod_perl 2와 Mason을 설치하기 전에 여러 가지 테스트를 했었다. 부수적으로 펄 컴파일 설치의 경험 또한 생기게 된다. 펄 설치를 마치고 cpan으로 펄 모듈을 설치해 보도록 하자.

펄 공식 사이트에서 펄을 다운로드 받으면 파일명이 stable.tar.gz로 되어 있다. 이 파일명을 perl-5.8.5.tar.gz로 수정한 후 다음 과정으로 설치한다:

 $ mv ./stable.tar.gz ./perl-5.8.5.tar.gz 
 $ tar xvfz ./perl-5.8.5.tar.gz $ cd perl-5.8.5
 $ ./Configure -Dprefix=$HOME/perl -des $ make
 $ make test 
 $ make install

-Dprefix=$HOME/perl 는 펄이 설치될 디렉토리를 지정하며 -des 스위치는 펄 설치시 나오는 질문을 기본값으로 설정해 사용자에게 묻지 않도록 하는 것이다. -des 스위치 없이, 펄의 질문에 답변해 보는 것도 도움이 될 것이다.

시간이 좀 걸리더라도 테스트(make test)를 하고 마지막 결과 내용을 꼭 확인하도록 하자. 시스템에 따라 차이는 있겠지만 약 10분 정도 걸린다.

이제 펄이 제대로 작동하는지 확인해 보자.

 $ cd 
 $ cd perl/bin
 $ ./perl -V
 ... 
 ... 
 Linker and Libraries: 
 ld='cc', ldflags ='-Wl,-E -L/usr/local/lib' 
 libpth=/usr/lib /usr/local/lib 
 libs=-lm -lcrypt -lutil -lc 
 perllibs=-lm -lcrypt -lutil -lc 
 libc=, so=so, useshrplib=false, libperl=libperl.a 
 `gnulibc_version='' 
 ... 
 ... 
 @INC: 
 /home/cglee/perl/lib/5.8.5/i386-freebsd 
 /home/cglee/perl/lib/5.8.5 
 /home/cglee/perl/lib/site_perl/5.8.5/i386-freebsd 
 /home/cglee/perl/lib/site_perl/5.8.5 
 /home/cglee/perl/lib/site_perl 
 .

펄 설치에 사용된 여러 옵션들을 볼 수 있을 것이다. 여기서 ‘Linker and Libraries'의 libperl=libperl.a을 확인한다. 펄 라이브러리가 기본값인 정적 라이브러리로 설치된 것이다( FreeBSD 5.3의 펄은 공유 라이브러리를 사용하고 있다). mod_perl은 libperl.a를 좋아한다^^

다음, 여섯 개의 펄 모듈 검색 경로가 나온다. 이는 cpan으로 모듈 설치시 주의해야 한다.

cpan 초기화

앞서 CPAN 모듈을 사용하는 방법에 두 가지가 있다고 했다. 여기서는 cpan 프로그램을 사용하는 방법만을 다룰 것이다 (CPAN 모듈을 사용하면 펄 라이브러리 경로를 엉뚱하게 잡는 현상이 발생하곤 한다. 즉, @INC 이외의 경로에 모듈이 설치되는 것이다. 그래서, 모듈을 설치했음에도 불구하고 펄은 모듈이 없다고 불평을 하게 된다.).

혹 도전적인 독자를 위해... CPAN 모듈을 직접 실행하는 방법은 다음과 같다:

 $ cd ~/perl/bin $ ./perl -MCPAN -e shell

cpan 프로그램은 perl 실행 파일과 같은 디렉토리에 설치된다. 만약 펄이 /home/myname/perl에 설치되었다면 다음처럼 cpan 프로그램을 실행할 수 있다.

 $ cd ~/perl $ ./bin/cpan

첫 실행시에는 초기화를 위해 몇 가지 질문을 받을 것이다. 기본값을 선택하면 별 무리 없으나 다음 두 질문에는 신경을 써야한다. 루트 권한으로 시스템에 설치된 펄에는 첫번째에 기본값을 선택하면 된다.

1 . Makefile.PL에 대한 질문

펄을 설치한 디렉토리를 다음처럼 지정한다:

 cpan> PREFIX=~/perl

2. CPAN의 FTP 사이트(미러 사이트) 선택

한국 내 CPAN 미러를 제공하는 곳은 보라넷, 한국 FreeBSD 사용자 그룹, KAIST 3개의 호스트가 등록되어 있다. 모두 선택하자. 번호 사이에 공백(스페이스)을 넣어서 선택한다. 나는 다음처럼 선택했다:

 [1] 보라넷 [2] 한국 FreeBSD 사용자 그룹 [3] KAIST
 cpan> ... ... ? 2 1 3

초기화를 마치면 곧바로 cpan을 사용할 수 있다. 모듈 설치 명령을 주면 cpan은 위에서 선택한 FTP 미러를 순서대로 접속해 모듈을 가져와 설치하게 된다. 간혹, 보라넷 서버에 접속이 안 되는 경우가 있었기에 두번째로 미루었다!

나중에 설정값을 바꾸고 싶다면 다음의 두 가지 방법중 하나를 선택한다:

 $ ./cpan cpan> o conf init
 또는
 $ vi ~/perl/lib/5.8.5/CPAN/Config.pm

cpan으로 펄 모듈 설치

표준 모듈(펄과 함께 설치되는 모듈) 이외에 다른 모듈이 필요하다면 CPAN을 활용한다. 간단한 모듈은 직접 다운로드 한 후에 설치하면 되나, 다른 모듈에 의존성을 띄는 모듈은 설치 자체가 매우 피곤한 일이다. 모듈을 설치하려는데 다른 모듈이 필요하고... 또 다른 모듈이 필요하고... 이렇게 되면 모듈 설치가 귀찮은 존재임에 틀림없다.

이제 모듈을 설치하고 확인하는 작업으로 들어가도록 하자.

먼저, 정규식을 이용해 CPAN에서 모듈을 검색하고 필요한 모듈을 설치하자. http://search.cpan.org을/ 방문해 모듈을 검색해도 좋다. 펄 모듈은 설치 전에 테스트 과정을 거치게 되는데 이 때 ‘100% OK’가 보장되는건 아니다. 왜 테스트에 실패했는지 원인을 찾아내어 이를 해결하는게 정석인 듯 싶다. 꼭 필요거나 중요한 모듈이라면 반드시 테스트를 통과시키도록 노력하고 그렇지 않다면... 글쎄 상황에 따른 판단은 각자가 해야 하지 않을까? 나는 보통 모듈 소스를 따는(?) 편이다.

 $ cd ~/perl/bin 
 $ ./cpan cpan> i /LWP/ # 모듈명에 LWP가 붙은 모듈 검색. 
 cpan> i LWP # LWP 모듈의 설치 유무 확인. 
 cpan> install Bundle::LWP 		# LWP를 번들로 몽땅 설치. 
				# 웹서버의 실행 유무에 따라 에러 메시지가 나온다. 
				# 웹서버가 실행되고 있더라도 jigsaw와 관련해서는 
				# 에러가 나올 수 있다. 무시하고 강제 설치한다. 
 cpan> force install Bundle::LWP 	# 강제로 설치한다. 
 cpan> i CGI 			# CGI 모듈이 이미 설치되어 있다고 나올 것이다. 
 cpan> install Compress::Zlib	# mod_perl에 필요하다. 설치 중에 잠깐 멈추고 
				# 무엇인가 물어볼 것이다. 
				# 의존성을 따르겠냐고 묻는 건데, 엔터 친다. 
 cpan> q 
 $
 $ ./perl -MLWP -e 'print "$LWP::VERSION\n"'
 5.801
 $ ./perl -MCGI -e 'print "$CGI::VERSION\n"'
 3.05
 $ ./perl -MCompress::Zlib -e 'print "$Compress::Zlib::VERSION\n"'
 1.33

cpan으로 모듈을 설치하고 펄이 이를 인식하고 잘 찾는지 확인한다. 버전이 출력되지 않고 이상한 메시지가 나오면 문제가 발생한 것이다. 반드시 펄로 확인을 해야 한다!

이상으로 간단하게 cpan 사용법에 대해 알아보았다. 사용자 계정을 예로 들었기에 다른 모듈도 맘 놓고 설치해 보면서... cpan 사용법에 익숙해졌으면 하는 바람이다.


AUTHOR

이채광(Chaegwang Lee) - vet045@yahoo.co.kr


REFERENCE

man cpan


COPYRIGHT

Copyright 2004, Chaegwang Lee. All right reserved.

This is a PMDocs of Perlmania. You may copy or redistribute it under the same terms as Perl itself.


 

==================

<출처: http://blog.naver.com/hotfeel7/150002056924 >