Error: Failed to load processor TOC
No macro or processor named 'TOC' found

自前rpm配布用yumサーバの構築

テスト環境
CentOS5 テスト用最小インストール手順参照。

概要

独自のRPMパッケージを配布するyumサーバを構築する。

手順

サーバ側

ファイルはHTTPで公開するものとして、以下のパッケージをインストールする。

# yum install httpd createrepo

apacheを起動。

# chkconfig httpd on
# service httpd start

RPMはapacheの公開ディレクトリに置く必要がある。ディレクトリは/var/www/html/original/RPMSとする。

# mkdir -p /var/www/html/original/RPMS

上記ディレクトリに配布したいRPMパッケージを置く。今回は自前でビルドしたkoanのパッケージを使ってみる。

# cp -pi koan-0.6.1-2.co5.cafechantant.noarch.rpm /var/www/html/original/RPMS/.

パッケージを置いたディレクトリに対してcreaterepoを実行する。

# createrepo -v /var/www/html/original/RPMS
1/1 - koan-0.6.1-2.co5.cafechantant.noarch.rpm

Saving Primary metadata
Saving file lists metadata
Saving other metadata

するとrepodataディレクトリが作成され、その中にレポジトリデータファイルが作成される。

クライアント側

上記で作成したレポジトリを参照するように、yumのレポジトリ設定ファイルを書く。

# cd /etc/yum.repos.d
# vi original.repo

内容は以下。

[local]
name=Original Repository
baseurl=http://yumサーバのIP/original/RPMS
enabled=1
gpgcheck=0

yum searchしてレポジトリにアクセスできるか確かめてみる。

# yum search koan
Loading "fastestmirror" plugin
Loading "installonlyn" plugin
Setting up repositories
original                  100% |=========================|  951 B    00:00     
Loading mirror speeds from cached hostfile
Reading repository metadata in from local files
primary.xml.gz            100% |=========================|  896 B    00:00     
original  : ################################################## 1/1
Added 1 new packages, deleted 0 old in 0.02 seconds



koan.noarch                              0.6.1-2.co5.cafechanta original        
Matched from:
koan

Koan stands for kickstart-over-a-network and allows for both
network provisioning of new virtualized guests and destructive re-provisioning
of any existing system.  For use with a boot-server configured with
'cobbler'

ローカルのレポジトリデータが更新されて、ちゃんとkoanが検索結果に出てきたことから、アクセスが出来ている。 これでyum installすればオーケー。

運用

パッケージの更新

クライアント側でインストール後に、パッケージを更新する必要が出てきた場合。

新しいパッケージをRPMのディレクトリにコピー。

# cp -pi koan-0.6.2-1.co5.cafechantant.noarch.rpm /var/www/html/original/RPMS/.

再度、createrepoコマンドを実行してレポジトリデータを更新する。

# createrepo -v /var/www/html/original/RPMS
[root@cobbler RPMS]# createrepo -v /var/www/html/original/RPMS
1/2 - koan-0.6.2-1.co5.cafechantant.noarch.rpm
2/2 - koan-0.6.1-2.co5.cafechantant.noarch.rpm

Saving Primary metadata
Saving file lists metadata
Saving other metadata

クライアント側でyum updateすればオーケー。

GPGキーがある場合

yumサーバ側にGPGキーがある場合は、GPGキーのチェックを有効・GPGキーのパスをレポジトリ設定ファイルに記載する。

# cd /etc/yum.repos.d
# vi original.repo
[local]
name=Original Repository
baseurl=http://yumサーバのIP/original/RPMS
enabled=1
gpgcheck=1
gpgkey=http://yumサーバのIP/original/RPM-GPG-KEY-Original

といった感じ。するとyum installの中でGPGキーのインポートを行うかの確認が出るのでインポートして進めればOK

warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID be857f15
Importing GPG key 0xBE857F15 "Kuniaki Shimizu (cafechantant.com) <kunkichi@gmail.com>" from http://192.168.0.254/original/RPM-GPG-KEY-Original
Is this ok [y/N]: y

GPGキーの作成については、RPMに署名する(GPGキーの作成)を参照。