Rocky Linux 10
Sponsored Link

DNF/Yum リポジトリのミラーサーバーを構成する2025/07/25

 

ローカルネットワーク内に DNF/Yum リポジトリのミラーサーバーを構築します。
ローカルネットワーク内に多数の更新すべきサーバーが存在する場合等では、ローカル DNF/Yum リポジトリがあると更新も迅速に進みます。

当例では、デフォルトで有効となっている [BaseOS], [AppStream], [Extras] リポジトリについてローカルミラーを作成します。

[1]

こちらを参考に Apache httpd をインストールして起動しておきます

[2] その他、必要なパッケージをインストールしておきます。
[root@dlp ~]#
dnf -y install yum-utils
[3] リポジトリとするディレクトリを作成し、Rocky Linux 公式リポジトリからデータをコピーします。 データ量が大きいため、初回コピーには相応の時間がかかります。
# ディレクトリ作成

[root@dlp ~]#
mkdir -p /var/www/repos/rockylinux/10/x86_64/os

[root@dlp ~]#
chmod -R 755 /var/www/repos
# 公式リポジトリからデータコピー

[root@dlp ~]#
reposync -p /var/www/repos/rockylinux/10/x86_64/os/ --repo=baseos --download-metadata
[root@dlp ~]#
reposync -p /var/www/repos/rockylinux/10/x86_64/os/ --repo=appstream --download-metadata
[root@dlp ~]#
reposync -p /var/www/repos/rockylinux/10/x86_64/os/ --repo=extras-common --download-metadata
[4] 公式リポジトリから定期的にデータを更新するよう Cron 登録しておきます。下例では 1 日 1 回更新します。
[root@dlp ~]#
vi /etc/cron.daily/update-repo
# 新規作成

#!/bin/bash

VER='10'
ARCH='x86_64'
REPOS=(baseos appstream extras-common)

for REPO in ${REPOS[@]}
do
    reposync -p /var/www/repos/rockylinux/${VER}/${ARCH}/os/ --repo=${REPO} --download-metadata --newest-only
done

[root@dlp ~]#
chmod 755 /etc/cron.daily/update-repo

[5] 他ホストからリポジトリが参照できるよう Apache httpd の設定を変更します。
[root@dlp ~]#
vi /etc/httpd/conf.d/repos.conf
# 新規作成

Alias /repos /var/www/repos
<directory /var/www/repos>
    Options +Indexes
    Require all granted
</directory>

[root@dlp ~]#
systemctl restart httpd

[6] Firewalld を有効にしている場合は、HTTP サービスの許可が必要です。
[root@dlp ~]#
firewall-cmd --add-service=http

success
[root@dlp ~]#
firewall-cmd --runtime-to-permanent

success
[7] クライアント側から設定したローカルリポジトリを参照するには DNF/Yum リポジトリの設定を変更します。以上で完了です。
[root@client ~]#
vi /etc/yum.repos.d/rocky.repo
# 参照先をローカルリポジトリに変更

[baseos]
name=Rocky Linux $releasever - BaseOS
#mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=BaseOS-$releasever$rltype
#baseurl=http://dl.rockylinux.org/$contentdir/$releasever/BaseOS/$basearch/os/
baseurl=http://dlp.srv.world/repos/rockylinux/$releasever/$basearch/os/baseos/
gpgcheck=1
enabled=1
countme=1
metadata_expire=6h
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-10

[appstream]
name=Rocky Linux $releasever - AppStream
#mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=AppStream-$releasever$rltype
#baseurl=http://dl.rockylinux.org/$contentdir/$releasever/AppStream/$basearch/os/
baseurl=http://dlp.srv.world/repos/rockylinux/$releasever/$basearch/os/appstream/
gpgcheck=1
enabled=1
countme=1
metadata_expire=6h
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-10

[root@client ~]#
vi /etc/yum.repos.d/rocky-extras.repo
# 参照先をローカルリポジトリに変更

[extras]
name=Rocky Linux $releasever - Extras
#mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=extras-$releasever$rltype
#baseurl=http://dl.rockylinux.org/$contentdir/$releasever/extras/$basearch/os/
baseurl=http://dlp.srv.world/repos/rockylinux/$releasever/$basearch/os/extras-common/
gpgcheck=1
enabled=1
countme=1
metadata_expire=6h
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-10

[root@client ~]#
dnf clean all

[root@client ~]#
dnf repolist

repo id                                      repo name
appstream                                    Rocky Linux 10 - AppStream
baseos                                       Rocky Linux 10 - BaseOS
extras                                       Rocky Linux 10 - Extras
関連コンテンツ