■ [訂正] Webプログラミング実力アップ Part1 正しいPerl/CGIの書き方:ITpro
以前、日経ソフトウエア2007.03(1月24日発売)に書いた特集記事が Webプログラミング実力アップ Part1 正しいPerl/CGIの書き方:ITpro ──Webプログラミング初心者からの脱出の手引き としてITpro上で公開されましたが、その間にCPANモジュールのModule-Starterのバージョンアップがあって、module-starterが動作しない例がありました。
■ 問題点
module-starter を実行すると Unknown placeholder
2007年10月23日 [perl][programming]module-starter --module=My::Yakudoshi したら Unknown placeholdercpanを使ってみる - いつの間にか27歳日記in Makefile.PL と言われた。
sudo perl -MCPAN -e shell
get Module::Starter
force install Module::Starter
が、いざ使ってみるとやっぱり。
Unknown placeholder <MAIN PM FILE> in Makefile.PL
むむ~~。
たしかに、最新の Module-Starter-1.44(Ricardo SIGNES 版)だとうまくいかない模様。
同様の指摘を古川さんよりメールでいただきました。
■ 解決方法
古いバージョンの Module-Starter-1.42(Andy Lester 版)をインストールする。
$ cpan P/PE/PETDANCE/Module-Starter-1.42.tar.gz
このようにすると、記事中の module-starter --module=My::Yakudoshi がうまく実行できると思います。
■ pmsetupを使う(別の解決方法)
正直、Module::Starter::PBP は Damian Conway臭が強すぎるので、結局自分でモジュールのテンプレートを弄るのであれば、 宮川さん作のpmsetupを使う手もあります。
テンプレートが一つのファイルにまとまっているのでカスタマイズが容易で、svkとの連携も簡単です。
pmsetup のインストール手順
$ wget http://svn.yappo.jp/repos/public/misc/pmsetup $ vi pmsetup $ sudo install -m 0755 pmsetup /usr/local/bin
実行には Template, YAML, Module::Install, Test::Perl::Critic の CPANモジュールが必要です。事前にインストールしてください。
$ cpan Template $ cpan YAML $ cpan Module::Install $ cpan Test::Perl::Critic (エラーが出る場合はforce installしてください)
pmsetup初回実行時には以下の項目を聞かれるので自分用の設定を入力します。
Your name: [] Yoshinori TAKESAKO Your email: [] takesako{at}shibuya.pm.org Your svk base scratch DEPOTPATH: [//scratch] [] //scratch Your svk base mirror DEPOTPATH: [//mirror] [] //mirror Your workdir: [/home/takesako/tmp] /home/takesako/tmp
pmsetup でモジュールを作る
$ pmsetup My::Yakudoshi $ cd My-Yakudoshi $ perl Makefile.PL $ make test $ make manifest (MANIFEST の作成) $ make dist (tarball の作成)
これをカスタマイズして、自分用のpmsetupを作ってみるのもいいと思います。
以上、ご参考まで。
コメント
引用元の記事「cpanを使ってみる - いつの間にか27歳日記」にもありましたが、
Test::Perl::Critic
のインストールもトラブってくれます。
折角の記事も、手元で動作確認できなければ、今後の展開の考えようもありません。
投稿者: ac | 2007年10月30日 03:45
acさん、ご報告ありがとうございます。
もしも Test::Perl::Critic のインストールがうまくいかない場合は
$ cpan
> force install Test::Perl::Critic
> quit
でいかがでしょうか。CPANシェルの使い方については別途参照してください。
投稿者: takesako | 2007年10月30日 10:05
ご返答ありがとうございました。
「Weblog on mebius.tokaichiba.jp」
http://ynomura.dip.jp/archives/2007/10/modulestarterpb.html#more
に対応方法の記述がありました。
PBP.pm の 2関数を修正し、
"Unknown placeholder in Makefile.PL"
というエラーは解決しました。
また、Test::Perl::Critic の件は、cpan プロンプトから
force install Perl::Critic
force install Test::Perl::Critic
でインストールされ、記事内容の確認ができました。
Class::Accessor::Fast のインストールも必要でした。
以上報告です。
「今後の展開」なのですが、「この記事に推奨してある方法で、推進します。」というアプローチが日経世代の上司には相当有効なので、記事通りの動作を再現できたので、当初の目論みでいけそうです。
ありがとうございました。
投稿者: ac | 2007年10月31日 00:38
今更通りすがりで恐縮ですが、
Module-Starter-1.470
をインスコしたら問題なく利用できました。
投稿者: rochefort | 2008年01月30日 01:25