CPAN::Packager 0.072 released !
CPAN::Packagerでは依存関係を再帰的に辿りながら、そのモジュールに依存するもの全てパッケージを作る事が出来るツールです。YAPCに向けて足りない機能を何点か追加して、一通り機能が揃ったのでリリースしました。今回の版では、walf443さんの協力もあり、Debian版についてもかなりのモジュールがビルドできるようになっています。
基本的なポリシーは9割のモジュールの自動ビルドをできるようにすることで、そのために依存関係の間違いをconfigで修正したり、それでもダメな場合に手動で修正したソースモジュールを指定するための機能などを持っています。現実的には、一定数以上のモジュールが何らかの間違いがあり、それを前提にしたツール設計になっています。
類似ツールとしては、CPANPLUS::Distなどもあるのですが、使ってみるとわかりますが、HTTP::EngineやMooseなどのモジュールをパッケージングしようとすると、そもそも途中でビルドが失敗してしまうので使えません。若干大きめのモジュールをビルドしようとしたときに差が明白にでます。色んな点が差があるのですが、依存モジュール毎に依存関係の設定を調整する事ができないというのがあります。これは、モジュールそのものの依存関係設定が間違っていないという前提にたっているからで、上で書いたようにこれだと依存関係のあるモジュールをbuildするには上手くいかないですね。
以下、簡単な使い方です。
=encoding utf-8 =head1 NAME cpan-packager - PerlモジュールからRPMまたはDebianのパッケージを作るツール =head1 SYNOPSIS case1: 一つのモジュールをビルドする場合 sudo cpan-packager --module Test::Exception --builder Deb --conf conf/config.yaml case2: 複数のモジュールをビルドする場合 sudo cpan-packager --modulelist modules.list --builder RPM --conf conf/config.yaml options --module モジュール名 (必須) --builder Deb または RPM (optional. default is Deb) --conf 設定ファイル (必須) --always-build モジュールがインストールされていてもパッケージを生成するか (optional) --modulelist モジュールリストを含んだテキスト (optional) RPM/Deb パッケージは ~/.cpanpackager/{deb or rpm} に生成されます。 =head2 設定ファイルの置き場所とスキーマ config.yamlはgithubにあります。 See http://github.com/dann/cpan-packager/tree/master 設定ファイルのスキーマは、以下のように見る事ができます。 perldoc CPAN::Packager::Config::Schema =head2 CPANミラーの設定方法 CPAN::Packagerはcpan_mirrosに設定されたURLからCPANモジュールをダウンロードします。 cpan_mirrosは、設定ファイルに以下のように設定します。 --- global: cpan_mirrors: - http://ftp.funet.fi/pub/languages/perl/CPAN/ - file:///home/dann/minicpan =head2 Use cpan-packagerをminicpanと一緒に使う まず始めに、minicpanでCPANモジュールをミラーします。 minicpan -r http://ftp.funet.fi/pub/languages/perl/CPAN/ -l ~/minicpan 続いて設定ファイルでcpan_mirrorsにminicpanのURIを指定します。 --- global: cpan_mirrors: - file:///home/dann/minicpan =head2 Debianユーザーのための追加の設定 conf/debian/rules* のファイルを ~/.dh-make-perl にコピーします。 そうしないと、perllocal.podがdebian package生成時に衝突するエラーが発生します。 =head1 DESCRIPTION cpan-packagerはdebian, redhatのパッケージを作ります。 このツールで多くのパッケージを作る事ができ、perlモジュールのパッケージングを始めるのに、 とても役に立つでしょう。
Happy packaging!
開発は、以下の場所で行ってます。patches welcome !
http://github.com/dann/p5-cpan-packager/tree
# CDD++