ローカルリポジトリの構築手順 (RockyLinux 9.0編)

スポンサーリンク

近年のモダン開発はインターネットに接続されることが前提ですが、VMware製品を導入するような大手企業はインターネットに接続されていない環境での構築を強いられるのは珍しいことではありません。このような環境で素早く構築ができるよう、閉じた環境でRockyLinuxのリポジトリを構築する方法をまとめます。

前提

参照資料

動作確認済環境

  • Rocky Linux 8.6
  • Rocky Linux 9.0

isoファイルを使用する場合

isoファイルのマウント

isoファイルを適当な位置にマウントします。以下、/mnt/にマウントすることを前提として説明をします。

cd /var/tmp/
wget https://download.rockylinux.org/pub/rocky/9/isos/x86_64/Rocky-9.0-x86_64-dvd.iso
mount /var/tmp/Rocky-9.0-x86_64-dvd.iso /mnt

appstream, baseos, extras無効化

インターネットからパッケージをダウンロードするリポジトリを無効にします。まずは、デフォルトで有効になっているリポジトリを確認します。

[root@rocky050 ~]# dnf repolist
repo id                         repo name
appstream                       Rocky Linux 9 - AppStream
baseos                          Rocky Linux 9 - BaseOS
extras                          Rocky Linux 9 - Extras
[root@rocky050 ~]# 

appstream, baseos, extrasを無効にします。

dnf config-manager --disable appstream
dnf config-manager --disable baseos
dnf config-manager --disable extras

リポジトリの定義

ISOファイルを参照するリポジトリを作成します。

cat << 'EOF' > /etc/yum.repos.d/Rocky-Linux-Media.repo 
[media-baseos]
name=Rocky Linux $releasever - Media - BaseOS
baseurl=file:///mnt/BaseOS
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9

[media-appstream]
name=Rocky Linux $releasever - Media - AppStream
baseurl=file:///mnt/AppStream
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9
EOF

動作確認

ローカルのisoファイルからパッケージインストール可能なことを確認します。

[root@rocky050 ~]# dnf install httpd
Rocky Linux 9 - Media - BaseOS                   13 MB/s | 1.7 MB     00:00    
Rocky Linux 9 - Media - AppStream                23 MB/s | 6.0 MB     00:00    
Last metadata expiration check: 0:00:01 ago on Wed 27 Jul 2022 07:07:02 PM JST.
Dependencies resolved.
================================================================================
 Package               Arch       Version             Repository           Size
================================================================================
Installing:
 httpd                 x86_64     2.4.51-7.el9_0      media-appstream     1.4 M
Installing dependencies:
 apr                   x86_64     1.7.0-11.el9        media-appstream     123 k
 apr-util              x86_64     1.6.1-20.el9        media-appstream      94 k
 apr-util-bdb          x86_64     1.6.1-20.el9        media-appstream      13 k
 httpd-filesystem      noarch     2.4.51-7.el9_0      media-appstream      14 k
 httpd-tools           x86_64     2.4.51-7.el9_0      media-appstream      81 k
 mailcap               noarch     2.1.49-5.el9        media-baseos         32 k
 rocky-logos-httpd     noarch     90.9-1.el9          media-appstream      24 k
Installing weak dependencies:
 apr-util-openssl      x86_64     1.6.1-20.el9        media-appstream      15 k
 mod_http2             x86_64     1.15.19-2.el9       media-appstream     149 k
 mod_lua               x86_64     2.4.51-7.el9_0      media-appstream      61 k

Transaction Summary
================================================================================
Install  11 Packages

Total size: 2.0 M
Installed size: 6.0 M
Is this ok [y/N]: y

 <omitted>

HTTPで公開する場合

閉じられた環境でisoファイルを全部のOSに配布するのは非常に時間がかかります。パッケージを公開したHTTPサーバを1台だけ構築して、そのサーバからパッケージをダウンロードさせるようにすると効率的です。

reposyncと呼ばれるリポジトリをそのままコピーする仕組みをありますが、おそらくVMware製品を使用するプロジェクトはお堅い(例:インターネット接続不可)場合も予想され、reposyncに頼らずに構築できるようになった方が安心です。

httpdのインストール

何らかの方法でHTTPサーバをインストールします。前述のISOファイルを用いる方法でもRPMパッケージから直接インストールする方法でも、どちらでも差し支えありません。また、apacheを使用する必要はなく、nginxなどお好みのHTTPサーバを使用して差し支えございません。

dnf install httpd
systemctl enable httpd.service --now

パッケージの公開

HTTPで公開されているディレクトリへパッケージを配置します。

mkdir /var/www/html/rocky
umount /mnt
mount /var/tmp/Rocky-9.0-x86_64-dvd.iso /var/www/html/rocky/

リポジトリの定義

httpdを参照するリポジトリを定義します。下記ハイライトのIPアドレス部分は環境に応じて変更ください。

rm -f /etc/yum.repos.d/Rocky-Linux-Media.repo
cat << 'EOF' > /etc/yum.repos.d/Rocky-Linux-Internal.repo 
[internal-baseos]
name=Rocky Linux $releasever - Internal - BaseOS
baseurl=http://192.168.20.50/rocky/BaseOS
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9

[internal-appstream]
name=Rocky Linux $releasever - Internal - AppStream
baseurl=http://192.168.20.50/rocky/AppStream
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9
EOF

動作確認

LAN内のHTTPサーバからパッケージインストール可能なことを確認します。

[root@rocky050 ~]# dnf install mysql
Rocky Linux 9 - Internal - BaseOS                                                                                                                                            40 MB/s | 1.7 MB     00:00    
Rocky Linux 9 - Internal - AppStream                                                                                                                                         68 MB/s | 6.0 MB     00:00    
Dependencies resolved.
============================================================================================================================================================================================================
 Package                                                    Architecture                           Version                                         Repository                                          Size
============================================================================================================================================================================================================
Installing:
 mysql                                                      x86_64                                 8.0.28-1.el9                                    internal-appstream                                 2.6 M
Installing dependencies:
 mariadb-connector-c-config                                 noarch                                 3.2.6-1.el9_0                                   internal-appstream                                 9.8 k
 mysql-common                                               x86_64                                 8.0.28-1.el9                                    internal-appstream                                  70 k

Transaction Summary
============================================================================================================================================================================================================
Install  3 Packages

Total download size: 2.7 M
Installed size: 59 M
Is this ok [y/N]: 

 <omitted>

タイトルとURLをコピーしました