CPANモジュールをRPM化する
CentOS, Fedora 系の Linux には、cpan2rpm というコマンドがあり、これを使
うことで、CPAN モジュールを RPM 化できるようです。依存モジュールを書くこ
とで依存モジュールも一緒にインストールしてくれる素敵仕様です。
コマンドのインストールは以下のように行います。
$ wget http://search.cpan.org/CPAN/authors/id/E/EC/ECALDER/cpan2rpm-2.028.tar.gz $ tar xvzf cpan2rpm-2.028.tar.gz $ cd cpan2rpm-2.028 $ perl Makefile.PL $ make $ make install
実際の RPM は以下のように作ります。当然ここに書いた依存モジュールも RPM
化しないと駄目です。
$ cpan2rpm Catalyst::Runtime \ --require 'perl(Class-Accessor)' \ --require 'perl(Class-Data-Inheritable)' \ --require 'perl(Class-Inspector)' \ --require 'perl(CGI-Simple)' \ --require 'perl(Data-Dump)' \ --require 'perl(File-Modified)' \ --require 'perl(HTML-Parser)' \ --require 'perl(HTTP-Body)' \ --require 'perl(HTTP-Request-AsCGI)' \ --require 'perl(libwww-perl)' \ --require 'perl(Module-Pluggable)' \ --require 'perl(NEXT)' \ --require 'perl(Path-Class)' \ --require 'perl(Text-SimpleTable)' \ --require 'perl(Time-HiRes)' \ --require 'perl(Tree-Simple)' \ --require 'perl(Tree-Simple-VisitorFactory)' \ --require 'perl(URI)' \ --require 'perl(Text-Balanced)' --make-no-test $ cpan2rpm Template-Toolkit \ --require 'perl(Template::Stash::XS)' \ --require 'perl(AppConfig)' \ --require 'perl(File::HomeDir)' \ --make-no-test $ cpan2rpm AppConfig $ cpan2rpm CGI-Simple $ cpan2rpm Class-Accessor $ cpan2rpm Class-Data-Inheritable $ cpan2rpm Class-Inspector $ cpan2rpm Data-Dump $ cpan2rpm File-HomeDir $ cpan2rpm File-Modified $ cpan2rpm HTML-Parser $ cpan2rpm HTTP-Body $ cpan2rpm HTTP-Request-AsCGI $ cpan2rpm Module-Pluggable $ cpan2rpm NEXT $ cpan2rpm Path-Class $ cpan2rpm Template::Stash::XS $ cpan2rpm Text-Balanced $ cpan2rpm Text-SimpleTable $ cpan2rpm Time-HiRes $ cpan2rpm Tree-Simple $ cpan2rpm Tree-Simple-VisitorFactory $ cpan2rpm URI $ cpan2rpm libwww-perl
ちなみに「Can't locate object method "interpolate" via package "Pod::Text" at /usr/bin/cpan2rpm line xxx.」と表示されたら、/usr/bin/cpan2rpm の Pod::Text を Pod::Parser に書き換えるとうまくいくようです。