====== DNFによるローカルリポジトリの設定 ======
[[:linux|一つ上へ]]
インターネット環境がない場合はDVDやISOをリポジトリとして登録して使用することがあるため、
ローカルリポジトリの設定方法を知っておくと柔軟に対応できる。
まずは、ディスクを挿入、または仮想マシンでISOファイルを読み込み、ディスクの情報を確認する。
lsblkコマンドでブロックデバイスの情報を取得できる。
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 127G 0 disk
tqsda1 8:1 0 600M 0 part /boot/efi
tqsda2 8:2 0 1G 0 part /boot
mqsda3 8:3 0 125.4G 0 part
tqalmalinux-root 253:0 0 117.5G 0 lvm /
mqalmalinux-swap 253:1 0 7.9G 0 lvm [SWAP]
sr0 11:0 1 11.4G 0 rom
次に、/dev/sr0の情報を取得する。blkidコマンドで挿入されているディスクの情報を取得できる。
# blkid /dev/sr0
/dev/sr0: UUID="2025-05-16-14-23-00-00" LABEL="AlmaLinux-9-6-x86_64-dvd" TYPE="iso9660" PTUUID="5060481f" PTTYPE="dos"
マウントポイントを作成し、マウント処理を行う。
# mkdir /mnt/dvdrepo
# mount -o loop,ro -t iso9660 /dev/sr0 /mnt/dvdrepo
マウントしたディスクの内容を指定して、リポジトリの登録を行う。
/etc/yum.repos.dの中にdvd.repoを作成し、以下のように記載する。
それぞれ、BaseOsとAppStreamにあるパッケージを参照するように設定している。
[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鍵が配置されている。
# 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
リポジトリを作成したら、クリーンアップする。
dnf clean all
パッケージをインストールする際は、オプションで既存のリポジトリを無効にし、追加したリポジトリを指定してインストールを行う。
# dnf update -y --disablerepo=\* --enablerepo=local_dvd_*