WindowsXPでCatalyst使いたい!と言うことで挑戦してみた。
WindowsでCatalystを使うためにCPANでのインストールを挑戦してみた。 最初結構無謀かと思ったけど、なんとかなってしまったので色々とメモる。
最初に前提としてCPANでモジュールがインストール出来るようにしておくこと。
で、まずcpanでinstall CatalystするなりしてCatalystに必要なPerlモジュールを入れる。
cpanでエラーが出て入らなかった場合、PPMでインストールすると良いかも。
で、必要なモジュールが入れ終わって、Catalystのテストを実行するときnmakeが
NMAKE : U1095:
と言う感じのエラーを出す。
調べてみたところこれはnmakeへの引数が、OSの制限より長いことが原因らしい。 で、これを回避するためにCatalystのMakefileをちょっと改造する。
Makefileはcpanでinstall Catalystした時にCatalystの
ファイルが展開されたディレクトリ(cpan/build以下)にある。
で、MakefileのTEST_FILESという設定を見つける。
この項目にCatalystのすべてのテストが指定されているんだけど、 これがOSの制限を超えるほど長いので、
TEST_FILES = t/*.t
と言う感じにして、短くする。
これでテストは問題なくなるのでcpanに戻ってinstall Catalystをする。
自分の環境の場合、c3_mro.tというテスト以外はすべて通った。
で、c3_mro.tがWin32.pmが@INCから見つからないというエラーが出てたんだけど、 その@INCにActivePerlのCPANモジュールがインストールされたディレクトリが何故か含まれてなかった。
試しにPPMでWin32モジュール入れてみたものの、 相変わらずモジュールが見つからないとか言ってきたので、 試しにCatalystが展開されたディレクトリにもぐって、
prove -I lib t/c3_mro.t
と言う感じで単体でテストしたらちゃんと通ったので、テストが要求している動作はしていると判断、
force install Catalystして強制的にインストールした。
これでCatalyst本体は入ったので、他の開発用コマンドとか、
Catalystのプラグインとかそういったものを入れるためにinstall Task::Catalystする。
ちなみにこれは結構時間がかかった。
で、いくつかモジュールのインストールに失敗する->Catalystのプラグイン入らないと言うことがあったので、
PPMでこけたモジュールをインストール->cpanに戻ってinstall Task::Catalystと言うことを繰り返した。
ちなみにこのときどうもCatalyst::Plugin::Sessionが循環依存しているみたいでうまく入らなかった。 正確にはCatalyst::Plugin::Sessionが
- Catalyst::Plugin::Session::State::Cookie
- Catalyst::Plugin::Session::State::URI
を要求していて、上記二つもCatalyst::Plugin::Sessionを必要としているとかそんな感じ。
仕方がないので、展開されたCatalyst::Plugin::Sessionのディレクトリにもぐって、 Makefile.PLの上記二つのモジュールを要求する部分をコメントアウト、 んで、
perl Makefile.PL
nmake test
nmake install
して入れた。その後上記二つのモジュールをインストールした。
まあ、こんな感じでようやくCatalystのモジュールを入れ終わった。はっきりいってマゾい。 実のところPPMにCatalystはあったりするんだけど、実際にはバージョンがちょっと古かったりする。
で、ここまでやって、PPMでinstall Task::Catalystして必要なモジュールをインストール、
そのあとPPMでインストールしたCatalystをアンインストールして、
CPAN経由でCatalystの最新版入れればよかったなーとも思ったりするのが遅かった。
ちなみにこのエントリ作業しながら書いてて、実際作業し終わるのに2日かかりました。 要するにこのエントリ書き始めて二日目です。
とりあえずこれでWindowsでCatalyst使って開発できるようになった。 あとはちょっとづつ勉強しよう。
Comments
最新のコメント20件を表示しています