Catalystインストール(#0)

PerlでWebアプリを開発する際に人気なフレームワークといえばCatalystが定番になりつつありますが(≠CiscoSwitch!!)お勉強をかねてインストールしてみました。ちなみに開発環境はVMWarePlayer上のCentOS4.3。

例によってWEB+DBマガジンに連載中の伊藤直也さんのCatalyst入門を参考にさせていただきました。
WEB+DB PRESS Vol.32

CatalystCPANからインストールします。


perl -MCPAN -e 'install Task::Catalyst'

すると対話式にいくつかModuleの追加を聞かれますがデフォルトのままEnter連打。
猛烈な勢いでCPANからモジュールをDLしてきます。DL後のmakeまであわせるとかなり時間がかかりました。
(僕の環境では1時間〜2時間程度かかりました)
初期インストールは時間があるときにやらないと結構危ないです。

通常なら?上記コマンドで一発で行くようです。
んが、僕の環境では途中のmakeに失敗するやら、インストールがコケルやらでうまくいかず。
cleanしたり、getしたり4、5回ほど繰り返しましたがことごとく失敗。
この時点ですでに半日以上時間を費やす。|ι´Д`|っ 
もう気分は萎えモード。;y=ー(´Д`;)・∵. 

  • Perl5.8.8インストール

どうやら調べてみると、CatalystPerlの5.8.6以上が必要らしい。ローカルはv5.8.5。早速バージョンアップを。
http://perl.comからDL。現時点で最新版は5.8.8のようです。

現行のPerl環境も残しおくために、最新版は/usr/local/perlにインストール。INSTALLを読むとprefix指定やデフォルトオプションの選択が指定できるようなので、以下のコマンドで実施。


sh Configure -Dprefix=/usr/local/perl -de && \
nice -19 make && make test

要した時間は51分。(time)
無事に/usr/local/perlにPerl5.8.8がインストールされました。

しかし、このままでは、デフォルトインストールされている/usr/bin/perlを実行します。インストールしたperlを実行できるようにシンボリックリンクを張ります。


#mv /usr/bin/perl /usr/bin/perl.org
#ln -s /usr/local/perl/bin/perl /usr/bin/perl


perl -v

インストールしたperl環境を環境変数に追加します。
追加する変数はPERL5LIB、PATH。
ユーザの環境変数に追加する方法もありますが、ここでは、/etc/profile.d/perl5.8.shを作成し全てのユーザの環境変数に追加したいと思います。


#!/bin/sh
PERL_PATH=/usr/local/perl
if [ ! -d "$PERL_PATH" ] ;then
export PERL5LIB=${PERL_PATH}/lib
export PATH=${PERL_PATH/bin:$PATH
fi

ログインしなおすか、sourceコマンドを利用して環境変数を適応し、ようやくPerl5.8.8が適応されました。
ここまでに更に半日以上を費やす。。

さて、遠回りしましたが、ようやくCatalystのインストールです。


perl -MCPAN -e 'install Task::Catalyst'
こんどはサクッと行きます。

Task::CatalystだけではHelperスクリプトがインストールされなかったので、追加で以下を実施。


perl -MCPAN -e 'install Catalyst::Helper'

インストールはここまで。(DB使う場合は追加でClass::DBIやDBD::XXが必要。)

フレームワーク使った際にいつも気にかかるのがアプリのリリースなんですが、Catalystの場合はどうなんでしょ?
ローカルマシンでBuildしたコードを他のサーバにデプロイする際ってCatalystモジュールがインストールされていないと利用できないとなると厳しい。どっかのディレクトリ配下をtarでアーカイブしてリリースぐらいにならないと仕事では使いずらいなぁ。。と思っていたのですが、

このCatalystPerlインストールトラブル中に、ながれるプロンプトをぼーっと見ていて気づいたのですが、CPANモジュールは新しくインストールしたperl環境にインストールされています。ということは、必要なCPANモジュールをコンパイル&インストールしたPerl(/usr/local/perl)をアーカイブして他の環境にデプロイすれば(OS、H/Wが同一であれば)そのまま動くということを発見。

Catalystいいかもしれない。w
#貴重な土日のほぼ全てをコレに費やしたが。。(;゚д゚)ァ....

次回はCatalystを使った簡単サンプルアプリを作ってみたいと思います。