🗂️
Linuxのパッケージインストール備忘
前提
Red Hat系ディストリビューション(RHEL/CentOS/AlmaLinux/Rocky)を想定。
- 権限:
rootもしくはsudoが使えること - 媒体: DVDドライブ(例:
/dev/sr0)に挿入したインストールDVD、またはISOファイル - バージョン差異:
- RHEL/CentOS 7:
yum - RHEL/Alma/Rocky 8/9:
dnf(yumは互換コマンドとして動作)
- RHEL/CentOS 7:
マウントまでの流れ
- 媒体(デバイス/ISO)の確認
- DVD/Blu-ray メディア:
- デバイス名の確認:
lsblk -fもしくはblkid - 一般的には
/dev/sr0が光学ドライブ
- デバイス名の確認:
- ISOファイル:
- 例:
/root/RHEL-8.8-x86_64-dvd.iso
- 例:
- マウント先ディレクトリの準備(必要なら作成)
sudo mkdir -p /mnt/cdrom
sudo mkdir -p /mnt/iso # ISOファイル用(任意)
- マウントコマンドの実行
- 光学ドライブをマウント(読み取り専用):
sudo mount -t iso9660 -o ro /dev/sr0 /mnt/cdrom
- 一部メディアはUDF形式のため、失敗する場合は次を試す:
sudo mount -t udf,iso9660 -o ro /dev/sr0 /mnt/cdrom
- ISOファイルをループバックマウント(読み取り専用):
sudo mount -o loop,ro /path/to/file.iso /mnt/iso
- マウント確認
df -hT | grep -E '/mnt/cdrom|/mnt/iso'
# または
mount | grep -E '/mnt/cdrom|/mnt/iso'
パッケージインストール(DVD/ISOリポジトリを使う)
DVDやISOから直接パッケージを取得するため、yum/dnf のリポジトリを file:// ベースで作成する。
- RHEL 8/9 系(BaseOS と AppStream の2系統)
- リポジトリファイル作成(例:
/etc/yum.repos.d/local-dvd.repo)
sudo tee /etc/yum.repos.d/local-dvd.repo >/dev/null <<'EOF'
[local-BaseOS]
name=Local BaseOS from DVD
baseurl=file:///mnt/cdrom/BaseOS
enabled=1
gpgcheck=1
# ディストリごとのGPGキーに置き換える(例はRHELの一般的なキー)
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[local-AppStream]
name=Local AppStream from DVD
baseurl=file:///mnt/cdrom/AppStream
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
EOF
- ISOを
/mnt/isoにマウントしている場合はbaseurl=file:///mnt/iso/BaseOSなどに変更。
- RHEL/CentOS 7 系(単一ツリー)
- リポジトリファイル作成(例:
/etc/yum.repos.d/local-dvd.repo)
sudo tee /etc/yum.repos.d/local-dvd.repo >/dev/null <<'EOF'
[local-dvd]
name=Local DVD
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
EOF
- ディストリに応じて
gpgkeyは適切なキーに差し替え(Alma/Rocky 等)。不明な場合は一時的にgpgcheck=0でも可(推奨はGPG有効)。
- キャッシュ更新とリポジトリ確認
sudo yum clean all || sudo dnf clean all
sudo yum makecache || sudo dnf makecache
sudo yum repolist || sudo dnf repolist
- パッケージインストール(ローカルDVD/ISOリポジトリを優先)
sudo yum --disablerepo='*' --enablerepo='local-*' install <package>
# dnf を使う場合
sudo dnf --disablerepo='*' --enablerepo='local-*' install <package>
- アンマウントと後片付け
sudo umount /mnt/cdrom # または /mnt/iso
使用中でアンマウントできない場合は、開いているシェルのカレントディレクトリや参照中プロセスを閉じる(必要なら lsof +f -- /mnt/cdrom で確認)。
永続化(任意)
再起動後も簡単にマウントできるように /etc/fstab に登録:
- 光学ドライブ
echo '/dev/sr0 /mnt/cdrom iso9660 ro,noauto,nofail 0 0' | sudo tee -a /etc/fstab
- ISOファイル
echo '/path/to/file.iso /mnt/iso iso9660 loop,ro,noauto,nofail 0 0' | sudo tee -a /etc/fstab
noauto を付けると自動マウントはしないが sudo mount /mnt/cdrom のように簡易にマウント可能。
トラブルシュート
- マウント時に「wrong fs type」:
-t udf,iso9660を指定して再試行。 - 権限エラー:
sudoを付ける。 - リポジトリが参照されない:
--disablerepo='*' --enablerepo='local-*'で絞り込む。 - サブスクリプションや他リポジトリの競合: 一時的に無効化、または
priorityを設定。
Discussion