linux:dnf_local
DNFによるローカルリポジトリの設定
インターネット環境がない場合は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_*
linux/dnf_local.txt · 最終更新: 2025/10/30 01:37 by mikoto