2013/03/13

perlbrew 의 새로운 기능

Perl을 root권한 없이 로컬계정에 설치 및 여러 버젼을 번갈아가면서 쓸 수 있게 해주는 perlbrew 에 upgrade-perl 이라는 새로운 기능이 추가됐다.

perl은 5.16.2 처럼 3단계 버젼번호체계를 가지는데 중간버젼간(예를 들면 5.16.2, 5.16.3)에는 모듈의 바이너리 호환성이 보장되기 때문에 C코드등이 포함되어 네이티브하게 컴파일되는 XS모듈 같은 경우 재설치하지 않아도 그대로 사용 가능 하다. 하지만 맨 마지막 점 아래의 마이너 버젼이 바뀌었을때 perlbrew로 새로 마이너 버젼 업그레이드된 perl을 설치하면 예전 쓰던 모듈을 쓰기 위해서는 이전에 깔았던 모듈목록을 뽑아서 다 다시 설치해주는 번거로움이 있었다.

upgrade-perl을 쓰면 다음과 같이 가능하다.

<perl-5.16.3 버젼을 perl-5.16으로 설치한다. 본인의 경우 verbose -v옵션 스레드사용 -D=usethreads 추가>
$ perlbrew -v install perl-5.16.3 --as perl-5.16 -D=usethreads

(위에서 mod_perl이나 pgsql perl플러그인등 기타 어플리케이션에서 동적Perl라이브러를 연동시키려면 -Duseshrplib 을 추가하고 Dtrace를 사용하려면 -D=usedtrace 추가한다. 그 이외의 옵션은 사용자가 굳이 지정하지 않아도 가장 최적의 옵션을 자동으로 선택하므로 굳이 신경쓸 필요가 없다.)

<버젼을 스위치 한다.>
$ perlbrew switch perl-5.16


<설치된 perl목록보기>
$ perlbrew list
* perl-5.16 (5.16.3)
^-괄호안에 5.16 이름으로 실제 설치된 버젼명이 표시된다.

나중에 5.16.4 버젼이 나왔다고 하면

$ perlbrew upgrade-perl

이라고 하면 위의 경우에는 현재 사용하는 Perl의 바이너리 호환이 되는 버젼(5.16.x)의 최신 버젼이 설치되며 기존에 설치해놓았던 모듈을 그대로 사용가능하다.

더 자세한 내용은 아래링크 참고

https://metacpan.org/module/GUGOD/App-perlbrew-0.59/bin/perlbrew#COMMAND:-UPGRADE-PERL

http://jptrans.naver.net/j2k_frame.php/korean/blog.64p.org/entry/2013/03/13/150202

http://www.modernperlbooks.com/mt/2013/03/upgrade-in-place-with-perlbrew.html