LoginSignup
1
0

【Linux】オフライン環境でパッケージインストール/アップデート【RHEL9】

Last updated at Posted at 2024-04-06

はじめに

オフラインでクローズド環境にRHELを利用しサーバを構築することも多いかと思いますが、その際にインターネット接続の無い状態でのパッケージインストール及び、アップデート方法について記載したいと思います。

いくつか方法があるかと思いますが、今回は手軽に行えるISOリポジトリを作成したいと思います。

ISOリポジトリで出来ること

  • オフライン環境でdnf(yum)を使ったパッケージ管理が行える
  • マイナーリリースと時点の最新のパッケージ及び、エラータのインストール、アップデートが可能
  • OS再起動後も利用可能(これが記載されてない手順が多いです)
  • 一度作ればマイナーリリース毎にisoイメージを置き換えればOK

主に上記の事項が可能になります。
問題点としては、マイナーリリース時点でのパッケージ、エラータのインストール、アップデートしか行えないことになります。

RHELのライフサイクルでは半年に一度、マイナーバージョンがリリースされる為、つまりISOリポジトリを利用したパッケージ管理では、半年に一度しかパッケージのアップデートやエラータの適用が行えないことになります。
【参考】

ISOリポジトリの作成手順

前提

  • Red Hat Developer Program に登録していること
  • ベース環境でサブスクリプション連携済みであること

今回、ISOリポジトリを作成するベース環境は以下の通りになります。

$ cat /etc/redhat-release
Red Hat Enterprise Linux release 9.2 (Plow)

そして、ISOリポジトリに利用するISOイメージはRHEL9.3になります。
※9.2でも問題ございません。

rhel-9.3-x86_64-dvd.iso

1.まずは上記isoイメージを適当なディレクトリに格納しましょう。
今回は以下のディレクトリに格納しています。

/usr/local/iso/

2.マウント先になるディレクトリを作成します。
任意のディレクトリで構いませんが、後述の手順にてこちらのパスを利用します。

$ mkdir /mnt/rhiso

3.下記のコマンドで作成したディレクトリにISOイメージをマウントします。

$ mount -o loop /usr/local/iso/rhel-9.3-x86_64-dvd.iso /mnt/rhiso/
mount: /mnt/rhiso: 警告: ソースは書き込み禁止です、読み込み専用でマウントします.

デフォルトで読み込み専用でマウントされる為、標準出力されている内容に問題はありません。

4.次に、リポジトリファイルを作成します。

vim /etc/yum.repos.d/rhel9.repo

下記の内容を記述していきます。

  1 [local-BaseOS]
  2 name=BaseOS Packages Red Hat Enterprise Linux 9
  3 metadata_expire=-1
  4 gpgcheck=1
  5 enabled=1
  6 baseurl=file:///mnt/rhiso/BaseOS/
  7 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
  8
  9 [local-AppStream]
 10 name=AppStream Packages Red Hat Enterprise Linux 9
 11 metadata_expire=-1
 12 gpgcheck=1
 13 enabled=1
 14 baseurl=file:///mnt/rhiso/AppStream/
 15 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

ここでポイントとなるのが1行目と9行目のリポジトリIDに

  • [local-BaseOS]
  • [local-AppStream]
    に共通のタイトルを付けます。今回はlocalとつけていますが、共通であれば何でも構いません。

そして、6行目と14行目に手順2で作成したディレクトリのパスを上記の様に指定してください。

5.OS再起動後も自動的にマウントされる様、/etc/fstabに以下の様に最終行に記述を行います。

#
# /etc/fstab
# Created by anaconda on Sun Mar 17 07:27:36 2024
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/rhel-root   /                       xfs     defaults        0 0
UUID=bb202b46-dc7c-4b93-a9b8-db6ae3eca1bd /boot                   xfs     defaults        0 0
/dev/mapper/rhel-swap   none                    swap    defaults        0 0
/usr/local/iso/rhel-9.3-x86_64-dvd.iso /mnt/rhiso iso9660 ro,loop         0 0

こちらの記述方法が間違っていた場合、再移動後emergency modeで起動する可能性がありますが
そうなった場合はrootでログインし記述を修正してください。

以上で、ISOリポジトリの作成は完了となります。

dnf(yum)でインストール、アップデートをしてみよう

適当にApacheをインストールしてみます。

1.まず初めにキャッシュクリアをします

$ dnf clean all

2.下記のコマンドで明示的に参照先のリポジトリを指定します。
ここで便利なのが手順4で指定したリポジトリIDになります。
共通のタイトルを付けることでまとめて指定することが出来ます。

$ dnf install --disablerepo=* --enablerepo=local* httpd
サブスクリプション管理リポジトリーを更新しています。
BaseOS Packages Red Hat Enterprise Linux 9                                                                                                                                                                   292 MB/s | 2.0 MB     00:00
AppStream Packages Red Hat Enterprise Linux 9                                                                                                                                                                384 MB/s | 6.5 MB     00:00
依存関係が解決しました。
=============================================================================================================================================================================================================================================
 パッケージ                                                    アーキテクチャー                                  バージョン                                                 リポジトリー                                               サイズ
=============================================================================================================================================================================================================================================
インストール:
 httpd                                                         x86_64                                            2.4.57-5.el9                                               local-AppStream                                             52 k
依存関係のインストール:
 apr                                                           x86_64                                            1.7.0-11.el9                                               local-AppStream                                            127 k
 apr-util                                                      x86_64                                            1.6.1-23.el9                                               local-AppStream                                             97 k
 apr-util-bdb                                                  x86_64                                            1.6.1-23.el9                                               local-AppStream                                             14 k
 httpd-core                                                    x86_64                                            2.4.57-5.el9                                               local-AppStream                                            1.5 M
 httpd-filesystem                                              noarch                                            2.4.57-5.el9                                               local-AppStream                                             16 k
 httpd-tools                                                   x86_64                                            2.4.57-5.el9                                               local-AppStream                                             87 k
 redhat-logos-httpd                                            noarch                                            90.4-2.el9                                                 local-AppStream                                             18 k
弱い依存関係のインストール:
 apr-util-openssl                                              x86_64                                            1.6.1-23.el9                                               local-AppStream                                             17 k
 mod_http2                                                     x86_64                                            1.15.19-5.el9                                              local-AppStream                                            152 k
 mod_lua                                                       x86_64                                            2.4.57-5.el9                                               local-AppStream                                             62 k

トランザクションの概要
=============================================================================================================================================================================================================================================
インストール  11 パッケージ

合計サイズ: 2.1 M
インストール後のサイズ: 6.0 M
これでよろしいですか? [y/N]: y

上記の通り参照先リポジトリが作成した

  • local-AppStream
    となっていることが確認できます。
    例のごとくyで応答し
パッケージのダウンロード:
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                                                                                                                                                                                     1/1
  インストール中   : apr-1.7.0-11.el9.x86_64                                                                                                                                                                                            1/11
  インストール中   : apr-util-bdb-1.6.1-23.el9.x86_64                                                                                                                                                                                   2/11
  インストール中   : apr-util-openssl-1.6.1-23.el9.x86_64                                                                                                                                                                               3/11
  インストール中   : apr-util-1.6.1-23.el9.x86_64                                                                                                                                                                                       4/11
  インストール中   : httpd-tools-2.4.57-5.el9.x86_64                                                                                                                                                                                    5/11
  インストール中   : redhat-logos-httpd-90.4-2.el9.noarch                                                                                                                                                                               6/11
  scriptletの実行中: httpd-filesystem-2.4.57-5.el9.noarch                                                                                                                                                                               7/11
  インストール中   : httpd-filesystem-2.4.57-5.el9.noarch                                                                                                                                                                               7/11
  インストール中   : httpd-core-2.4.57-5.el9.x86_64                                                                                                                                                                                     8/11
  インストール中   : mod_lua-2.4.57-5.el9.x86_64                                                                                                                                                                                        9/11
  インストール中   : mod_http2-1.15.19-5.el9.x86_64                                                                                                                                                                                    10/11
  インストール中   : httpd-2.4.57-5.el9.x86_64                                                                                                                                                                                         11/11
  scriptletの実行中: httpd-2.4.57-5.el9.x86_64                                                                                                                                                                                         11/11
  検証             : apr-1.7.0-11.el9.x86_64                                                                                                                                                                                            1/11
  検証             : apr-util-1.6.1-23.el9.x86_64                                                                                                                                                                                       2/11
  検証             : apr-util-bdb-1.6.1-23.el9.x86_64                                                                                                                                                                                   3/11
  検証             : apr-util-openssl-1.6.1-23.el9.x86_64                                                                                                                                                                               4/11
  検証             : httpd-2.4.57-5.el9.x86_64                                                                                                                                                                                          5/11
  検証             : httpd-core-2.4.57-5.el9.x86_64                                                                                                                                                                                     6/11
  検証             : httpd-filesystem-2.4.57-5.el9.noarch                                                                                                                                                                               7/11
  検証             : httpd-tools-2.4.57-5.el9.x86_64                                                                                                                                                                                    8/11
  検証             : mod_http2-1.15.19-5.el9.x86_64                                                                                                                                                                                     9/11
  検証             : mod_lua-2.4.57-5.el9.x86_64                                                                                                                                                                                       10/11
  検証             : redhat-logos-httpd-90.4-2.el9.noarch                                                                                                                                                                              11/11
インストール済みの製品が更新されています。

インストール済み:
  apr-1.7.0-11.el9.x86_64          apr-util-1.6.1-23.el9.x86_64    apr-util-bdb-1.6.1-23.el9.x86_64  apr-util-openssl-1.6.1-23.el9.x86_64  httpd-2.4.57-5.el9.x86_64  httpd-core-2.4.57-5.el9.x86_64  httpd-filesystem-2.4.57-5.el9.noarch
  httpd-tools-2.4.57-5.el9.x86_64  mod_http2-1.15.19-5.el9.x86_64  mod_lua-2.4.57-5.el9.x86_64       redhat-logos-httpd-90.4-2.el9.noarch

完了しました!

問題なく依存関係もクリアしインストールが行えました。

アップデートしたい時は

$ dnf update --disablerepo=* --enablerepo=local*

とすればオッケーです。

最後に

オフライン環境ではほかにも

  • ローカルリポジトリ
  • リポジトリサーバ
  • Red Hat Satellite
    etc...
    等様々な手段があります。
    皆様の環境や運用に合わせ、ベストな選択を取る様にしましょう。
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0