Linux Tips

yumリポジトリで独自RPMファイルを配布するには

北浦訓行
2004/11/11

 yumサーバを構築するにはで説明したのは、Fedora Projectが公式にリリースしているパッケージをミラーリポジトリからコピーする方法だ。それとは別に、独自のRPMパッケージをyumで配布したいこともあるだろう。

 yumでRPMパッケージを配布するには、専用のヘッダファイル()が必要だ。このヘッダファイルは、yum-archコマンドで作成できる。ここでは、配布するパッケージのディレクトリを/pub/internal/rpmとして説明する。

注:リポジトリのディレクトリにあるheadersサブディレクトリの「RPMファイル.hdr」および「header.info」。

 最初に、配布するRPMファイル(例ではfoo-0.1.1-FC2.i386.rpm)を/pub/internal/rpmにコピーし、yum-archコマンドを実行する。

# yum-arch /pub/internal/rpm
Digesting rpms 100 % complete: foo-0.1.1-FC2.i386.rpm
   Total: 1
   Used: 1
   Src: 0

Writing header.info file

 これで、/pub/internal/rpmディレクトリにheadersサブディレクトリが作成され、header.infoやfoo-0.1.1-FC2.i386.hdrができる。

# ls /pub/internal/rpm
headers  foo-0.1.1-FC2.i386.rpm
# ls /pub/internal/rpm/headers
header.info  foo-0.1.1-FC2.i386.hdr

 サーバ側の設定は以上で終了だ。

 次に、クライアント側のyumコマンドで/pub/internal/rpmにアクセスするように設定する。今回は独自のRPMファイルを配布することが目的なので、専用の設定ファイル(/etc/yum.internal.conf)を作成して、yumコマンドを実行する際にその設定ファイルを使用するように指定する(yumで複数の設定ファイルを使い分けるには参照)。

 クライアントPCで/etc/yum.internal.confを作成して、以下のように設定する。

[main]
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=redhat-release
tolerant=1
exactarch=1
retries=20

[base]
name=Fedora Core $releasever - $basearch - Base
baseurl=ftp://192.168.0.1/pub/internal/rpm/ ←サーバのアドレス

 設定が終了したら、以下のようにインストールを行う。

# yum -c /etc/yum.internal.conf install foo
Gathering header information file(s) from server(s)
Server: Fedora Core 2 - i386 - Base
Finding updated packages
Downloading needed headers
foo-0.1.1-FC2.i386. 100% |=========================| 3.5 kB    00:00
Resolving dependencies
Dependencies resolved
I will do the following:
[install: foo-0.1.1-FC2.i386]
Is this ok [y/N]: y ←「y」を入力して[Enter]キーを押す
Downloading Packages
Getting foo-0.1.1-FC2.i386.rpm
foo-0.1.1-FC2.i386 100% |=========================| 1.4 MB    00:00
Running test transaction:
Test transaction complete, Success!
foo 100 % done 1/1
Installed:  foo-0.1.1-FC2.i386
Transaction(s) Complete

 新しいバージョンを配布する際は、サーバ上で同様にyum-archコマンドを実行して、クライアント側で以下のようにアップデート用コマンドを実行する。

# yum -c /etc/yum.internal.conf update foo

Linux Tips Index



 Linux Squareフォーラム Linux Tipsカテゴリ別インデックス
インストール/RPM ブート/ブートローダ
ファイル操作 環境設定
ユーザー管理 コンソール/ターミナル
X Window System セキュリティ
トラブルシューティング 他OS関係
ネットワーク ハードウェア
Webサーバ Samba
GNOME KDE
OpenOffice.org エミュレータ
ソフトウェア そのほか/FAQ
全Tips公開順インデックス Linux Tips月間ランキング
Linux Squareフォーラム全記事インデックス

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間