Azure VMのyumで「Failed to download metadata for repo ‘rhel-8-for-x86_64-baseos-eus-rhui-rpms’」が発生する場合の対応
はじめに
Azure VMにおいて、yumコマンド実行時にFailed to download metadata for repo 'rhel-8-for-x86_64-baseos-eus-rhui-rpms'
というエラーが発生することがあります。
本記事では、上記のエラーの内容と対処法について紹介します。
エラーの内容
Azure VM上でyum install
やyum update
などを実行した際に以下のエラーが発生することがあります。
Error:
Failed to download metadata for repo 'rhel-8-for-x86_64-baseos-eus-rhui-rpms':
Cannot download repomd.xml:
Cannot download repodata/repomd.xml:
All mirrors were tried
このエラーメッセージは、rhel-8-for-x86_64-baseos-eus-rhui-rpmsからreponmd.xmlのダウンロードに失敗したということを示します。
rhel-8-for-x86_64-baseos-eus-rhui-rpmsとは
rhel-8-for-x86_64-baseos-eus-rhui-rpmsは、RHUIを採用したRed Hat Enterprise Linux 8の向けのパッケージ管理システムのことで、yumを使ってVMにパッケージソフトをインストールする際に利用されます。
RHUI
Red Hat Update Infrastructure (RHUI) とは、RHEL用のパッケージの配信することができる仕組み(フレームワーク)のことです。
通常、OSがRHELの場合、yumでパッケージをインストールするときは、Red Hatの公式リポジトリからパッケージを取得します。
しかし、セキュリティ上の要件やネットワークの制約などの理由から、インターネットへの直接アクセスを制限する必要があるケースもあります。
このような場合、RHUIを使用することで、Red Hat社がホストしているパッケージリポジトリを自社のプライベートクラウド内のミラーリングリポジトリにクローンし、内部ネットワークでのアクセスを可能にします。
Microsoftなどのクラウドプロバイダーにおいても、RHUIを使用しており、Red Hatがホストするリポジトリをミラーリングし、ミラーリングした独自のリポジトリからAzure VMにパッケージを配信しています。
repomd.xml
repomd.xmlは、リポジトリメタデータを示し、yumなどのパッケージマネージャーがリポジトリ内のパッケージ情報を取得するために使用されるXML形式のファイルです。
今回のエラーでは、Microsoftから提供しているパッケージ管理システムであるrhel-8-for-x86_64-baseos-eus-rhui-rpms
から、リポジトリのメタデータがであるrepomd.xmlがダウンロードできないため、
yumでパッケージのインストールや、アップデートができずエラーになっています。
エラーの原因と対応
Azure公式ドキュメントによると、Azure RHUI証明書は通常、2年ごとに期限切れになります。
この期限切れが原因で、yumの実行時に今回のエラーが発生することがあります。
証明書の期限が切れている場合、証明書更新をすることによって、このエラーが解決する可能性があります。
MicrosoftのRHUIパッケージには、更新された証明書があるため、yumコマンドを実行して、RHUI パッケージを更新することができます。
sudo yum update -y --disablerepo='*' --enablerepo='*microsoft*'
上記コマンドのオプションの意味は以下になります。
-
--disablerepo='*'
: 全てのリポジトリを無効化します。 → これにより、現在有効なすべてのリポジトリが一時的に無効になります。 -
--enablerepo='*microsoft*'
: “microsoft"という文字列を含むリポジトリを有効化します。 → つまり、“microsoft"を含むリポジトリだけが使用され、他のリポジトリは無効化されます。
おわりに
この記事では、yumコマンド実行時のFailed to download metadata for repo 'rhel-8-for-x86_64-baseos-eus-rhui-rpms'
というエラーについて紹介しました。
rhel-8-for-x86_64-baseos-eus-rhui-rpms
はRedhat Enterprise Linux8用のパッケージ管理システム- RHUIとは、RHEL用のパッケージの配信することができるフレームワーク
- repomd.xmlはリポジトリメタデータを格納したファイル
- Azure RHUI証明書は2年ごとに期限切れになり、yumの実行時にrepomd.xmlのインストールができなくてエラーになる
- yum updateでMicrosoftのRHUIパッケージを更新すると、証明書も更新され、エラーが解消される可能性がある