CentOS 5.1 で、ローカル環境向け yum リポジトリサーバを作ってみる
大人の事情で、仕方なく CentOS を使うハメになりイロイロ勉強中。Linux なんて触りたくないなぁ(w;
apache のインストール
リポジトリを HTTP で配布する事にしたので、apache を入れてみる。
$ yum -y install httpd
適当に httpd.conf を設定して起動しておく。
リポジトリ用のディレクトリを作る
今回は、os と updates だけ対象とする。(addons、extras、centosplus 等は大人の事情で除外)
i386 と x86_64 環境が混在しているので、両方のディレクトリを準備。
$ mkdir -p /var/www/html/yum/centos/5.1/os/i386/CentOS $ mkdir -p /var/www/html/yum/centos/5.1/os/x86_64/CentOS $ mkdir -p /var/www/html/yum/centos/5.1/updates/i386/RPMS $ mkdir -p /var/www/html/yum/centos/5.1/updates/x86_64/RPMS
RPM ファイルを配置する
rsync://ftp.riken.jp/Linux/centos/ 等から取得して、先ほど作ったディレクトリに配置する。
yum コマンドは、mirrorlist.centos.org が返すリポジトリサーバの一覧から使うサーバを選択しているので、http://mirrorlist.centos.org/?release=5&arch=x86_64&repo=os とかで取得した URI から RPM をダウンロードしても良い。
メタデータを生成する
メタデータとは、レポジトリを管理するための情報の事。
まずは、メタデータを生成する為のコマンド createrepo をインストールする。
$ sudo yum install createrepo
次に、メタデータを生成する。
$ cd /var/www/html/yum/centos/5.1/os/i386/ $ createrepo $PWD
ミラーリストを配置する
直接、レポジトリサーバを参照させても良いのだけれど、何となくミラーリストを配置してみる。
CGI を作るのは面倒なので、[version]-[repo]-[basearch].txt という形式のファイル名にする。
$ cat /var/www/html/yum/centos/5.1-os-i386.txt http://yum.foo.jp/yum/centos/5.1/os/i386/
このようなファイルを各リポジトリ毎に準備する。
試してみる
/etc/yum.repos.d/CentOS-Base.repo を下記のように修正する。
$ diff CentOS-Base.repo.org CentOS-Base.repo 16,17c16 < mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os < #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ --- > mirrorlist=http://yum.foo.jp/yum/centos/$releasever-os-$basearch.txt 19c18 < gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 --- > gpgkey=http://yum.foo.jp/yum/centos/RPM-GPG-KEY-CentOS-5 24,25c23 < mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates < #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ --- > mirrorlist=http://yum.foo.jp/yum/centos/$releasever-updates-$basearch.txt 27c25 < gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 --- > gpgkey=http://yum.foo.jp/yum/centos/RPM-GPG-KEY-CentOS-5
RPM-GPG-KEY-CentOS-5 は、/etc/pki/rpm-gpg/ からコピーしておく。
以上で、yum コマンドは yum.foo.jp から RPM ファイルを取得するようになる。
始めに「yum list available」を実行しておいた方が良いのかな?