Help us understand the problem. What is going on with this article?

RHEL8/CentOS8 で yum(dnf) を使って DVD からパッケージをインストールする

要約

  • インターネットアクセスが制限されている RHEL8/CentOS8 で yum(dnf) を使ってパッケージをインストールする方法。
  • 7系までとは違い、 DVD のリポジトリが AppStreamBaseOS に分かれるので注意が必要。
  • dnf が標準になったので dnf を使ってドヤれる。1

背景

セキュリティは厳しいんだけど、そんなにリッチじゃない環境だとインターネットにアクセスできず、プライベートリポジトリサーバも立っていない所は多々あります。
そんな環境で先日リリースされたばかりの CentOS8 をセットアップする機会があったので、早速 DVD から yum(dnf) でパッケージをインストールする方法を調べてみました。

前提条件

確認したのは CentOS8.0(1905) です。
DVD は /dev/sr0 にマッピングされているものとします。 ISO ファイルをこの RHEL8/CentOS8 のサーバ内に保存している場合は、 /dev/sr0 をその ISO ファイルに読み替えてください。

手順

リポジトリを設定する

  1. マウントディレクトリを作成。

    # mkdir /media/rhel8dvd
    
  2. DVD をマウント。

    # mount -o loop /dev/sr0 /media/rhel8dvd
    
  3. リポジトリを追加。

    # 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 を保存して終了。

  4. キャッシュクリア

    # 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

おしまい。


  1. 個人の感想です。 

ktooi
開発をしたかったインフラエンジニア。システム、監視装置、CI/CD Pipelineあたりの設計から構築、設定くらいまでを担当。よく使う言語は Python, Perl。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした