yumリポジトリサーバ構築
yumとは「Yellowdog Updater Modified 」の略。LinuxのRPM互換パッケージ管理システムである。
以下目的のためイントラネット環境内でyumリポジトリサーバを立ち上げる。
- インターネット接続不可環境でのサーバ構築
- 複数サーバ構築時のネット負荷軽減
- 複数サーバ構築時の作業軽減
目的
イントラネット内でyumリポジトリサーバを構築し、サーバ構築時の作業負荷軽減とネットワーク負荷軽減を図る。
構築条件
構築機器
- 仮想サーバ SUN VirtualBox 4.0 で構築
作成環境
OS | CentOS 5.5 64bit版 |
サーバ作成条件
サーバIP | 192.168.0.20/24 |
ホスト名 | hogehogeServer |
user | hogehoge |
userpasswd | hogehogepass |
手順記入ルール
- コマンド行頭記号で 「$」はユーザ権限 「#」はスーパーユーザー権限 を表示
- コマンドが長くなる場合は、行末に「\」を記述し複数行に記述。
前準備
- CentOSインストール 実施
- yumリポジトリ設定 実施
Apache動作確認
Webアクセス確認
http://192.168.0.20/ → WEBページが表示されること
★もし表示されない場合、以下コマンドを実施
- Apacheインストール
# yum install httpd
- 起動
# /etc/rc.d/init.d/httpd restart
- 自動起動設定
# chkconfig httpd on
createrepoインストール
【Telnet】
- rootでログイン
$ su パスワード:
(1)createrepoインストール
リポジトリ作成ツール「createrepo」をインストール
- createrepoインストール
# yum install createrepo
Installing: createrepo noarch 0.4.11-3.el5 c5-media 59 k
リポジトリ用フォルダ作成
以下のとおり作成する。
html/ --- yum --+-- i386 ← 32bitOS DVDコピー +-- x86_64 ← 64bitOS DVDコピー +-- SRPMS ← rpmソースイメージ +-- rpm ← 独自で収集した一般rpm +-- extra ← 独自で収集した特別rpm ※通常enabled=0 にしておく
(1)フォルダ作成
- i386フォルダ作成
# mkdir -p /var/www/html/yum/i386
- x86_64フォルダ作成
# mkdir -p /var/www/html/yum/x86_64
- SRPMSフォルダ作成
# mkdir -p /var/www/html/yum/SRPMS
- rpmフォルダ作成
# mkdir -p /var/www/html/yum/rpm
- extraフォルダ作成
# mkdir -p /var/www/html/yum/extra
- 確認
# ls -l /var/www/html/yum/
drwxr-xr-x 2 root root 4096 2月 5 21:15 SRPMS drwxr-xr-x 2 root root 4096 2月 5 21:15 extra drwxr-xr-x 2 root root 4096 2月 5 21:14 i386 drwxr-xr-x 2 root root 4096 2月 5 21:15 rpm drwxr-xr-x 2 root root 4096 2月 5 21:15 x86_64
rpmデータコピー
CentOS 32bit DVD をコピー
★CentOS 32bit DVDをDVDドライブにセット
- DVDドライブマウント
# mount /dev/dvd /mnt
- DVDメディアコピー
# cp -R /mnt/* /var/www/html/yum/i386
- DVDドライブアンマウント
# umount /mnt
CentOS 64bit DVD をコピー
★CentOS 64bit DVDをDVDドライブにセット
- DVDドライブマウント
# mount /dev/dvd /mnt
- DVDメディアコピー
# cp -R /mnt/* /var/www/html/yum/x86_64
- DVDドライブアンマウント
# umount /mnt
★64bit版の場合DVDが2枚あるので、DVD入れ替え後手順を繰り返す
リポジトリデータベース登録
(1)通常rpm用リポジトリデータベースを更新
- SRPMS更新実行
# createrepo -v /var/www/html/yum/SRPMS
- rpm更新実行
# createrepo -v /var/www/html/yum/rpm
- extra更新実行
# createrepo -v /var/www/html/yum/extra
★i386とx86_64はDVDコピー時にリポジトリデータベースも登録されるためコマンド不要
(2)確認用リポジトリ登録
- 登録
# vi /etc/yum.repos.d/intra-repo.repo
- 全面追加
[intra-repo] name=CentOS-5.5 - Intra repo baseurl=http://192.168.0.20/yum/$basearch/ gpgcheck=0 enabled=1
[intra-repo-rpm] name=Intra repo rpm baseurl=http://192.168.0.20/yum/rpm/ gpgcheck=0 enabled=1
[intra-repo-extra] name=Intra repo extra baseurl=http://192.168.0.20/yum/extra/ gpgcheck=0 enabled=0
(3)確認
- データクリア
# yum clean all
- 確認
# yum list
intra-repo | 1.3 kB 00:00 intra-repo/primary | 1.2 MB 00:00 intra-repo 3433/3433 intra-repo-rpm | 951 B 00:00 intra-repo-rpm/primary | 179 B 00:00
:
- Web確認
http://192.168.0.20/yum/ → フォルダが見えること
(4)リポジトリデータベースコピー
- リポジトリ登録データをyumにコピー
★他サーバからのアクセス用
# cp /etc/yum.repos.d/intra-repo.repo /var/www/html/yum/
- 確認
# ls -l /var/www/html/yum/
-rw-r--r-- 1 root root 304 2月 5 22:09 intra-repo.repo
- 終了
# exit
exit $
独自収集rpmのフォルダへの登録方法
(1) ファイル転送
【FTP】
ftp にて、ユーザエリア「/home/hogehoge」に 「xxx.rpm」 をアップ
(2)html直下にコピー
【Telnet】
- ファイル確認
# ls -l
-rw-r--r-- 1 hogehoge hogehoge 2404508 2月 5 11:56 xxx.rpm
- ファイルコピー
# cp xxx.rpm /var/www/html/yum/rpm/
(3)通常rpm用リポジトリデータベースを更新
- 更新実行
# createrepo -v /var/www/html/yum/rpm/
Saving Primary metadata Saving file lists metadata Saving other metadata
(4)確認
- フォルダ確認
# ls -l /var/www/html/yum/rpm/
-rw-r--r-- 1 root root 2404508 2月 5 12:18 xxx.rpm drwxr-xr-x 2 root root 4096 2月 5 12:18 repodata
- yumキャッシュクリア
# yum clean all
- リポジトリ登録確認
# yum list | grep xxx
xxx xxx intra-rpm
他サーバーでのyumリポジトリ設定
(1)yumリポジトリ作成
- リポジトリデータベースをコピー
# wget http://192.168.0.20/yum/intra-repo.repo
- 確認
# ls -l
-rw-r--r-- 1 root root 304 2月 5 22:09 intra-repo.repo
- リポジトリデータベースを移動
# cp intra-repo.repo /etc/yum.repos.d/
★もしwgetコマンドが使用できない場合intra-repo.repoを直接作成
- yumリポジトリ新規作成
# vi /etc/yum.repos.d/intra-repo.repo
- 全面追加
[intra-repo] name=CentOS-5.5 - Intra repo baseurl=http://192.168.0.20/yum/$basearch/ gpgcheck=0 enabled=1
[intra-repo-rpm] name=Intra repo rpm baseurl=http://192.168.0.20/yum/rpm/ gpgcheck=0 enabled=1
[intra-repo-extra] name=Intra repo extra baseurl=http://192.168.0.20/yum/extra/ gpgcheck=0 enabled=0
(2)yumリポジトリ確認
- yumキャッシュクリア
# yum clean all
- 確認
# yum list all
intra-repo | 1.3 kB 00:00 intra-repo/primary | 1.2 MB 00:00 intra-repo 3433/3433 intra-repo-rpm | 951 B 00:00 intra-repo-rpm/primary | 179 B 00:00
:
遭遇したトラブル
無し
問題:
無し
原因:
無し
謝辞
テキスト作成にあたり、以下サイトを参考にさせて頂きました。ありがとうございます。