Snow Leopard で Perl (minicpan + cpanp) 環境を作る

MacPorts で,perl5 -> perl5.8(5.8.9) と perl5.10(=5.10.1) があるけど,
標準のperl が5.10.0 だとか.わけわからん.

これは,/opt/local/bin/perlシンボリックリンクする方法.
この方法は,あんまり好きくないんだけど,*1
/opt/local/bin/cpanp-5.10 とかがshebang で /opt/local/bin/perl を見てる(何故?)ので,
仕方がないかな.
自分でPerlコンパイルした方が楽な気もするけど,
とりあえずMacPortsPerl のパス(/opt/local/bin/perl) を使うことに固執してみる.

local::lib で,cpanp -> minicpan ができるとこまで.

$ sudo port install perl5.10
$ sudo port deactivate perl5.8
$ cd /opt/local/bin
$ for f in perl5.10 perldoc-5.10 pod2man-5.10; do g=`s/5\.10$//;s/-$//;`; sudo ln -s $f $g; done
$ wget http://search.cpan.org/CPAN/authors/id/A/AP/APEIRON/local-lib-1.004007.tar.gz
$ tar zxf local-lib-1.004007.tar.gz
$ cd local-lib-1.004007
$ which perl
/opt/local/bin/perl
$ perl Makefile.PL --bootstrap; make; make install
$ perl -I $HOME/perl5/lib/perl5 -Mlocal::lib >> ~/.zshrc
$ source ~/.zshrc
$ perl =cpanp-5.10 CPANPLUS --force
$ export PATH=$HOME/perl5/bin:$PATH
$ cpanp -v | egrep Usin
*** Using CPANPLUS::Backend v0.88.
$ head -1 ~/perl5/bin/cpanp
#!/opt/local/bin/perl
$ cpanp 's conf prereqs 1; s save'
$ cpanp i Compress::Zlib --force # 他のモジュールをインストール時にエラーるので入れとく
$ cpanp i CPAN::Mini
$ rehash
$ minicpan -r http://ftp.jaist.ac.jp/pub/CPAN -l ~/minicpan
$ cpanp
CPANP> s reconfigure
Selection to configure
> 7 - Select mirros
Wold you like to keep your current hosts?
> n
Please choose an option:
> 2
Additionals host(s) to add:
> file:///<HOME>/minicpan
> <RET>
Pleas pick one of the following options or Quit when you are done
> 1
> 3 - Asia
> 5 - Japan
> 9 10 11 12 - jaist, nara riken, yamagata
> 20 - Quit
Selection to configure
> 9 - Save & exit
CPANP> s mirrors
        [1] file:///<HOME>/minicpan
        [2] http://ftp.jaist.ac.jp/pub/CPAN
        [3] http://ftp.nara.wide.ad.jp/pub/CPAN
        [4] http://ftp.riken.jp/lang/CPAN
        [5] http://ftp.yz.yamagata-u.ac.jp/pub/lang/cpan
> q
$ 

補足

  • 途中で Compress::Zlib を入れてるのは,5.8.9 のlib を見てて,怒られたので入れ直した.
  • cpanp の設定で依存は自動的に入れる設定にした.(s prereqs 1)
  • =cmd は zsh で使える `which cmd` と思ってください

これで,/opt/local/bin/perl で起動する $HOME/perl5/bin/cpanp を使って,
主に $HOME/minicpan から
$HOME/perl5 配下にモジュールがインストールされようになった.

*1:/opt 配下は触りたくない派.