Yum
リポジトリ
centos7

yumリポジトリサーバの構築方法

More than 1 year has passed since last update.


1 環境

VMware Workstation 12 Player上のゲストマシンを使っています。

ゲストマシンはサーバとクライアントの2台構成です。

サーバ、クライアントともに下記設定です。

[root@server ~]# cat /etc/redhat-release

CentOS Linux release 7.3.1611 (Core)

[root@server ~]# uname -r
3.10.0-514.el7.x86_64

[root@server ~]# cat /etc/hosts
192.168.0.10 server
192.168.0.110 client

192.168.0.0/24
client ---------------------------- server(yumリポジトリサーバ)
.110 .10


2 事前準備

server(yumリポジトリサーバ)で下記設定を行います。

httpdパッケージをインストールする。

[root@server ~]# yum install httpd

yumdownloaderコマンドを使うため、yum-utilsパッケージをインストールする。
[root@server ~]# yum install yum-utils

createrepoパッケージをインストールする。
[root@server ~]# yum install createrepo
[root@server ~]# createrepo --version
createrepo 0.9.9


3 ローカルディスク経由でyumリポジトリサーバにアクセスする方法

ここで使うマシンは、serverの1台だけです。

serverの/tmp/repo配下にリポジトリを作成してみます。

リポジトリ用のディレクトリを作成する。

[root@server ~]# mkdir /tmp/repo

repoファイルを作成する。
[root@server ~]# vi /etc/yum.repos.d/local.repo
[root@server ~]# cat /etc/yum.repos.d/local.repo
[local]
name=Test Repo
baseurl=file:///tmp/repo
gpgcheck=0

データベースを作成する。
[root@server ~]# createrepo --database /tmp/repo
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

/tmp/repoに移動する。
[root@server ~]# cd /tmp/repo/

ディレクトリを確認する。repodataディレクトリが生成されたことがわかる。
[root@server repo]# ls -F
repodata/

テスト用のrpmパッケージをダウンロードする。
[root@server repo]# yumdownloader --disablerepo=* --enablerepo=base bc
[root@server repo]# ls -F
bc-1.06.95-13.el7.x86_64.rpm repodata/

ファイルを追加したので、データベースを更新する。
[root@server repo]# createrepo --update /tmp/repo/
Spawning worker 0 with 1 pkgs
Spawning worker 1 with 0 pkgs
Spawning worker 2 with 0 pkgs
Spawning worker 3 with 0 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

yumキャッシュをクリアする。
[root@server repo]# yum clean all

localリポジトリのパッケージを確認する。bcパッケージ(★)が存在することがわかる。
[root@server repo]# yum --disablerepo=* --enablerepo=local --showduplicates list bc
読み込んだプラグイン:fastestmirror, priorities
local | 2.9 kB 00:00:00
local/primary_db | 2.2 kB 00:00:00
Determining fastest mirrors
インストール済みパッケージ
bc.x86_64 1.06.95-13.el7 @test
利用可能なパッケージ
★bc.x86_64 1.06.95-13.el7 local


4 ネットワーク経由でyumリポジトリサーバにアクセスする方法

ここで使うマシンは、serverとclientの2台です。

clientからserver(yumリポジトリサーバ)にyumコマンドでアクセスしてみます。


4.1 server側の設定

httpdを起動する。

[root@server ~]# systemctl start httpd

ポート番号を確認する。
[root@server ~]# lsof -i:80 -P
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 1386 root 4u IPv6 21626 0t0 TCP *:80 (LISTEN)
httpd 1408 apache 4u IPv6 21626 0t0 TCP *:80 (LISTEN)
httpd 1410 apache 4u IPv6 21626 0t0 TCP *:80 (LISTEN)
httpd 1411 apache 4u IPv6 21626 0t0 TCP *:80 (LISTEN)
httpd 1412 apache 4u IPv6 21626 0t0 TCP *:80 (LISTEN)
httpd 1413 apache 4u IPv6 21626 0t0 TCP *:80 (LISTEN)
httpd 1949 apache 4u IPv6 21626 0t0 TCP *:80 (LISTEN)

80番ポートへのアクセスを許可する。
[root@server ~]# firewall-cmd --add-port=80/tcp
success

リポジトリ用のディレクトリを作成する。
[root@server ~]# mkdir /var/www/html/repo

リポジトリを作成する。
[root@server ~]# createrepo --database /var/www/html/repo/
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

/var/www/html/repoに移動する。
[root@server ~]# cd /var/www/html/repo/
[root@server repo]# pwd
/var/www/html/repo

ディレクトリを確認する。repodataディレクトリが作成されたことがわかる。
[root@server repo]# ls -F
repodata/

テスト用のrpmパッケージをダウンロードする。
[root@server repo]# yumdownloader --disablerepo=* --enablerepo=base bc

ファイルを確認する。bcパッケージがダウンロードできたことがわかる。
[root@server repo]# ls -F
bc-1.06.95-13.el7.x86_64.rpm repodata/

リポジトリをアップデートする。
[root@server repo]# createrepo --update /var/www/html/repo/
Spawning worker 0 with 1 pkgs
Spawning worker 1 with 0 pkgs
Spawning worker 2 with 0 pkgs
Spawning worker 3 with 0 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete


4.2 client側の設定

repoファイルを作成する。

[root@client ~]# vi /etc/yum.repos.d/remote.repo
[root@client ~]# cat /etc/yum.repos.d/remote.repo
[remote]
name=Remote Repo
baseurl=http://192.168.0.10/repo
gpgcheck=0

yumキャッシュをクリアする。
[root@client ~]# yum clean all

remoteリポジトリにbcパッケージがあるかどうかを確認する。remoteリポジトリにbcパッケージ(★)があることがわかる。
[root@client ~]# yum --disablerepo=* --enablerepo=remote --showduplicates list bc
読み込んだプラグイン:fastestmirror, priorities
Loading mirror speeds from cached hostfile
インストール済みパッケージ
bc.x86_64 1.06.95-13.el7 @base
利用可能なパッケージ
★bc.x86_64 1.06.95-13.el7 remote


X 参考情報

yum リポジトリを作成する

6.3.6. YUM リポジトリの作成

ローカル環境内に yum リポジトリを作成する

第4回:yumレポジトリサーバの設定