要約
- インターネットアクセスが制限されている RHEL8/CentOS8 で
yum(dnf)
を使ってパッケージをインストールする方法。 - 7系までとは違い、 DVD のリポジトリが
AppStream
とBaseOS
に分かれるので注意が必要。 -
dnf
が標準になったのでdnf
を使ってドヤれる。1
背景
セキュリティは厳しいんだけど、そんなにリッチじゃない環境だとインターネットにアクセスできず、プライベートリポジトリサーバも立っていない所は多々あります。
そんな環境で先日リリースされたばかりの CentOS8 をセットアップする機会があったので、早速 DVD から yum(dnf)
でパッケージをインストールする方法を調べてみました。
前提条件
確認したのは CentOS8.0(1905) です。
DVD は /dev/sr0
にマッピングされているものとします。 ISO ファイルをこの RHEL8/CentOS8 のサーバ内に保存している場合は、 /dev/sr0
をその ISO ファイルに読み替えてください。
手順
リポジトリを設定する
-
マウントディレクトリを作成。
# mkdir /media/rhel8dvd
-
DVD をマウント。
# mount -o loop /dev/sr0 /media/rhel8dvd
-
リポジトリを追加。
# vi /etc/yum.repos.d/InstallMedia.repo
/etc/yum.repos.d/InstallMedia.repo
の中身は RHEL8 か CentOS8 かで微妙に異なります。-
RHEL8 の場合
[InstallMedia-BaseOS] name=Red Hat Enterprise Linux 8 - BaseOS metadata_expire=-1 gpgcheck=1 enabled=1 baseurl=file:///media/rhel8dvd/BaseOS/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release [InstallMedia-AppStream] name=Red Hat Enterprise Linux 8 - AppStream metadata_expire=-1 gpgcheck=1 enabled=1 baseurl=file:///media/rhel8dvd/AppStream/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
-
CentOS8 の場合
[InstallMedia-BaseOS] name=Red Hat Enterprise Linux 8 - BaseOS metadata_expire=-1 gpgcheck=1 enabled=1 baseurl=file:///media/rhel8dvd/BaseOS/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial [InstallMedia-AppStream] name=Red Hat Enterprise Linux 8 - AppStream metadata_expire=-1 gpgcheck=1 enabled=1 baseurl=file:///media/rhel8dvd/AppStream/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
RHEL8 と CentOS8 では
gpgkey
のファイル名が異なります。
編集出来たらvim
を保存して終了。 -
-
キャッシュクリア
# dnf clean all
dnf
コマンドを使った最初のドヤりポイント。
DVD からパッケージをインストール
リポジトリを設定したら DVD からパッケージをインストールすることができます。
# dnf install httpd
標準で設定されているリポジトリを一時的に無効化して DVD のリポジトリだけを利用する場合は次のように実行します。
# dnf install --disablerepo=\* --enablerepo=InstallMedia-* httpd
・・・そういえば、 CentOS7 までの yum
は有効になっているリポジトリの内、一つでもアクセスできないリポジトリがあると何もインストールできなかったのが、 RHEL8/CentOS8 ではアクセスできるリポジトリだけで依存関係を解決できるならインストールできるようになった気がする。
余談
dnf
コマンドは yum
コマンドに置き換えてもそのまま動作します。
ただ、実体としては dnf-3
に置き換わっているみたいですね。
# ls -l /usr/bin/{yum,dnf*}
lrwxrwxrwx. 1 root root 5 May 13 19:34 /usr/bin/dnf -> dnf-3
-rwxr-xr-x. 1 root root 1954 May 13 19:34 /usr/bin/dnf-3
lrwxrwxrwx. 1 root root 5 May 13 19:34 /usr/bin/yum -> dnf-3
FYI
おしまい。
-
個人の感想です。 ↩