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 Squareフォーラム Linux Tipsカテゴリ別インデックス |
Linux & OSS 記事ランキング
本日
月間