cpan2rpm

cpan2rpm は perl の CPAN パッケージを rpm として扱えるようにするソフトウェア。 CPAN からのダウンロード、src.rpm の作成、コンパイル、インストールまで自動実行できます。 ちょっとだけ はまる部分もあるので、それについても記載します。

イマドキは cpanspec を使うものらしいです。

インストール方法

http://perl.arix.com/cpan2rpm/
http://sourceforge.net/projects/cpan2rpm/

  • rpmbuild --rebuild cpan2rpm-(バージョン)-1.src.rpm
  • できたバイナリをインストール

CPANのパッケージのインストール方法

  • cpan2rpm パッケージ名 だとパッケージ作成まで実行
  • cpan2rpm --install パッケージ名 だとインストールまで実行

バージョンが見つからないと言われる

  • cpan2rpm --version バージョン番号 パッケージ名
  • バージョン番号は tarball のバージョン名からつける

テストに失敗

  • cpan2rpm --make-no-test パッケージ名
    • テストしないんで、動かないバイナリができるかもしれません。要注意。

error: You must set "%_gpg_name" in your macro file と言われる。

日本語版では「エラー: マクロファイル内で "%_gpg_name" を設定しなければなりません。」になる。

  • cpan2rpm --no-sign パッケージ名

Can't locate object method "interpolate" via package "Pod::Text" at /usr/bin/cpan2rpm line 525 と言われる

ソース内の Pod::Text を全て Pod::PlainText に置き換えれば動く。

(以下、2016/08/21 追記)

先頭の use Pod::Text; を use Pod::Parser; に置き換える。プログラム内の Pod::Text->new() も修正する。 cpan2rpm version 2.029 で修正されているようだ。 (最近メンテされてない? App::CPANtoRPM とか cpantorpm があるようだ)

get_meta(): Not a directory at /usr/bin/cpan2rpm line 396 と言われる

$ LANG=C cpan2rpm HTML::TreeBuilder::LibXML

    - cpan2rpm - Ver: 2.028 --
Upgrade check
Fetch: HTTP

    - module: HTML::TreeBuilder::LibXML --
Using cached URL: [http://search.cpan.org//CPAN/authors/id/C/CA/CAFEGRATZ/HTML-TreeBuilder-LibXML-0.23.tar.gz](http://search.cpan.org//CPAN/authors/id/C/CA/CAFEGRATZ/HTML-TreeBuilder-LibXML-0.23.tar.gz) 
Tarball found - not fetching
Metadata retrieval
Tarball extraction: [/root/rpmbuild/SOURCES/HTML-TreeBuilder-LibXML-0.23.tar.gz]
get_meta(): Not a directory at /usr/bin/cpan2rpm line 396.
    - Done --

原因: tar ball の最初の項目がディレクトリで無い場合にこのエラーが出る。

下記1行目は HTML-TreeBuilder-LibXML-0.23/ であるべき。

$ tar tvfz /root/rpmbuild/SOURCES/HTML-TreeBuilder-LibXML-0.23.tar.gz|head -5
-rw-r--r-- cafe/cafe      1841 2013-05-17 09:16 HTML-TreeBuilder-LibXML-0.23/Build.PL
-rw-r--r-- cafe/cafe      4715 2013-05-17 09:16 HTML-TreeBuilder-LibXML-0.23/Changes
-rw-r--r-- cafe/cafe     18448 2013-05-17 09:16 HTML-TreeBuilder-LibXML-0.23/LICENSE
-rw-r--r-- cafe/cafe      2609 2013-05-17 09:16 HTML-TreeBuilder-LibXML-0.23/META.json
-rw-r--r-- cafe/cafe      1697 2013-05-17 09:16 HTML-TreeBuilder-LibXML-0.23/README.md

[[$$amazon-search-result-middle books-jp perl]]