RHUIにアクセスできない環境で特定のパッケージだけインストールしたい
はじめに
皆様こんにちは、あかいけです。
RHUIにアクセスできないRHELのEC2インスタンスで、パッケージをインストールしたくなったことはありますか?
私はあります。
通常であればdnf installで一発なのですが、ネットワーク的にRHUIに接続できない環境だと当然これが使えません。
かといって、初期構築時に数個のパッケージを入れたいだけのためにリポジトリサーバーを建てるのも大げさ(めんどくさい)ですよね…。
というわけで今回は、リポジトリサーバーなしでrpmを直接持ち込んでインストールする方法をまとめます。
なおやっていることは古来から行われてきた古典的な手法なのですが、意外と一連の手順をまとめた記事が少なそうだったので書いてみました。
概要
今回のアプローチはシンプルで、以下の流れになります。
RHUIにアクセスできるサーバーを「rpmの取得用」として利用し、取得したrpmを手動でインストールするという方法です。
- インストール先サーバー:必要なパッケージのバージョンを確認する
- rpm取得用サーバー:rpmをダウンロードする
- インストール先サーバー:ダウンロードしたrpmを転送して
rpm -ivhでインストールする
本ブログの環境
- インストール先サーバー:RHEL 9系のEC2インスタンス (RHUIにアクセスできない)
- rpm取得用サーバー:RHEL 9系のEC2インスタンス (RHUIにアクセスできる)
- AMI:AWS提供のRHEL AMI (License Included)を使用
- インストールしたいパッケージ:
glibc-langpack-ja(日本語言語パック) - ローカル端末からそれぞれのサーバーにSSH/SCP接続が可能であること
手順
1. 現状を確認する
まずはインストール先サーバーで、現在利用可能なロケールを確認します。
$ locale -a
C
C.utf8
en_AG
en_AU
en_AU.utf8
en_BW
en_BW.utf8
en_CA
en_CA.utf8
en_DK
en_DK.utf8
en_GB
en_GB.iso885915
en_GB.utf8
en_HK
en_HK.utf8
en_IE
en_IE@euro
en_IE.utf8
en_IL
en_IN
en_NG
en_NZ
en_NZ.utf8
en_PH
en_PH.utf8
en_SC.utf8
en_SG
en_SG.utf8
en_US
en_US.iso885915
en_US.utf8
en_ZA
en_ZA.utf8
en_ZM
en_ZW
en_ZW.utf8
POSIX
日本語のロケール(ja_JP.utf8等)が存在しません。
ここにglibc-langpack-jaをインストールして、日本語ロケールを使えるようにするのが今回のゴールです。
2. 必要なパッケージのバージョンを確認する
次に、インストール先サーバーにインストールされているglibcのバージョンを確認します。
glibc-langpack-jaはglibc本体と同じバージョンである必要があるため、以下のコマンドでインストールすべきバージョンを特定します。
$ rpm -q glibc --queryformat 'glibc-langpack-ja-%{VERSION}-%{RELEASE}\n'
glibc-langpack-ja-2.34-168.el9_6.24
glibc-langpack-ja-2.34-168.el9_6.24が必要なバージョンであることがわかりました。
3. RHUIにアクセスできるサーバーでrpmをダウンロードする
続いて、RHUIにアクセスできるサーバーで、先ほど確認したバージョンのrpmをダウンロードします。
$ sudo dnf download glibc-langpack-ja-2.34-168.el9_6.24
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered with an entitlement server. You can use "rhc" or "subscription-manager" to register.
Last metadata expiration check: 0:05:09 ago on Mon 23 Feb 2026 03:20:39 PM UTC.
glibc-langpack-ja-2.34-168.el9_6.24.x86_64.rpm 12 MB/s | 329 kB 00:00
dnf downloadを使うことで、インストールせずにrpmファイルだけを取得できます。
なおUnable to read consumer identityという警告が出ていますが、これはAWS提供のRHEL AMI(License Included)がライセンス管理にsubscription-managerではなくRHUIを利用する仕組みのためです。subscription-managerへの登録はそもそも不要なので、この警告は無視して問題ありません。
4. rpmをインストール先サーバーに転送する
ダウンロードしたrpmを、ローカル端末経由でインストール先サーバーに転送します。
まずはrpm取得用サーバーからローカルにダウンロードします。
% scp -i keys/ec2.pem ec2-user@XX.XX.XX.XX:~/ ~/Downloads/
glibc-langpack-ja-2.34-168.el9_6.24.x86_64.rpm 100% 329KB 1.8MB/s 00:00
ローカルにダウンロードしたら、同様にSCPでインストール先サーバーにアップロードします。
5. rpmをインストールする
転送したrpmをrpm -ivhでインストールします。
$ sudo rpm -ivh ./glibc-langpack-ja-2.34-168.el9_6.24.x86_64.rpm
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:glibc-langpack-ja-2.34-168.el9_6.################################# [100%]
問題なくインストールできました。
6. インストール結果を確認する
インストール後、ロケール一覧を再確認します。
$ locale -a
C
C.utf8
en_AG
en_AU
en_AU.utf8
en_BW
en_BW.utf8
en_CA
en_CA.utf8
en_DK
en_DK.utf8
en_GB
en_GB.iso885915
en_GB.utf8
en_HK
en_HK.utf8
en_IE
en_IE@euro
en_IE.utf8
en_IL
en_IN
en_NG
en_NZ
en_NZ.utf8
en_PH
en_PH.utf8
en_SC.utf8
en_SG
en_SG.utf8
en_US
en_US.iso885915
en_US.utf8
en_ZA
en_ZA.utf8
en_ZM
en_ZW
en_ZW.utf8
ja_JP.eucjp
ja_JP.utf8
POSIX
ja_JP.eucjpとja_JP.utf8が追加されていることが確認できます。
最後にロケール設定を反映して、正しく設定されていることを確認しましょう。
$ source /etc/locale.conf && export LANG
$ cat /etc/locale.conf
LANG=ja_JP.UTF-8
$ locale
LANG=ja_JP.UTF-8
LC_CTYPE="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_PAPER="ja_JP.UTF-8"
LC_NAME="ja_JP.UTF-8"
LC_ADDRESS="ja_JP.UTF-8"
LC_TELEPHONE="ja_JP.UTF-8"
LC_MEASUREMENT="ja_JP.UTF-8"
LC_IDENTIFICATION="ja_JP.UTF-8"
LC_ALL=
全ての項目がja_JP.UTF-8になっていれば、日本語ロケールの設定は完了です。
おまけ:ライセンス的に大丈夫そう?
ちなみに今回のやり方ですが、「ライセンス的にそもそも大丈夫??」と心配された方もいらっしゃるのではないでしょうか。
結論としては以下の理由からおそらく大丈夫です。
- RHUI経由のダウンロード
- AWS上のRHELインスタンスはEC2料金にRHELサブスクリプションが含まれており、RHUIからのパッケージ取得は正規の利用方法
- rpm -ivhでのローカルインストール
- Red Hat公式ドキュメントでも「ネットワーク隔離環境向けの手法」として紹介されている標準的な方法
- RPMの別インスタンスへの転送
- 同一AWSアカウント内で両インスタンスともRHELライセンス付き
具体的には以下ドキュメントの、
「Approach 2: Download the updates on a connected system」に該当しそうなので、問題ないでしょう。
さいごに
以上、RHUIにアクセスできない環境で特定のパッケージだけインストールする方法でした。
今回はglibc-langpack-jaを例にしましたが、同じ手法で他のパッケージにも応用可能です。
ただし依存関係のあるパッケージの場合は、依存パッケージも合わせてダウンロードする必要があるのでその場合はdnf download --resolveオプションを利用してください。
ネットワーク的にRHUIに接続できない環境は意外と多いと思うので、同じ状況で困っている方の参考になれば幸いです。






