2010年2月9日火曜日

CPANモジュール(File::Pid)をRPM化

スズキです。

こちらでWorkerManagerを導入したときに、
http://blog.suz-lab.com/2010/02/centosworkermanagertheschwartz.html
CPANモジュールの"File::Pid"がRPMとして提供されてなくて...
ってことでいろいろ小細工しましたが、yumリポジトリも作成したので、
http://blog.suz-lab.com/2010/02/s3yum.html
自分でRPM化することにしました。

と言うことで、開発ツールを導入です。
# yum install make
# yum install rpm-build
# yum install perl-RPM-Specfile

次に、下記よりソースをダウンロードします。
http://search.cpan.org/~cwest/File-Pid-1.01/

で、ソースに対して下記コマンドでSRPMを作成します。
# cpanflute2 File-Pid-1.01.tar.gz
警告: ホスト名を正式なものにできません: suz-lab-work
書き込み完了: ./perl-File-Pid-1.01-8.src.rpm
実行中(--clean): /bin/sh -e /var/tmp/rpm-tmp.58386
+ umask 022
+ cd /tmp/64ljY2A9Yb
+ rm -rf File-Pid-1.01
+ exit 0

そして、作成したSRPMからRPMを作成します。
# rpmbuild --rebuild perl-File-Pid-1.01-8.src.rpm

ここまで実行すると、下記に実際にRPMが配置されます。
/usr/src/redhat/RPMS/noarch/perl-File-Pid-1.01-8.noarch.rpm

このRPMをリポジトリ(/var/www/html/yum/5/i386)に置いて、
下記コマンドでリポジトリ情報(repodata)を更新します。
# cd /var/www/html/yum/5/i386
# createrepo ./

最後に、これらをS3にアップロードすれば、yumでインストールできるようになります。
ちなみに、"yum info"の結果は下記のようになりました。
# yum info perl-File-Pid
Available Packages
Name : perl-File-Pid
Arch : noarch
Version : 1.01
Release : 8
Size : 8.2 k
Repo : suz-lab
Summary : File-Pid Perl module
URL : http://search.cpan.org/dist/File-Pid/
License : GPL or Artistic
Description: File-Pid Perl module.

実際にインストールする際、"/etc/yum.repos.d/suz-lab.repo"に
下記のように"gpgcheck=0"を入れておかないと、
Package perl-File-Pid-1.01-8.noarch.rpm is not signed
といったエラーでインストールできません。

--------【suz-lab.repo】--------
[suz-lab]
name=SUZ-LAB Packages for Enterprise Linux $releasever - $basearch
baseurl=http://yum.suz-lab.com/5/$basearch
enabled=1
gpgcheck=0
--------

次は、WorkerManagerのRPMを作成しよう。

--------
http://www.suz-lab.com

0 コメント: