Perl の CPAN モジュールを自動で RPM に変換する
Linux 環境に Perl のモジュールを追加導入することはよくあります。しかし、そのインストールに RPM を使ったり、CPAN で行なったり、Tarball からコンパイルしたり、別のサーバから取ってきたファイルをただ抛り込んだりと、いろいろな方法で行なっている場合、次第に管理ができなくなってしまいます。複数のバージョンが混在してバグの原因にもなりかねません。
Red Hat 系の Linux の場合は、パッケージ管理を RPM で行なうのがお約束というか流儀です。RPM を使っていればファイルの衝突や依存関係のチェックもしてくれますし、不要になればきれいにアンインストールもできます。ところが、実際には利用したいモジュールの RPM が存在しないということが往々にしてあります。そんな場合でも私は RPM を自分で作ってからインストールしていますが、そんなことができる人も少ないのではないでしょうか。ちなみに私がパッケージした Red Hat Linux 9 向けの RPM は、rpm.fumika.jp で公開しています。
また、CPAN コマンドが便利だというのも確かです。そこで紹介したいのが、cpan2rpm です。cpan2rpm はその名の通り、CPAN 経由で Perl モジュールを取得し、RPM にパッケージしてくれるという優れものです。モジュールができたら rpm -i コマンドでインストールするだけなので管理も楽々です。
cpan2rpm は Red Hat Linux には含まれていませんが、Fedora Project のリポジトリから入手できます。本稿執筆時点での最新版は cpan2rpm-2.026-0.fdr.1.noarch.rpm です。これをダウンロードしてインストールします。
# wget http://download.fedora.us/……/cpan2rpm-2.026-0.fdr.1.noarch.rpm # rpm -K cpan2rpm-2.026-0.fdr.1.noarch.rpm # rpm -ivh cpan2rpm-2.026-0.fdr.1.noarch.rpm
さて、使い方は簡単です。基本的には cpan2rpm モジュール名 とするだけです。たとえば、URI::Find モジュールの RPM を作りたければ、
$ cpan2rpm URI::Find
とします。まず CPAN が動作して URI::Find モジュールをダウンロードして、RPM の spec ファイルを自動生成して、RPM を作ります。.rpmmacros ファイルにGPG 署名の設定がしてあれば、RPM に署名もつけてくれます。できあがったファイルは、/usr/src/redhat/RPM および /usr/src/redhat/SRPM ディレクトリ下に置かれています。
もちろん、Perl モジュールに依存関係がある場合は、先に必要なモジュールをインストールしておかなければなりません。たとえば、Perl の GD モジュールをパッケージしたい場合には、Linux の gd パッケージがインストールされている必要があります。Perl モジュール間でも依存関係が生じる場合があります。cpan2rpm には様々なオプションがあのますので、cpan2rpm --help として調べてみて下さい。
コメントはまだありません
No comments yet.
Sorry, the comment form is closed at this time.