yumリポジトリサーバ

Last-modified: 2014-02-16 (日) 18:50:21
最終更新:2014-02-16 (日) 18:50:21
アクセス数(合計):?
利用者; ? アクセス数(本日):? アクセス数(昨日):?

yumリポジトリサーバ構築

yumとは「Yellowdog Updater Modified 」の略。LinuxのRPM互換パッケージ管理システムである。
 
以下目的のためイントラネット環境内でyumリポジトリサーバを立ち上げる。

  • インターネット接続不可環境でのサーバ構築
  • 複数サーバ構築時のネット負荷軽減
  • 複数サーバ構築時の作業軽減

目的

イントラネット内でyumリポジトリサーバを構築し、サーバ構築時の作業負荷軽減とネットワーク負荷軽減を図る。

構築条件

構築機器

作成環境

OS    CentOS 6.5 64bit版

サーバ作成条件

サーバIP192.168.0.100/24
ホスト名hogehogeServer
user   hogehoge
userpasswdhogehogepass

手順記入ルール

  • コマンド行頭記号で 「$」はユーザ権限 「#」はスーパーユーザー権限 を表示
  • コマンドが長くなる場合は、行末に「\」を記述し複数行に記述。

前準備

  1. CentOSインストール 実施
  2. yumリポジトリ設定 実施

Apache動作設定

Webアクセス設定

  • Apacheインストール
# yum install httpd
  • 起動
#  /etc/rc.d/init.d/httpd start
  • 自動起動設定
# chkconfig httpd on
  • 確認
#  chkconfig --list httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

Webアクセス確認

http://192.168.0.100/ → WEBページが表示されること

createrepoインストール

【Telnet】

  • rootでログイン
$ su
パスワード:

(1)createrepoインストール

リポジトリ作成ツール「createrepo」をインストール

  • createrepoインストール
# yum install createrepo
================================================================================
 Package             Arch       Version                      Repository    Size
================================================================================
Installing:
 createrepo          noarch     0.9.9-18.el6                 c6-media      94 k
Installing for dependencies:
 deltarpm            x86_64     3.5-0.5.20090913git.el6      c6-media      71 k
 libxml2-python      x86_64     2.7.6-14.el6                 c6-media     321 k
 python-deltarpm     x86_64     3.5-0.5.20090913git.el6      c6-media      27 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月 16 17:44 2014 SRPMS
drwxr-xr-x 2 root root 4096  2月 16 17:44 2014 extra
drwxr-xr-x 2 root root 4096  2月 16 17:44 2014 i386
drwxr-xr-x 2 root root 4096  2月 16 17:44 2014 rpm
drwxr-xr-x 2 root root 4096  2月 16 17:44 2014 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.6 - Intra repo
    baseurl=http://192.168.0.100/yum/$basearch/
    gpgcheck=0
    enabled=1
[intra-repo-rpm]
name=Intra repo rpm
baseurl=http://192.168.0.100/yum/rpm/
gpgcheck=0
enabled=1
[intra-repo-extra]
name=Intra repo extra
baseurl=http://192.168.0.100/yum/extra/
gpgcheck=0
enabled=0

(3)確認

  • データクリア
# yum clean all
  • 確認
# yum list
intra-repo                                               | 4.0 kB     00:00
intra-repo/primary_db                                    | 4.4 MB     00:00
intra-repo-rpm                                           | 2.9 kB     00:00
intra-repo-rpm/primary_db                                | 1.2 kB     00:00

   : 

(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月 16 18:05 2014 intra-repo.repo
  • 終了
# exit
 exit
$

独自収集rpmのフォルダへの登録方法

前準備

  1. FTPサーバ構築 実施

(1) ファイル転送

【FTP】

ftp にて、ユーザエリア「/home/hogehoge」に 「xxx.rpm」 をアップ

(2)html直下にコピー

【Telnet】

  • ファイル確認
# ls -l
-rw-r--r--  1 hogehoge hogehoge 2306596  2月 16 18:20 2014 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 2306596  2月 16 18:31 2014 xxx.rpm
drwxr-xr-x 2 root root    4096  2月 16 18:31 2014 repodata
  • yumキャッシュクリア
# yum clean all
  • リポジトリ登録確認
# yum list | grep xxx
xxx                             xxx              intra-repo-rpm

他サーバーでのyumリポジトリ設定

前準備

  1. wget install 実施
# yum install wget

(1)yumリポジトリ作成

  • リポジトリデータベースをコピー
# wget http://192.168.0.100/yum/intra-repo.repo
  • 確認
# ls -l
-rw-r--r--  1 root     root         304  2月 16 18:05 2014 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.6 - Intra repo
    baseurl=http://192.168.0.100/yum/$basearch/
    gpgcheck=0
    enabled=1
[intra-repo-rpm]
name=Intra repo rpm
baseurl=http://192.168.0.100/yum/rpm/
gpgcheck=0
enabled=1
[intra-repo-extra]
name=Intra repo extra
baseurl=http://192.168.0.100/yum/extra/
gpgcheck=0
enabled=0

(2)yumリポジトリ確認

  • yumキャッシュクリア
# yum clean all
  • 確認
# yum list all
intra-repo                                               | 4.0 kB     00:00
intra-repo/primary_db                                    | 4.4 MB     00:00
intra-repo-rpm                                           | 2.9 kB     00:00
intra-repo-rpm/primary_db                                | 2.9 kB     00:00

   :

遭遇したトラブル

無し

問題:
無し

原因:
無し

謝辞

テキスト作成にあたり、以下サイトを参考にさせて頂きました。ありがとうございます。

http://thinkit.co.jp/free/article/0706/14/4/