Perlモジュールの開発環境を整えるいち手法をまとめる。
最近だとModule::Setupが使われている?ぽいのですが、このエントリではModule::Starter::PBPを使ったやり方について書く。
(もう野良.pmファイルをhogeるのは嫌なのじゃよ〜><)
対象環境
LinuxもしくはMacOSX Leopardが対象。
Windows環境でのやり方はわかりません><
必要なモジュールのインストール
何はともあれ、セットアップに必要なCPANモジュールをインストールする。
Module::Starter::Smartは、モジュール開発中に同じパッケージ以下にさらにモジュールを追加したくなったときに必要なので入れておくべき。
$ sudo cpan -i PPI
$ sudo cpan -i Module::Build
$ sudo cpan -i Test::Pod
$ sudo cpan -i Test::Pod::Coverage
$ sudo cpan -i Test::Perl::Critic
$ sudo cpan -i Module::Starter
$ sudo cpan -i Module::Starter::PBP
$ sudo cpan -i Module::Starter::Smart
Module::Starter::PBPの初期設定
これで「~/.module-starter/PBP/」というディレクトリがホームに出来る。
$ perl -MModule::Starter::PBP=setup
Please enter your full name: YourName
Please enter an email address: mailaddr@example.com
一部ひな形となるファイルの修正が必要なので、対応する。
Module.pmを下記のように修正する。
$ vi ~/.module-starter/PBP/Module.pm
また、Makefile.PLにも修正が必要なので、下記内容に書き換える。
use version; $VERSION = qv('0.0.3');
# ↓
use version; our $VERSION = qv('0.0.3');
$ vi ~/.module-starter/PBP/Makefile.PL
use lib qw(lib);
use Module::Build::Compat;
Module::Build::Compat->run_build_pl(args => \@ARGV);
Module::Build::Compat->write_makefile(build_class => 'Module::Build');
Module::Starter::Smartの設定
Module::Starter::PBPだけでは一つのpmファイルしか作れないので、ちょっと凝ったモジュールを作ろうとすると少々面倒。
なので、Module::Starter::Smartの設定も併せて行なっておく。
(※Module::Starter::Smartはインストールしただけでは有効にならないので注意)
下記のように「Module::Starter::Smart」という記述を追加する。
$ vi ~/.module-starter/config
plugins: Module::Starter::PBP Module::Starter::Smart
モジュールのひな形を作る
ここまでで、Module::Starter::PBP周りの設定ができたので、任意のディレクトリでモジュールの開発を始められる。
モジュールのひな形を作るには、下記コマンドを利用する。
このコマンドによって、カレントディレクトリにモジュールのひな形が生成されるので、あとはがしがし開発していけばOK
module-starter --module=MODULE::NAME
モジュールを追加する
機能毎、あるいはMooseなどでクラスを分けるときに、.pmファイルを追加したい要求が出他場合、下記コマンドで.pmファイルを現在のひな形に追加できる。
$ module-starter --module="MODULE::NAME::ADDMODULENAME" --distro="MODULE-NAME"
ビルドのテスト
開発が出来たら、ビルドできるかどうかテストする。
$ cd MODULE-NAME
$ perl Build.PL
$ perl Build
$ perl Build test
パッケージング
ビルドまでウマくいったら、後は配布可能な形にパッケージングするだけ。
まず、ひな形のBuild.PLファイルに、依存しているモジュールを追記する。
$ vi Build.PL
次に、パッケージングに不要なファイルを除くためのMANIFEST.SKIPファイルを作成
requires => {
'Test::More' => 0,
'version' => 0,
# この行以下に依存モジュールを追記
},
$ vi MANIFEST.SKIP
ここまでできたら、MANIFESTファイルを作成してパッケージングする。
\bRCS\b
\bCVS\b
^MANIFEST\.
^Makefile$
^Build$
^Build.bat$
^_build/
\.(bak|tdy|old|tmp)$
~$
^blib/
^pm_to_blib
\.cvsignore
\.gz$
「perl Build disttest」は、作成したディストリビューションの動作確認を行なうものなので忘れずに実施したい。
$ perl Build manifest
$ perl Build dist
$ perl Build disttest
ここまでやると、カレントディレクトリに「MODULE-NAME-v0.0.3.tar.gz」という名前のファイルが出来上がる。
モジュールを配布したい場合はこのアーカイブを利用すればOK
参考サイト
正しいPerl/CGIの書き方
はじめてのPerlモジュール開発メモ
Module-Starterのカスタマイズ
Module::Starter使ってみる

0 コメント:
コメントを投稿