インストールISOイメージをリポジトリにする方法
今回は、ISOイメージをリポジトリにする方法について解説します。【連載コラム:Linuxシステム管理標準教科書を読む(31)】
Linuxの基本的なスキルを習得したら、Linuxサーバーをシステムとして長期に運用管理していくためのスキルを身につけるのはいかがでしょうか。このコラムでは、「Linuxシステム管理標準教科書」の全体調整を担当した筆者が改めて大切なポイントを解説していきます。
解説で使用しているAlmaLinux 9はインターネットに接続されていることが前提で、DNFコマンドでパッケージをインストールするのもインターネット上にあるリポジトリからパッケージをダウンロードして行います。しかし、なんらかの理由でインターネットに接続できない場合、いくつかの方法はありますが、手っ取り早いのはインストールで使用したISOイメージに含まれているパッケージを使用する方法です。ISOイメージをマウントし、ISOイメージをリポジトリとして参照する設定ファイルを作ることで、DNFコマンドによるパッケージのインストールができるようになります。
ISOイメージのマウント
まず、ISOイメージ内のファイルにアクセスできるよう、マウントする必要があります。mountコマンドを使う方法もありますが、GUIでログインしていると自動マウントができるので、簡単に行うためこちらの方法を使ってみます。
LinucユーザーでGUIログインした状態で、仮想マシンの仮想光学ドライブにISOイメージのファイルを読み込ませます。そうすると、自動的にマウントされます。
マウントされたかどうかは、mountコマンド、dfコマンドなどで確認できます。以下はdfコマンドの実行結果の抜粋です。
$ df
(略)
/dev/sr0 10365594 10365594 0 100% /run/media/linuc/AlmaLinux-9-6-aarch64-dvd
/run/mediaディレクトリにユーザー名でディレクトリが作られ、その下にイメージ名でマウントされているのが分かります。ユーザー名やISOイメージのディストリビューションバージョンによってディレクトリ名が異なるのできちんと確認しておいてください。
DNFコマンド用のリポジトリファイルを作成する
DNFコマンドが使用するリポジトリファイルを作成します。リポジトリファイルは/etc/yum.repos.dディレクトリに置かれています。
[linuc@localhost ~]$ cd /etc/yum.repos.d/
[linuc@localhost yum.repos.d]$ ls
almalinux-appstream.repo almalinux-media.repo
almalinux-baseos.repo almalinux-plus.repo
almalinux-crb.repo almalinux-resilientstorage.repo
almalinux-extras.repo almalinux-sap.repo
almalinux-highavailability.repo almalinux-saphana.repo
いろいろなリポジトリファイルがありますが、ISOイメージを参照するリポジトリファイルは無いので作成します。
[linuc@localhost yum.repos.d]$ sudo vi almalinux-media.repo
ファイルには以下のように記述します。ディレクトリは使用しているユーザー、ディストリビューションバージョンによって異なりますので、dfコマンドの結果を確認の上、適切に設定してください。
[media_BaseOS]
name=AlmaLinux 9 Media - BaseOS
baseurl=file:///run/media/linuc/AlmaLinux-9-6-aarch64-dvd/BaseOS/
enabled=0
gpgcheck=0
gpgkey=file:///run/media/linuc/AlmaLinux-9-6-aarch64-dvd/RPM-GPG-KEY-AlmaLinux-9
[media_AppStream]
name=AlmaLinux 9 Media - AppStream
baseurl=file:///run/media/linuc/AlmaLinux-9-6-aarch64-dvd/AppStream/
enabled=0
gpgcheck=0
gpgkey=file:///run/media/linuc/AlmaLinux-9-6-aarch64-dvd/RPM-GPG-KEY-AlmaLinux-9
baseurlの書き方
Baseurlですが、ローカルファイルを参照するために「file://」を書き、その後にフルパスで参照先のディレクトリを記述します。そのため、「/」が合計3つになります。
dnfコマンドを使ってみる
正しく動作するか確認してみます。dnfコマンドに、その他のリポジトリを無効にし、mediaで始まるリポジトリのみ有効にするオプションを付けて実行します。以下の実行例はWiresharkをインストールしています。
sudo dnf --disablerepo=\* --enablerepo=media* install wireshark
メタデータの期限切れの最終確認: 0:00:52 前の 2025年06月24日 10時56分05秒 に実施しました。
依存関係が解決しました。
================================================================================
パッケージ Arch バージョン リポジトリー サイズ
================================================================================
インストール:
wireshark aarch64 1:3.4.10-7.el9 media_AppStream 3.7 M
依存関係のインストール:
libsmi aarch64 0.4.8-30.el9 media_AppStream 2.1 M
(略)
xcb-util-wm aarch64 0.4.1-22.el9 media_AppStream 30 k
トランザクションの概要
================================================================================
インストール 14 パッケージ
合計サイズ: 41 M
インストール後のサイズ: 182 M
これでよろしいですか? [y/N]: y
(以下略)
正常に動作しているのがわかります。
リポジトリファイルの記述が少し大変ですが、インターネットに接続できない環境でのパッケージインストールが要求された場合の対応策として覚えておいてください。
- 筆者紹介
宮原 徹 氏
Linux標準教科書、Linuxサーバー構築標準教科書などの監修者。LinuCレベル1/レベル2 Version10.0の改訂作業にも協力。また、幅広いOSSに関する情報提供の場として「オープンソースカンファレンス(OSC)」の企画運営も。
<Linuxシステム管理標準教科書とは>
「Linuxシステム管理標準教科書」(システム管理教科書)は2015年4月にリリースされた標準教科書シリーズの1冊です。Linuxシステムの運用管理という観点で書かれており、システム管理者という業務において知っておかなければならない基本的なトピックが解説されています。「Linux標準教科書」「Linuxサーバー構築標準教科書」でコマンド操作やサーバー構築の基本を学んだら、このシステム管理教科書を読んで、単にLinuxを使うのではなく、システムとして長期的に管理運用していくためのスキルを身につけてください。
バックナンバー
第30回:dnfコマンドのモジュールを使ってみる
第29回:DNFを使ってみる
第28回:DNFについて
第27回:パッケージ管理について
第26回:バックアップ方法について