セキュリティの関係でインターネットに接続できない環境では、yumコマンドやdnfコマンドなどのパッケージ管理コマンドをそのまま使うことができません。
ローカルリポジトリを作成することで、そういった環境でもパッケージによるインストールを行うことができます。
ここでは、ディスクやISOファイルをリポジトリとして登録する方法について記載します。
ディスクのマウント
まずはブロックデバイスの情報を取得します。
lsblkコマンドを実行することで情報を取得できます。
# lsblkすると、以下のように出力されます。
sr0 11:0 1 11.4G 0 rom次に、/dev/sr0の情報を取得します。
blkidコマンドを実行すると、挿入されているディスクの情報を取得できます。
Bash
blkid /dev/sr0マウントポイントを作成し、マウントします。
mountコマンドのオプションでは、読み込み専用(ro)をつけておかないとエラーになります。
Bash
mkdir /mnt/dvdrepo
mount -o loop,ro -t iso9660 /dev/sr0 /mnt/dvdrepoリポジトリの作成
/etc/yum.repos.dの中にdvd.repoを作成し、以下のように記載します。
それぞれ、BaseOsとAppStreamにあるパッケージを参照するように設定しています。
Bash
[local_dvd_BaseOS]
name=Alma Linux 9 x86_64 DVD - BaseOs
baseurl=file:///mnt/dvdrepo/BaseOS/
gpgcheck=0
enabled=0
gpgkey=file:///mnt/dvdrepo/RPM-GPG-KEY-AlmaLinux-9
[local_dvd_AppStream]
name=AlmaLinux 9 x86_64 DVD - AppStream
baseurl=file:///mnt/dvdrepo/AppStream/
enabled=0
gpgcheck=0
gpgkey=file:///mnt/dvdrepo/RPM-GPG-KEY-AlmaLinux-9マウントしたディスクの内容は以下の通りです。AppStreamとBaseOSのパッケージが格納されたディレクトリとGPG鍵が配置されています。
Bash
# ls -lh /mnt/dvdrepo/
合計 36K
dr-xr-xr-x 4 root root 2.0K 5月 16 23:23 AppStream
dr-xr-xr-x 4 root root 2.0K 5月 16 23:23 BaseOS
dr-xr-xr-x 3 root root 2.0K 5月 16 23:23 EFI
-r--r--r-- 1 root root 290 5月 16 22:47 EULA
-r--r--r-- 1 root root 18K 5月 16 22:47 LICENSE
-r--r--r-- 1 root root 3.1K 5月 16 22:47 RPM-GPG-KEY-AlmaLinux-9
-r--r--r-- 1 root root 1.6K 5月 16 23:23 TRANS.TBL
-r--r--r-- 1 root root 719 5月 16 23:22 extra_files.json
dr-xr-xr-x 3 root root 2.0K 5月 16 23:23 images
dr-xr-xr-x 2 root root 2.0K 5月 16 23:23 isolinux
-r--r--r-- 1 root root 86 5月 16 23:22 media.repoリポジトリを作成したら、クリーンアップします。
Bash
dnf clean all–enablerepoオプションでリポジトリを指定してdnfコマンドを実行することで、エラーせずにパッケージを使用することができます。
Bash
dnf update -y --disablerepo=\* --enablerepo=local_dvd_*この他にも、あらかじめrpmファイルをダウンロードしておいたディレクトリを指定してリポジトリを作成する方法もありますが今回はここまで。
ここまでお読みいただきありがとうございました。