カラクリサイクル

『輝かしい青春』なんて失かった人の雑記

Cygwin環境にperlbrewを導入した

概要: perlbrewで複数のversionのperlを使う


今まではCygwinのperlを使ってたんですが、Cygwinのperlに当てられたpatchのせいなのか、 Mooseが謎のエラー吐いて使えなかったり、DateTimeが何故か機能しないということもあって散々だったので、 思い切ってオリジナルのPerlを導入するために、perlbrewを使ってみることにしました。

というわけで今日はその作業ログ。

0. 参考にしたページ

今回、

という記事を参考に作業を進めました。

ちなみに上記の記事はよくまとまっているので、僕の記事よりそっち見に行ったほうがいいかもしれません。

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::libcpanの設定を必要とするようで、なんか最初

$ cpanm local::lib

したときはタイムアウトしました。で、その際-vオプションつけてね、見たいな出力が出てきたので、 -v つけてインストールをしてみたら、cpanの設定プロンプトが出てきたので、 そのままcpanの設定したらインストールができましたとさ。

5. 以上で終了です。

というわけで、Cygwin環境にperlbrewを導入したという話でした。

ちなみにこの後問題のMooseをインストールしてみたんですが、 なんと無事に謎のエラーも出ることなくインストールが完了しました。

あと実際にはこの作業は昨日にやってて、この記事の大体を昨日に書いて今日加筆修正してるって感じです。

それと、今日なんとなくついでに今現在このBlogをホスティングしている、 さくらインターネットのスタンダードプランでもperlbrewを導入してperl-512.2をインストールしたりしたました。 まあさくらインターネットのサーバはやっぱりFreeBSDだけあってか、結構早くインストールがおわりました。 まあまだモジュールとかは入れてないけどね。

というわけで、以上perlbrewの話でした。