Perl用久了, 總是有機會遇到這種情況, 就是你需要另一個版本的Perl
不管是要安裝新程式, 要除錯, 要測試, 或是你只是想玩玩
想安裝新版Perl又不想動到原本運作得很好的版本, 有了perlbrew就變得很簡單了
perlbrew的安裝, 參考 http://search.cpan.org/dist/App-perlbrew/lib/App/perlbrew.pm
請確認你有安裝curl, 然後執行以下命令:
1 |
curl -kL http://xrl.us/perlbrewinstall | bash |
這樣子perlbrew就安裝好了, 接著你可以使用以下命令將perlbrew加入你的$PATH中
或是將此命令加到~/.bashrc中, 就可以不用每次都執行此指令
1 |
source ~/perl5/perlbrew/etc/bashrc |
要怎麼知道有哪些版本可以安裝呢? 使用 perlbrew available 命令:
1 2 3 4 5 6 7 8 9 10 |
# perlbrew available perl-5.15.4 perl-5.14.2 perl-5.12.4 perl-5.10.1 perl-5.8.9 perl-5.6.2 perl5.005_04 perl5.004_05 perl5.003_07 |
看得出來從古老的版本到新版本都有, 由於我現有的版本是5.8.8, 所以來安裝5.10.1試試看
使用 perlbrew install perl-5.10.1 來安裝, 也可以偷懶只打版本號 perlbrew install 5.10.1:
1 2 3 4 5 6 7 |
# perlbrew install 5.10.1 Fetching perl-5.10.1 as /root/perl5/perlbrew/dists/perl-5.10.1.tar.gz Installing /root/perl5/perlbrew/build/perl-5.10.1 into ~/perl5/perlbrew/perls/perl-5.10.1 This could take a while. You can run the following command on another shell to track the status: tail -f ~/perl5/perlbrew/build.log |
在這個畫面會一直停留到安裝好為止, 安裝時間視硬體設備而定, 我想十幾分鐘跑不掉
所以想要知道安裝進度的話, 就另開一個終端機, 使用這個指令看進度:
1 |
tail -f ~/perl5/perlbrew/build.log |
若是需要調整一些選項, 可以在 perlbrew install 後面加上 -D -U -A 等等參數
例如我需要Perl支援thread跟64bit等等的, 就這樣用:
1 |
perlbrew install 5.14.2 -Dusethreads -Duse64bitall |
等安裝好了以後, 我們可以用 perl -v 來確認現在跑的是什麼版本:
1 2 3 4 5 |
# perl -v This is perl, v5.8.8 built for x86_64-linux-thread-multi Copyright 1987-2006, Larry Wall |
目前跑的是5.8.8, 使用 perlbrew switch來切換:
1 2 3 4 5 6 |
# perlbrew switch 5.10.1 # perl -v This is perl, v5.10.1 (*) built for x86_64-linux Copyright 1987-2009, Larry Wall |
你看, 馬上就變成 5.10.1 了, 真是簡單又方便
當需要測試多個版本時, perlbrew還允許你一次讓所有的版本都執行同樣的指令:
1 2 3 4 5 6 7 8 9 10 |
# perlbrew exec perl -E 'say "Im in Perl v$]\n"' perl-5.10.1 ========== Im in Perl v5.010001 perl-5.12.4 ========== Im in Perl v5.012004 |
這真是太神奇了阿滋
perlbrew 主要的指令有:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# 啟動 perlbrew init # 選擇一個鏡像站 perlbrew mirror # 看有哪些版本可以安裝 perlbrew available # 安裝你要的版本 perlbrew install 5.14.0 perlbrew install perl-5.8.1 perlbrew install perl-5.13.6 # 看看已安裝的版本 perlbrew list # 切換 Perl, 這會影響到之後的shell perlbrew switch perl-5.12.2 perl -v # 切換Perl, 只在當前shell有效 perlbrew use perl-5.8.1 perl -v # 回到系統預設的Perl perlbrew off # 使用所有已安裝的版本來執行程式 perlbrew exec perl -E 'say $]' |
另外,這篇介紹也蠻詳細的:http://www.openfoundry.org/tw/tech-column/8514-perlbrew-perl-installation-management-tool