現在位置: ホーム / みらくるブログ / MIRACLE LINUX 8.4 でレポジトリのミラーサーバーを立ててみた

MIRACLE LINUX 8.4 でレポジトリのミラーサーバーを立ててみた

今回は dnf ブログ第2弾として、レポジトリのミラーサーバーをローカルで立てて dnf コマンドを使用してアップデートが行えるかまでを確認しました!

使用環境

・MIRACLE LINUX 8.4

MIRACLE LINUX とは

まず最初に、今回使用したディストリビューションである MIRACLE LINUXの紹介をします!
MIRACLE LINUX とはサイバートラスト社が開発を行っている RHEL の派生ディストリビューション(クローン)です。
これまでは、有償ライセンスでの提供を行っていましたが、MIRACLE LINUX 8.4 からはライセンス費用を無償で公開しています!
このブログで少しでもMIRACLE LINUX に興味を持っていただけたらぜひ一度インストールをしてみてください!
 
MIRACLE LINUX 8.4 のインストールはこちらの記事でも紹介しています!

ローカルミラーサーバーの作成

ここからは実際にローカルミラーサーバーを立てる手順を紹介していきます。

1.必要パッケージのインストール

ミラーサーバーの作成に必要なパッケージのインストールを行います。
今回は Apatch を使用しています。 

# dnf install httpd yum-utils
8-latest-BaseOS 902 kB/s | 27 MB 00:30
8-latest-AppStream 14 B/s | 35 MB 44091:45
メタデータの期限切れの最終確認: 0:00:07 時間前の 2022年07月19日 11時40分37秒 に実施しました。
依存関係が解決しました。
=====================
パッケージ Arch バージョン リポジトリー サイズ
=====================
インストール:
httpd x86_64 2.4.37-43.module+el8+1387+fd72f2f7.1.ML.1
8-latest-AppStream 1.4 M
yum-utils noarch 4.0.21-11.el8 8-latest-BaseOS 72 k
アップグレード:
dnf noarch 4.7.0-8.el8 8-latest-BaseOS 539 k
dnf-data noarch 4.7.0-8.el8 8-latest-BaseOS 154 k
dnf-plugins-core noarch 4.0.21-11.el8 8-latest-BaseOS 70 k
json-c x86_64 0.13.1-3.el8.ML.1 8-latest-BaseOS 40 k
libdnf x86_64 0.63.0-8.el8.ML.1 8-latest-BaseOS 704 k
libmodulemd x86_64 2.13.0-1.el8 8-latest-BaseOS 232 k
librepo x86_64 1.14.2-1.el8 8-latest-BaseOS 92 k
libsolv x86_64 0.7.20-1.el8 8-latest-BaseOS 374 k
python3-dnf noarch 4.7.0-8.el8 8-latest-BaseOS 544 k
python3-dnf-plugins-core noarch 4.0.21-11.el8 8-latest-BaseOS 239 k
python3-hawkey x86_64 0.63.0-8.el8.ML.1 8-latest-BaseOS 116 k
python3-libdnf x86_64 0.63.0-8.el8.ML.1 8-latest-BaseOS 777 k
yum noarch 4.7.0-8.el8 8-latest-BaseOS 205 k
依存関係のインストール:
apr x86_64 1.6.3-12.el8 8-latest-AppStream 128 k
apr-util x86_64 1.6.1-6.el8 8-latest-AppStream 104 k
httpd-filesystem noarch 2.4.37-43.module+el8+1387+fd72f2f7.1.ML.1
8-latest-AppStream 39 k
httpd-tools x86_64 2.4.37-43.module+el8+1387+fd72f2f7.1.ML.1
8-latest-AppStream 106 k
miraclelinux-logos-httpd noarch 84.4-2.el8 8-latest-BaseOS 12 k
mod_http2 x86_64 1.15.7-3.module+el8+1387+fd72f2f7
8-latest-AppStream 153 k
弱い依存関係のインストール:
apr-util-bdb x86_64 1.6.1-6.el8 8-latest-AppStream 23 k
apr-util-openssl x86_64 1.6.1-6.el8 8-latest-AppStream 26 k
モジュールストリームの有効化中:
httpd 2.4
トランザクションの概要
======================
インストール 10 パッケージ
アップグレード 13 パッケージ
ダウンロードサイズの合計: 6.0 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/23): miraclelinux-logos-httpd-84.4-2.el8.noarch.rpm 44 kB/s | 12 kB 00:00
(2/23): yum-utils-4.0.21-11.el8.noarch.rpm 166 kB/s | 72 kB 00:00
(3/23): apr-1.6.3-12.el8.x86_64.rpm 265 kB/s | 128 kB 00:00
:
:
miraclelinux-logos-httpd-84.4-2.el8.noarch
mod_http2-1.15.7-3.module+el8+1387+fd72f2f7.x86_64
yum-utils-4.0.21-11.el8.noarch
完了しました!

2.Apatch の起動

インストールを行っただけでは起動していないため、以下のコマンドを実行しApatch の起動を行います。status コマンドで起動していることが確認できたら、次の作業を進みます。

# systemctl start httpd
# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: dis>
Active: active (running) since Fri 2022-08-19 02:33:34 JST; 3s ago
Docs: man:httpd.service(8)
Main PID: 36719 (httpd)
Status: "Started, listening on: port 80"
Tasks: 213 (limit: 11254)
Memory: 17.1M
CGroup: /system.slice/httpd.service
├─36719 /usr/sbin/httpd -DFOREGROUND
├─36729 /usr/sbin/httpd -DFOREGROUND
├─36730 /usr/sbin/httpd -DFOREGROUND
├─36731 /usr/sbin/httpd -DFOREGROUND
└─36732 /usr/sbin/httpd -DFOREGROUND
:
:

3.コピー先ディレクトリの作成

"/var/www" 配下にメタデータをコピーするためのディレクトリを作成します。
今回はディレクトリ名を "ml8-repos" として作成しました。

# mkdir ml8-repos
# ls
cgi-bin html ml8-repos

4.メタデータのコピー

レポジトリのメタデータをコピーする準備として、正式なレポジトリ名を知る必要があるため以下のコマンドで確認を行います。

# dnf repolist
repo id repo の名前
8-latest-AppStream 8-latest-AppStream
8-latest-BaseOS 8-latest-BaseOS

レポジトリ名が確認出来たら、AppStream および BaseOS のメタデータをコピーします。
コピー作業は長時間かかります。

# reposync -p /var/www/ml8-repos/ --repo=8-latest-BaseOS --download-metadata
8-latest-BaseOS                                     15 kB/s | 4.3 kB 00:00    
8-latest-BaseOS                                    598 kB/s |  69 MB 01:57    
(1/9049): ModemManager-1.10.8-4.el8.x86_64.rpm     111 kB/s | 922 kB 00:08    
(2/9049): ModemManager-1.10.4-1.el8.x86_64.rpm     111 kB/s | 926 kB 00:08    
:
:
# reposync -p /var/www/ml8-repos/ --repo=8-latest-AppStream --download-metadata
8-latest-AppStream 2.0 kB/s | 4.7 kB 00:02
8-latest-AppStream 432 kB/s | 78 MB 03:04
:
:

5.Apatch のページ作成

 " /etc/httpd/conf.d" 配下に以下のファイルを作成します。

# vi /etc/httpd/conf.d/repos.conf

===== 以下ファイルの内容 =====

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

conf ファイルを記載したら、以下のコマンドを実行し Apatch の再起動を行い設定を反映させます。

# systemctl restart httpd

無事設定が反映されたら、"http://localhost/repos" へアクセスすると以下のページが表示されます。

6.レポジトリの参照先変更

"/etc/yum.repo" 配下にある "miraclelinux.repo" ファイルをひらき、緑字の部分を追記します。
URLについては設定した内容に合わせて変更を行ってください。

# vi /etc/yum.repos.d/miraclelinux.repo

===== 以下ファイルの内容 =====

# miraclelinux.repo

[8-latest-BaseOS]
name=8-latest-BaseOS
#mirrorlist=https://repo.dist.miraclelinux.net/miraclelinux/mirrorlist/$releasever/$basearch/baseos
mirrorlist=http://localhost/repos/8-latest-BaseOS/mirrorlist
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY


[8-latest-AppStream]
name=8-latest-AppStream
#mirrorlist=https://repo.dist.miraclelinux.net/miraclelinux/mirrorlist/$releasever/$basearch/appstream
mirrorlist=http://localhost/repos/8-latest-AppStream/mirrorlist
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY

7.動作確認

dnf コマンドを使用して実際にインストールが行えるか確認をします。
今回はパッケージのインストールを行い確認しました。問題なく実行できることが分かります。

# dnf install git
メタデータの期限切れの最終確認: 1:42:10 時間前の 2022年08月19日 06時12分23秒 に実施しました。
依存関係が解決しました。
================================================================================
 パッケージ      Arch  バージョン       リポジトリー      サイズ
================================================================================
インストール:
 git             x86_64 2.31.1-2.el8     8-latest-AppStream 160 k
依存関係のインストール:
 git-core        x86_64 2.31.1-2.el8     8-latest-AppStream 4.7 M
 git-core-doc    noarch 2.31.1-2.el8     8-latest-AppStream 2.6 M
 perl-Error      noarch 1:0.17025-2.el8  8-latest-AppStream 45 k
 perl-Git        noarch 2.31.1-2.el8     8-latest-AppStream 77 k
 perl-TermReadKey x86_64 2.37-7.el8       8-latest-AppStream 39 k

トランザクションの概要
================================================================================
インストール  6 パッケージ

ダウンロードサイズの合計: 7.7 M
インストール後のサイズ: 38 M
これでよろしいですか? [y/N]:y
:
:

まとめ

初めてレポジトリのミラーサーバーを立ててみました!
作業を行うまでは、難しいという印象しかなかったのですが実際にやってみると必要な手順も少なく、分かりやすいもので怖がる必要はなかったと感じました。
今回は行っていないのですが、cron に登録して定期的にデータの更新を行うようにすると実運用の際には良いと思いました。

MIRACLE LINUX 関連ページ

MIRACLE LINUX に興味を持っていただけたら、ぜひ以下のページも合わせてご確認ください!

タグ: