준호씨의 블로그

perl - perlbrew 로 여러 버전의 perl 사용하기 본문

개발이야기

perl - perlbrew 로 여러 버전의 perl 사용하기

준호씨 2017. 11. 27. 21:39
반응형

하나의 시스템에서 여러버전의 개발언어를 설치 하고 스위칭 해가며 사용해야 될 경우가 있다. node 에는 nvm, java 에는 jenv 가 있듯이 perl 에는 perlbrew 가 있다.

https://perlbrew.pl/ 에 가서 설치 가이드를 따라 설치 해서 사용 하면 된다.

설치

\curl -L https://install.perlbrew.pl | bash

curl 이 없다면

# Linux
\wget -O - https://install.perlbrew.pl | bash

# FreeBSD
\fetch -o- https://install.perlbrew.pl | sh

이미 perl 이 설치된 환경이라면

sudo cpan App::perlbrew
perlbrew init

~/.zshenv 에

source ~/perl5/perlbrew/etc/bashrc

를 추가 해 주고 터미널에 다시 들어 오고나 직접 실행 해 준다.

perl 설치

5.18.2 설치

perlbrew install 5.18.2

5.26.1 설치

perlbrew install 5.26.1

테스트 실패로 설치가 중단된다면 --notest 나 --force 옵션을 넣고 설치 한다.

perlbrew --notest install 5.18.2
perlbrew --force install 5.18.2

특정 옵션을 추가 해서 설치 하고 싶은 경우

perlbrew install perl-5.18.2 -D usethreads

그냥 설치 하면 thread 가 비활성화 되는데 thread 사용이 필요 한 경우 추가 해 준다. 단 perl 에서 thread 사용은 권장하지 않는다.

참고: https://perldoc.perl.org/threads.html

The "interpreter-based threads" provided by Perl are not the fast, lightweight system for multitasking that one might expect or hope for. Threads are implemented in a way that make them easy to misuse. Few people know how to use them correctly or will be able to provide help.
The use of interpreter-based threads in perl is officially discouraged.

설치된 perl list 확인

$ perlbrew list
* perl-5.18.2
  perl-5.26.1

설치된 perl 정보

$ perlbrew info 5.18.2
Current perl:
  Name: perl-5.18.2
  Path: /Users/junho85/perl5/perlbrew/perls/perl-5.18.2/bin/perl
  Config: -de -Dprefix=/Users/junho85/perl5/perlbrew/perls/perl-5.18.2 -Aeval:scriptdir=/Users/junho85/perl5/perlbrew/perls/perl-5.18.2/bin
  Compiled at: Nov 27 2017 16:00:26

perlbrew:
  version: 0.80
  ENV:
    PERLBREW_ROOT: /Users/junho85/perl5/perlbrew
    PERLBREW_HOME: /Users/junho85/.perlbrew
    PERLBREW_PATH: /Users/junho85/perl5/perlbrew/bin:/Users/junho85/perl5/perlbrew/perls/perl-5.18.2/bin
    PERLBREW_MANPATH: /Users/junho85/perl5/perlbrew/perls/perl-5.18.2/man

Module: 5.18.2
  Location:
  Version: no VERSION specified


perl 스위칭

perlbrew switch 5.18.2
perlbrew switch 5.26.1

ex)

# 처음에는 선택된 perl 이 없음. 시스템 perl 을 사용하는 상태라고 볼 수 있음
$ perlbrew list
  perl-5.18.2
  perl-5.26.1
$ perlbrew switch 5.18.2
$ perlbrew list
* perl-5.18.2
  perl-5.26.1

perlbrew 로 설치한 모든 버전의 perl 로 테스트

$ perlbrew exec perl myprogram.pl
perl-5.18.2
==========
hello world


perl-5.26.1
==========
hello world


기타팁 - IntelliJ Perl 플러그인에서 세팅

perlbrew info <버전> 실행하면 Path 정보가 나온다. Path 정보가 아래와 같은 경우 마지막에 perl 빼고 bin 까지의 경로를 사용한다.
Path: /Users/junho85/perl5/perlbrew/perls/perl-5.18.2/bin/perl

참고


반응형
Comments