by @nyarla

Sinatraライクなmicro web application framework `Dancer`をインストールしてみた

概要: Dancerをインストールしたときに詰まったことのメモ


簡単な Web Application を作りたいなと思い、Web Application Framework を物色していたのですが、 とりあえず PSGI/Plack を見て、 Dancer がよさげだったので、 とりあえずインストールしてみました、という話。

で、Dancerは CPAN に upload されているので、いつものように、

$ cpan
(省略)
cpan [[1]] > install Dancer

としたのですが、なんかいくつかのテストが FAIL しました。

で、とりあえず cpan shell で、

cpan [[2]] > look Dancer

として、prove使ってテストを手動で実行するものの、同じところで FAIL。

んで埒が明かないということで、実際のテストコードを見たところ、 どうも Dancer の実装とは直接関係なさそうな、HTTP レスポンスやらのパースでこけてるっぽかったので、 これは多分LWPが古いせいだろうということで、

cpan [[3]] > i LWP

として(実際にはi HTTP::Messageとしてたけど)LWPのバージョンを確認、 するとちょっとばかりバージョンが古かった(メモってないので元のバージョンは忘れた)ので、

cpan [[4]] > install LWP

としてLWPをアップデート。

と思ったら、これもまたなんかテストが FAIL してたので、 多分LWPが使用している関連モジュールが古いせいじゃないか? と思って、LWPMakefile.PLを閲覧、cpan shell で片っ端から依存モジュールを

cpan [[5]] > i {module}
(バージョンが出る)
cpan [[6]] > install {module} # 古かったらアップデート

という感じでアップデートして、もう一回

cpan [[7]] > install LWP

したところ、今度はちゃんとテストが通って、アップデートが終了した。

んで、これでもう大丈夫だろうということで、

cpan [[8]] > install Dancer

して、今度はちゃんとテストも通りモジュールもインストールされました。

まあ今回いえることは、他のモジュールでもそうですが、 他の testers の環境ではテストが通ってるのに、自分の所でテストが妙な感じで FAIL する場合は、 依存モジュールを最新のにアップデートすると問題が解決する場合がある、 という感じです。

まあもっともアップデートに慎重さが要求される場合、例えば Catalyst の Moose への移行とか、 モジュールに大きな変更が加えられた場合なんかには、 依存モジュールをうかつにアップデートするとはまることになるかも知れません。

とりあえず今回はDancerをインストールする際にLWPのアップデートが必要だった、 ってことをメモしておきます。

まあDancerの使い方はこれから調べることにしよう。

#FIXME