CygwinにもperlbrewでPerlを入れてみた
perlbrewを入れてみたメモ - kanonjiの日記を頼りにCygwinにもperlbrewを入れてみました。色々CPANモジュール入れるのも、システムperlだとやり直しもきかないので入れたんですが、Cygwinだとちょっとハマりどころがありました。
$ perlbrew --notest --force install 5.14.2
普通に入れてたら、テストの途中で止まってしまいました。2回試したけど2回ともダメでした。
$ perlbrew --force install perl-5.12.2
したんですが、スレッド関係のテストがいつまで経っても終わらないという自体に遭遇したので、 (これは単に時間がかかりすぎてるだけかもしれないけど)テストをスキップするために、
$ perlberw --notest --force install perl-5.12.2http://blog.nyarla.net/2010/11/16/1
検索したらやっぱり止まってるってエントリーがあったので、これに倣って--notest --force
で入れました。
$ perlbrew list perl-5.14.2 $ perlbrew switch 5.14.2 $ eixt
http://d.hatena.ne.jp/tokuhirom/20100716/perlenvによると、ここで一旦shellを抜けて入り直した方が良いらしいので、改めてターミナルを起動します。
$ curl -L http://cpanmin.us/ | perl - App::cpanminus $ type cpanm cpanm is /home/myuser/perl5/perlbrew/perls/perl-5.14.2/bin/cpanm
cpanmがperlbrewで入れたperlの環境下に入ってます。
$ cpanm local::lib --> Working on local::lib Fetching http://search.cpan.org/CPAN/authors/id/A/AP/APEIRON/local-lib-1.008004.tar.gz ... OK Configuring local-lib-1.008004 ... OK Building and testing local-lib-1.008004 ... OK Successfully installed local-lib-1.008004 1 distribution installed $ ls perl5/perlbrew/perls/perl-5.14.2/lib/site_perl/5.14.2/local lib.pm
local::libは実は使い方をよく分かってないんだけど、最初にいれておくと何かと便利らしいので、とりあえず入れておきました。cpanmコマンドでちゃんとperlbrewの方にインストール出来てます。
$ cpanm Bundle::LWP $ cpanm Bundle::CPAN $ cpanm Task::Kensho
- Bundle::LWP - install all libwww-perl related modules - metacpan.org
- CPANモジュールをダウンロードする通信にLWPがあればそれを使うらしい*1ので、最初にいれておきます。
- Bundle::CPAN - Bundle to optimize the behaviour of CPAN.pm - metacpan.org
- CPANユーザのためのいろいろなモジュール。らしい。cpanmだと入れても意味のないモジュールとかもあるんだろうか?まぁ気にせず入れておく。
- Task::Kensho - A Glimpse at an Enlightened Perl - metacpan.org
- 2011年頃にTwitterで、モダンなモジュールが揃ってるから次はこれ入れれば良いやみたいな事を言ってる人が居たので、勝手に倣って入れました。
BundleとTaskの違いはよく分からないけど、どちらもCPANモジュールのひとまとめにしたセットです。それなりに大量のモジュールを入れていくけど、Cygwinだとかなり時間がかかります。あと、途中で3回程止まってました。Ctrl+c
でInterruptしてやり直したら、最終的にはインストールしきれましたけど。
PERLBREW_ROOT
$ vi .bash_profile #perlbrew export PERLBREW_ROOT=~/.perlbrew
perlbrewをインストールする前にPERLBREW_ROOT
を設定すると、インストール先を変更できます。pythonbrewに合わせてみるとか。
インストール直前に$ export PERLBREW_ROOT=~/.perlbrew
するだけだと、$ perlbrew
を実行したときに動作しないので注意。
5.15.9がインストールできない
$ perlbrew install 5.15.9
Fetching perl-5.15.9 as /home/myuser/perl5/perlbrew/dists/perl-5.15.9.tar.gz
Page not retrieved; HTTP error code 400 or above. at /loader/0x200b2a88/App/perlbrew.pm line 147.
Cygwinだからなのかは未確認だけど、5.15.9がインストール出来ませんでした。