○ yumでローカルrepo

・ローカルにupdate用のミラーサイトを作ります
・yum実行時にアクセスできるサーバならどこでも良いです
・実行例はanonymous接続できるFTPサーバを使っています
・CentOS 5.x の場合です

◯yum関連パッケージのインストール

[sola@saturn:~]
$ su -
passwd:
[root@saturn:~]
# yum install yum-fastestmirror
# yum install yum-priorities
# yum install yum-utils
# yum install createrepo

◯FTPサーバに専用ディレクトリを作ります

・FTPでanonymous接続できるディレクトリに作成します
・CentOSのupdate用、自前のrpm用のディレクトリを作成

[root@saturn:~]
# mkdir -p /home/ftp/centos/5/updates
# mkdir -p /home/ftp/rpm

◯ファイルをコピーします

・rsyncコマンドで外部のミラーサーバと同期させます
・CentOSサイトのMirrorListからrsync可能なサイトを探します
・例 ftp.riken.jp/centos (通常のftpサイトとはパスが違うので注意)

# rsync -avH rsync://ftp.riken.jp/centos/5/updates/i386 --delete /home/ftp/centos/5/updates/

・自前のrpmパッケージを該当ディレクトリにコピーします (省略)

◯<repodata>を作成します

・CentOSのupdate用<repodata>はrsyncしたものを使用します
・ディレクトリの構成がミラーサーバとローカルで異なる場合は
・ファイルの更新ごとに<repodata>を作成します

[root@saturn:~]
# createrepo /home/ftp/rpm

◯設定ファイルの修正と新規作成

:/etc/yum.conf

・kernelのアップデートで、古いのを残す個数を設定します
・デフォルトは 0 CentOS5.6の設定値は 5 個人的に 3

・省略

# installonly_limit = 5
installonly_limit = 3

・省略

:/etc/yum/pluginconf.d/priorities.conf

[main]
enabled = 1

:/etc/yum.repos.d/CentOS-Base.repo

・priorityで優先度を指定します
・ローカルの優先度を上位にします

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=1

#released updates 
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=2

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=1

・省略

:/etc/yum.repos.d/Local.repo

・priorityで優先度を指定します
・ローカルの優先度を上位にします
・baseurlにローカルのFTPサーバを指定します
・名前解決できない場合は、IPアドレスで指定します
・gpg署名をしていない場合、gpgcheckを無効にします

[Local]
name=local - ftp
baseurl=ftp://saturn.528p.com/rpm/
gpgcheck=0
enabled=0

[Lupdates]
name=CentOS-$releasever - Updates
baseurl=ftp://saturn.528p.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=1

・cronで定期的にrsyncやupdateもできますが
・クライアントマシンで実証してからupdateをかけています

・yum updateの実行
・設定を変更したら、最初に"yum clean all"を実行します

[root@saturn:~]
# yum clean all
# yum update

・Localのupdateの場合(Local.repoのみ有効にする)

# yum --disablerepo=\* --enablerepo=Local update

○ Copyright(c) 528p.com All Rights Reserved.