さくらインターネットでCPAN
さくらの共有サーバにCPANを、という話。しばしばotsuneさんの記事が引き合いに出されるのですが、うちのとは違うのか、そのままだとうまくいかんのよねーという部分があるのでちょっと書いておく。
さくらのシェルに入ったら、何の準備もしなくていいから、まずはCPANシェルを起動する。これまで何もしたことがなければCPAN 1.76の初回起動時の質問が出てくるので、適当に回答。肝の部分はcpan_homeを指定する部分と(これ、いまのさくらなら「/home/
で、さくらインターネット(FreeBSD版)に限れば、ここで.cshrcにsetenvを書く。一般的にはこのあと、Bundleをインストールしてから~/localの中身を調べて書いた方がわかりやすい。
setenv PATH /home/<yourname>/local/bin:$PATH setenv PERL5LIB /home/<yourname>/local/lib/perl5/5.8.8:/home/<yourname>/local/lib/perl5/5.8.8/mach:/home/<yourname>/local/lib/perl5/site_perl/5.8.8:/home/<yourname>/local/lib/perl5/site_perl/5.8.8/mach:$PERL5LIB
大事なのは、mach系のパスもPERL5LIBのなかに入れておくこと。少なくともうちの環境では、これをしないとTemplate-ToolkitやYAML::Syckを入れたはずなのに使えない、と嘆くことになる(借りているサーバの設定によっては違う可能性はある)。
確かめたければ、シェルから
perl -MDummy -e 'print $Dummy::VERSION'
のようにわざと存在しないモジュールを呼び出して、出てくる@INCを見てみるといい。.../mach とかいうディレクトリが入っているようならPERL5LIBにも .../mach が必要。
ここまで設定できたら、次はBundle::CPANをインストールする。たまに入りきらないファイルがあるけれど、とりあえず無視。Module::Buildが入っていればそれでいい。
入れたら、一度CPANから出て、再度起動。この段階でCPAN.pmとModule::Buildが最新の状態になっているので、今度はModule::Build関連の設定をしてくれと言われるはず。言われないようならPERL5LIBの設定を見直した方がいい。
で、画面の指示にしたがって、mbuildpl_argに「--install_base ~/local」と設定。あとはよいように。
その他、BSDPANや外部ライブラリとの共存についてはotsuneさんの記事にある通り。
――というのがうちの場合ですが、意外とハマっている人少ないようだし、otsuneさんのところだとまた違うのかな?