cpan2rpmでのインストール時エラーの対処方法

こちらのサイトを参考にさせてもらいながらcpan2rpmでインストールしたけどいくつか問題があったので対処方法をメモ。

『Perlモジュールパッケージ管理システム導入(cpan2rpm)』

ちなみに、CentOS5.5でcpan2rpmのバージョンは2.028-1。

まず普通にインストールしようとしてみる。

# cpan2rpm --install URI::Find

すると以下のエラー。

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

-- module: URI::Find --
Using cached URL: http://search.cpan.org//CPAN/authors/id/M/MS/MSCHWERN/URI-Find-20100505.tar.gz
Tarball found - not fetching
Metadata retrieval
Tarball extraction: [/usr/src/redhat/SOURCES/URI-Find-20100505.tar.gz]
Module::Build unloadable
 Can't locate Module/Build.pm in @INC (@INC contains: /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 .) at (eval 22) line 2.
BEGIN failed--compilation aborted at (eval 22) line 2.
-- Done --

なんか、「Module::Build unloadable」って言われてるので、perl-Module-Buildを入れてみる。
rpmforgeをyumに登録してあれば以下のコマンドでOK

# yum install perl-Module-Build

再度インストールしようとしてみる。

# cpan2rpm --install URI::Find

また、エラー。

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

-- module: URI::Find --
Using cached URL: http://search.cpan.org//CPAN/authors/id/M/MS/MSCHWERN/URI-Find-20100505.tar.gz
Tarball found - not fetching
Metadata retrieval
Tarball extraction: [/usr/src/redhat/SOURCES/URI-Find-20100505.tar.gz]
No version found, please use --version option.  Stopped at /usr/bin/cpan2rpm line 580.
-- Done --

「please use --version option」って言われてるので試してみる。

# cpan2rpm --version 20100505 URI::Find

またまたエラー。

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

-- module: URI::Find --
Using cached URL: http://search.cpan.org//CPAN/authors/id/M/MS/MSCHWERN/URI-Find-20100505.tar.gz
Tarball found - not fetching
Metadata retrieval
Tarball extraction: [/usr/src/redhat/SOURCES/URI-Find-20100505.tar.gz]
Generating spec file
SPEC: /usr/src/redhat/SPECS/URI-Find.spec
Generating package
Signing package (pass phrase required)
エラー: マクロファイル内で "%_gpg_name" を設定しなければなりません。
パスフレーズのチェックに失敗しました。
RPM build failed [1] at /usr/bin/cpan2rpm line 1052.
-- Done --

根本解決にはなってないかもしれないけど、とりあえず--no-signオプションをつけてみる。

# cpan2rpm --version 20100505 --no-sign URI::Find

ようやくインストール成功!