読者です 読者をやめる 読者になる 読者になる

CPAN::Packager 0.072 released !

CPAN::Packagerでは依存関係を再帰的に辿りながら、そのモジュールに依存するもの全てパッケージを作る事が出来るツールです。YAPCに向けて足りない機能を何点か追加して、一通り機能が揃ったのでリリースしました。今回の版では、walf443さんの協力もあり、Debian版についてもかなりのモジュールがビルドできるようになっています。

基本的なポリシーは9割のモジュールの自動ビルドをできるようにすることで、そのために依存関係の間違いをconfigで修正したり、それでもダメな場合に手動で修正したソースモジュールを指定するための機能などを持っています。現実的には、一定数以上のモジュールが何らかの間違いがあり、それを前提にしたツール設計になっています。

類似ツールとしては、CPANPLUS::Distなどもあるのですが、使ってみるとわかりますが、HTTP::EngineMooseなどのモジュールをパッケージングしようとすると、そもそも途中でビルドが失敗してしまうので使えません。若干大きめのモジュールをビルドしようとしたときに差が明白にでます。色んな点が差があるのですが、依存モジュール毎に依存関係の設定を調整する事ができないというのがあります。これは、モジュールそのものの依存関係設定が間違っていないという前提にたっているからで、上で書いたようにこれだと依存関係のあるモジュールを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++