2010年2月12日金曜日

WorkerManagerのRPM&yumリポジトリ化

スズキです。

忘れかけてましたが、これが、今までのyumリポジトリネタの最終的な目的でした。

WorkerManagerはこちらで作成/公開されているもので、
http://d.hatena.ne.jp/stanaka/20091023/1256252946
TheSchwartz/Gearmanのワーカープロセスを管理プロダクトです。
実際のソースはこちらになります。
http://github.com/stanaka/WorkerManager

ソース内にはSPECファイルも用意されているので、
http://github.com/stanaka/WorkerManager/blob/master/script/workermanager.spec
このSPECファイルをSUZ-LAB的に調整して(末尾に掲載)、実際の(S)RPMを作成しています。

まずは、ソースを置きます。(実はソースも多少、調整しています)

# cd /usr/src/redhat
# ls SOURCES/Worker-Manager-0.01.tar.gz
SOURCES/Worker-Manager-0.01.tar.gz

次にSPECファイルも置き、そこから(S)RPMを作成します。

# rpmbuild -ba SPECS/perl-Worker-Manager.spec

そして、RPMをリポジトリに追加します。

# cd /var/www/html/yum/5/i386
# cp /usr/src/redhat/RPMS/noarch/perl-Worker-Manager-0.01-1.el5.suzlab.noarch.rpm
./
# createrepo ./

同様に、SRPMをリポジトリに追加します。

# cd /var/www/html/yum/5/src
# cp /usr/src/redhat/SRPMS/perl-Worker-Manager-0.01-1.el5.suzlab.src.rpm ./
# createrepo ./

最後にS3のリポジトリと同期すれば、以下で、インストールできます。

# yum install perl-Worker-Manager

Enjoy!

--------【perl-Worker-Manager.spec】--------
Summary: Worker Manager
Name: perl-Worker-Manager
Version: 0.01
Release: 1.el5.suzlab
License: GPL
Group: Development/Libraries
URL: http://www.suz-lab.com/
#Source0: %{name}-%{version}.tar.gz
Source0: Worker-Manager-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildArch: noarch

%description

%prep
%setup -q -n Worker-Manager-%{version}

%build

%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/usr/bin
mkdir -p $RPM_BUILD_ROOT/etc/sysconfig
mkdir -p $RPM_BUILD_ROOT/etc/init.d
mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d
mkdir -p $RPM_BUILD_ROOT/usr/lib/perl5/vendor_perl/5.8.8
cp bin/workermanager.pl $RPM_BUILD_ROOT/usr/bin/
cp config/workermanager $RPM_BUILD_ROOT/etc/sysconfig/
cp config/workermanager.logrotate $RPM_BUILD_ROOT/etc/logrotate.d/workermanager
cp config/worker.conf.yml $RPM_BUILD_ROOT/etc/worker.conf.yml
cp script/workermanager.init $RPM_BUILD_ROOT/etc/init.d/workermanager
cp -r lib/* $RPM_BUILD_ROOT/usr/lib/perl5/vendor_perl/5.8.8/

%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root,-)
/etc/sysconfig/workermanager
/etc/logrotate.d/workermanager
/etc/worker.conf.yml
/usr/lib/perl5/vendor_perl/5.8.8/*
%attr(755,root,root) /usr/bin/workermanager.pl
%attr(755,root,root) /etc/init.d/workermanager

%doc examples

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

0 コメント: