CPAN モジュールを deb パッケージ化

CPAN モジュールを dpkg とか aptitude でインストールできるように deb パッケージ化してみる。

まずは、CPAN モジュールを deb パッケージにするために必要なコマンド、dh-make-perl をインストールする。

# aptitude install dh-make-perl

dh-make-perl の使い方はこんな感じ。--notest オプションを付けるとテストをスキップしてくれますが、個人的にはおすすめ出来ないです。

# dh-make-perl --cpan モジュール名 --build

別に root じゃなくても実行できるけど、一般ユーザだとこけるときもあるので、root で実行するのをおすすめします。

とりあえず例として、Readonly モジュールを deb パッケージ化してみる。

# dh-make-perl --cpan Readonly --build

実行後、成功すると以下のファイルが出来上がるので、dpkg なり aptitude でインストールすることができる。(aptitude でインストールするときは、sign したりする必要がある。ここでは割愛します)

libreadonly-perl_1.03-1_all.deb

依存パッケージがあったりする場合には、--depends オプションを使ってパッケージを指定する。(XML::XPathEngine で説明。特に意図はないです)

# dh-make-perl --cpan XML::XPathEngine --build --depends 'libmodule-install-perl (>= 0.64-1)'


僕が考える、deb パッケージ化するメリットは、

  1. サーバが Debian の場合インストールするのが容易になる
  2. 商用で使う場合で問題になりがちな、バージョンの差異をなくすことができる

あと、デメリットも、

  1. そもそも deb パッケージにするのが面倒くさい
  2. 依存関係を自動で解決してくれない(自分で --depends オプションを指定する必要有)

メリットの2が個人的には大きいと思いますが、デメリットの2が大きくのしかかってきます。これを自動化できるようなスクリプトを書くと幸せになれるかもと思います。