perlbrew で複数の version の perl を使う
今までは Cygwin の perl を使ってたんですが、Cygwin の perl に当てられた patch のせいなのか、Mooseが謎のエラー吐いて使えなかったり、DateTimeが何故か機能しないということもあって散々だったので、思い切ってオリジナルの Perl を導入するために、perlbrewを使ってみることにしました。
というわけで今日はその作業ログ。
0. 参考にしたページ
今回、
http://webtech-walker.com/archive/2010/04/22173415.htmlperlbrew + cpanminus + local::lib で環境構築 - Webtech Walker
という記事を参考に作業を進めました。
ちなみに上記の記事はよくまとまっているので、僕の記事よりそっち見に行ったほうがいいかもしれません。
1. perlbrew の導入
$ cd ~/tmp $ curl -LO -k http://xrl.us/perlbrew $ chmod +x perlbrew $ ./perlbrew install
ここまでで、落としてきたperlbrewは用済みで、今度はインストールされた perlbrew を使います。
まずは、perlbrewを初期化。
$ ~/perl5/perlbrew/bin/perlbrew init
そうするといくつかファイルが生成され、その中にシェルで読み込むファイルが出来上がるので、 そのファイルを読み込みます。
$ source ~/perl5/perlbrew/etc/bashrc
ちなみにこの読み込み部分は、各自の shell の設定ファイルに書いておくといいと思います。
2. perl-5.12.2 の導入
$ perlbrew install perl-5.12.2
で、普通はインストールできるんですが、僕の環境ではいくつかのテストがこけました。
それで次に、
$ perlbrew --force install perl-5.12.2
したんですが、スレッド関係のテストがいつまで経っても終わらないという自体に遭遇したので、 (これは単に時間がかかりすぎてるだけかもしれないけど)テストをスキップするために、
$ perlberw --notest --force install perl-5.12.2
しました。
ちなみにこの作業は結構時間がかかります。また作業中のログメッセージは、 上記コマンドの実行後の出力にも出てきますが、
$ tail -f ~/perl5/perlbrew/build.log
で確認できます。
で最後に、
$ perlbrew switch perl-5.12.2
すれば、先ほどインストールした perl に切り替わります。
3. cpanminus のインストール
ここから先はおまけですが、cpanコマンドは設定がめんどかったり、
メモリ食いだったりするので、ここでは miyagawa さん謹製のcpanminusを使います。
インストールは簡単で、
$ curl -L -k http://cpanmin.us | perl - -v App::cpanminus
するだけです。
4. ついでに local::lib もインストール
これもまたついでですが、local::libもなんとなくインストールしておきます。
$ cpanm -v local::lib
ちなみに僕の環境ではcpanの設定をせずにlocal::libをインストールしようとしたんですが、
どうもlocal::libはcpanの設定を必要とするようで、なんか最初
$ cpanm local::lib
したときはタイムアウトしました。で、その際-vオプションつけてね、見たいな出力が出てきたので、
-v つけてインストールをしてみたら、cpanの設定プロンプトが出てきたので、
そのままcpanの設定したらインストールができましたとさ。
5. 以上で終了です。
というわけで、Cygwin 環境にperlbrewを導入したという話でした。
ちなみにこの後問題のMooseをインストールしてみたんですが、
なんと無事に謎のエラーも出ることなくインストールが完了しました。
あと実際にはこの作業は昨日にやってて、この記事の大体を昨日に書いて今日加筆修正してるって感じです。
それと、今日なんとなくついでに今現在この Blog をホスティングしている、さくらインターネットのスタンダードプランでもperlbrewを導入してperl-512.2をインストールしたりしたました。まあさくらインターネットのサーバはやっぱり FreeBSD だけあってか、結構早くインストールがおわりました。まあまだモジュールとかは入れてないけどね。
というわけで、以上perlbrewの話でした。