GitHub を yum リポジトリにする

弊社のロックファイル処理がクソ過ぎてロックファイルを制御するスクリプトを作ったのですが、なかなか使ってもらえてないので、GitHub を使って yum でインストールできるようにしたまとめ。

必要なものをインストールする

yum install rpm-build  
yum install yum-utils  
yum install rpmdevtools  
yum install createrepo  

rpm を作る

rpmdev-setuptree$HOME/rpmbuild を作り、その中の $HOME/rpmbuild/SPECS に SPEC ファイルを作ります。

SPECファイル作成

$HOME/rpmbuild/SPECS/lockfile.spec を作ります。今回はただのシェルスクリプトなのでコピーするだけ。

Name: lockfile  
Version: 1.0  
Release: 0  
Group: Utilities  
Source: lockfile-1.0.tar.gz  
Summary: lock file controller  
Packager: Taisuke Shiratori  
License: MIT License  
BuildRoot: /root/rpm/ROOT

%description
lockfile

%prep
rm -rf $RPM_BUILD_ROOT/*

%setup

%install
mkdir -p $RPM_BUILD_ROOT/usr/local/{bin,man/man1}  
cp lockfile $RPM_BUILD_ROOT/usr/local/bin  
cp lockfile.1 $RPM_BUILD_ROOT/usr/local/man/man1

%clean
rm -rf $RPM_BUILD_ROOT

%files
%attr(-, root, root) /usr/local/bin/lockfile
%attr(-, root, root) /usr/local/man/man1/lockfile.1

SPEC ファイルができたら $HOME/rpmbuild/SOURCES にソースを置きます。

rpm のビルド

rpmbuild -ba $HOME/rpmbuild/SPECS/lockfile.spec でエラーが出なければ OK

yum リポジトリの作成

まず git リポジトリを作ります。

mkdir lockfile-rpm  
git init  

rpm ファイルと man 用のファイルを配置

mkdir -p lockfile-rpm/centos/6/os/{x86_64,SPRMS}  
cp $HOME/rpmbuild/RPMS/x86_64/lockfile-1.0-0.x86_64.rpm lockfile-rpm/centos/6/os/x86_64/lockfile-1.0-0.x86_64.rpm  
cp $HOME/rpmbuild/SRPMS/lockfile-1.0-0.src.rpm lockfile-rpm/centos/6/os/SPRMS/lockfile-1.0-0.src.rpm  

yum のリポジトリ作成

createrepo centos/6/os/SPRMS/  
createrepo centos/6/os/x86_64/  

で、そのまま GitHub にプッシュします。

yum install してみる

/etc/yum.repos.d/lockfile-rpm.repo に以下の内容を書いて、、

[lockfile-rpm]
name=lockfile-CentOS-$releasever  
baseurl=https://github.com/shitai246/lockfile-rpm/raw/master/centos/6/os/x86_64/  
enabled=1  
gpgcheck=0  

yum install -y lockfile でインストールできれば OK

まとめ

というわけで yum リポジトリ公開しました。

https://github.com/shitai246/lockfile-rpm

ドキュメントちゃんと書かないと…