LoginSignup
13
23

More than 1 year has passed since last update.

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

Last updated at Posted at 2018-01-11

最新の記事は、以下に記載しました。
https://hana-shin.hatenablog.com/entry/2023/03/29/234856

#1 環境
ゲストマシンはサーバとクライアントの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レポジトリサーバの設定

13
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
23