위키로그:2014/11/26 - CentOS 7 + perlbrew

From PGWiki

CentOS 7 기준으로 작성되었다.

최소 설치로 설치했더니 펄이고 나발이고 아무 것도 없다 ㅡㅡ;

[root@Perl-Dev ~]# yum install gcc make cmake automake autoconf perl perl-Module-Core cpan perl-CPAN-Meta perl-CPAN-Meta-Requirements perl-CPAN-Meta-YAML

이제 perl라는 명령을 실행할 수 있는 아주 최소의(...) 환경은 되었다.

만일 시스템이 기존에도 CPAN을 사용할 수 있는 환경이라면 여기까진 생략해도 좋다.

CPAN의 초기 설정 등의 작업은 CPAN 문서를 참고하자.

일부 패키지들은 소유주가 루트 등으로 되어있는 디렉터리에 직접 바이너리를 설치해야 하는 경우가 있다.

local::lib는 이런 패키지들에 대해서도 사용자 환경의 설치가 가능하게 해준다.

CPAN을 초기 설정하는 과정에서 펄 라이브러리 디렉터리에 대한 권한이 없다면 자동으로 local::lib를 선택할 수 있다.

이제 현재 쉘을 빠져나오고 다시 열던 source를 하던 환경을 새로 불러오자.

AddHistory나 GetHistory를 지원하지 않는다는 오류가 발생한다면 CPAN 문서를 참고하자.

local::lib는 기본적으로 홈 디렉터리 아래에 perl5라는 디렉터리를 생성해서 사용하는데 본인은 가능하면 안보였으면 좋겠다고 생각하기에 이를 다시 옮길 것이다.

우선 .bashrc 파일을 열어서 아래의 환경 변수를 추가하자.

# Perl5 사용자 설정
PATH="$HOME/.perl5/bin${PATH+:}$PATH"; export PATH;
PERL5LIB="$HOME/.perl5/lib/perl5${PERL5LIB+:}$PERL5LIB"; export PERL5LIB;
PERL_LOCAL_LIB_ROOT="$HOME/.perl5${PERL_LOCAL_LIB_ROOT+:}$PERL_LOCAL_LIB_ROOT"; export PERL_LOCAL_LIB_ROOT;
PERL_MB_OPT="--install_base \"$HOME/.perl5\""; export PERL_MB_OPT;
PERL_MM_OPT="INSTALL_BASE=$HOME/.perl5"; export PERL_MM_OPT;

이제 적용해보자.

[potatogim@Perl-Dev ~]$ source .bashrc
[potatogim@Perl-Dev ~]$ perl -Mlocal::lib=$HOME/.perl5
Attempting to create directory /home/potatogim/.perl5
PATH="/home/potatogim/.perl5/bin${PATH+:}${PATH}"; export PATH;
PERL5LIB="/home/potatogim/.perl5/lib/perl5${PERL5LIB+:}${PERL5LIB}"; export PERL5LIB;
PERL_LOCAL_LIB_ROOT="/home/potatogim/.perl5${PERL_LOCAL_LIB_ROOT+:}${PERL_LOCAL_LIB_ROOT}"; export PERL_LOCAL_LIB_ROOT;
PERL_MB_OPT="--install_base \"/home/potatogim/.perl5\""; export PERL_MB_OPT;
PERL_MM_OPT="INSTALL_BASE=/home/potatogim/.perl5"; export PERL_MM_OPT;

잘 되는 것을 확인했으니 perlbrew 설치를 진행해보자.

perlbrew에서 사용하는 초기 디렉터리는 $HOME/perl5인데, 이전과 마찬가지로 $HOME/.perl5로 바꿀 것이다.

.bashrc를 열어서 아까 추가한 내용에 한 줄을 더 추가하자.

PERLBREW_ROOT="$HOME/.perl5/perlbrew"; export PERLBREW_ROOT;

다시 환경을 새로 불러오고 나면 설치를 진행해보자. 설치 방법에는 CPAN을 통해서 설치하는 방법과 직접 내려받는 방법이 있다.

CPAN을 통한 설치
[potatogim@Perl-Dev ~]$ cpan
cpan[1]> install App::perlbrew
...
cpan[2]> quit

직접 내려받아 설치
CentOS 7이나 Fedora 20 이상의 환경에서는 스크립트를 내려받아 설치할 수 없고, 약간의 수정이 필요하다.

perlbrew 공식 페이지에서 내려받을 수 있는 http://install.perlbrew.pl 스크립트를 열어보면 실제 설치에 사용하는 스크립트를 자동으로 내려받아서 실행만 해주는 역할을 한다는 것을 알 수 있다.

여기서 수정해야 할 스크립트는 바로 위 스크립트가 다시 내려받아 실제 설치에 사용하는 스크립트다.

# 아래 내려받기 주소는 install.perlbrew.pl에서 다시 내려받는 스크립트의 주소다. 혼동하지 말자.
[potatogim@Perl-Dev ~]$ curl -kL https://raw.githubusercontent.com/gugod/App-perlbrew/develop/perlbrew | sed -e "s/sitearchexp/sitearchexp vendorarchexp vendorlib/" > perlbrew.pl
[potatogim@Perl-Dev ~]$ perl perlbrew.pl self-install
[potatogim@Perl-Dev ~]$ rm -f perlbrew.pl

이제 perlbrew를 초기화하고 로그인 시 perlbrew의 환경 설정을 불러오도록 하는 일만 남았다.

# install-patchperl은 Devel::PatchPerl을 설치하기 위한 명령이며, 초기에 한번만 해주면 된다.
[potatogim@Perl-Dev ~]$ perlbrew install-patchperl
[potatogim@Perl-Dev ~]$ perlbrew init

perlbrew root (~/.perl5/perlbrew) is initialized.

Append the following piece of code to the end of your ~/.bash_profile and start a
new shell, perlbrew should be up and fully functional from there:

    source ~/.perl5/perlbrew/etc/bashrc

Simply run `perlbrew` for usage details.

Happy brewing!

[potatogim@Perl-Dev ~]$ echo "source ~/.perl5/perlbrew/etc/bashrc" >> .bashrc

이제서야 perlbrew의 설치가 끝났다! (...)

한번 펄 5.20.1을 설치해보자.

[potatogim@Perl-Dev ~]$ perlbrew install perl-5.20.1 --thread --multi
[potatogim@Perl-Dev ~]$ perlbrew switch perl-5.20.1

기타 자세한 사용법은 perlbrew 문서를 참고하자!



blog comments powered by Disqus