RHEL10でdnfのリポジトリ設定がおかしくなってしまったのを何とか解消したので、メモとして残します。
経緯と症状
あるとき、RHEL10サーバでdnf updateコマンドが正常に動作していないことに気付きました。
# dnf update
サブスクリプション管理リポジトリーを更新しています。
Red Hat Enterprise Linux 10 for x86_64 - BaseOS (RPMs) 173 B/s | 467 B 00:02
Errors during downloading metadata for repository 'rhel-10-for-x86_64-baseos-rpms':
- Status code: 403 for https://cdn.redhat.com/content/dist/rhel10/10/x86_64/baseos/os/repodata/repomd.xml (IP: 23.206.61.92)
エラー: repo 'rhel-10-for-x86_64-baseos-rpms' のメタデータのダウンロードに失敗しました : Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
このRHEL10はRed Hat Developer Subscription for Individuals で利用しており、サブスクリプションの有効期限切れが原因でした。
しかし、それに気が付かずに問題解決しようとして色々と操作をしました。
RedHatへのシステム登録情報が消えてしまったのかと思い、リフレッシュ。
# subscription-manager refresh
ローカルデータがすべて更新されました
# dnf clean all
サブスクリプション管理リポジトリーを更新しています。
12 ファイルが削除されました
すると、有効化されたリポジトリがないというエラーメッセージに変わりました。
# dnf update
サブスクリプション管理リポジトリーを更新しています。
エラー: "/etc/yum.repos.d", "/etc/yum/repos.d", "/etc/distro.repos.d" には有効化されたリポジトリーがありません。
ここでようやくRed Hat Developer Subscription for Individualsの期限切れに気が付き、更新しました。更新手順(といっても大した操作ではないですが)はRedHatサイトに説明があります。
https://access.redhat.com/ja/solutions/7130399
その後、いったんキャッシュを削除したりRedHatへのシステム登録を解除し再登録したりしました。
# subscription-manager refresh
ローカルデータがすべて更新されました
# rm -rf /var/cache/dnf/*
# dnf clean all
サブスクリプション管理リポジトリーを更新しています。
12 ファイルが削除されました
# subscription-manager unregister
登録の解除中: subscription.rhsm.redhat.com:443/subscription
システムの登録は解除されました。
# subscription-manager clean
ローカルデータがすべて削除されました
# rhc connect
Connecting larkbox-x to Red Hat.
This might take a few seconds.
Features preferences: [✓]content, [✓]analytics, [✓]remote-management
Username: xxxxxxxx
Password:
[✓] Connected to Red Hat Subscription Management
[✓] Content ... Red Hat repository file generated
[✓] Analytics ... Connected to Red Hat Insights
[✓] Remote Management ... Activated the yggdrasil service
Successfully connected to Red Hat!
Manage your connected systems: https://red.ht/connector
しかし、dnfのエラーは解消しませんでした。
# dnf update
サブスクリプション管理リポジトリーを更新しています。
エラー: "/etc/yum.repos.d", "/etc/yum/repos.d", "/etc/distro.repos.d" には有効化されたリポジトリーがありません。
原因
subscription-managerでrole、usage、サービスレベルが設定されていない状態になってしまっていました。おそらくこの影響で、RedHatにシステム登録すると発行されるエンタイトルメント証明書にコンテンツに関する情報がなにも含まれていませんでした。
[root@larkbox-x ~]# rct cat-cert /etc/pki/entitlement/7322975742080712944.pem
+-------------------------------------------+
エンタイトルメント証明書
+-------------------------------------------+
(中略)
承認されたコンテンツ URL:
/xxxxxxxx
※本来ならこの後に「コンテンツ:」というブロックが大量に続くが、何もない
対処
設定可能なroleを確認します。
# subscription-manager syspurpose role --list
+-------------------------------------------+
利用可能な role
+-------------------------------------------+
- Red Hat Enterprise Linux Workstation
roleを設定します。
# subscription-manager syspurpose role --set "Red Hat Enterprise Linux Workstation"
role を "Red Hat Enterprise Linux Workstation" に設定しました。
設定可能なusageを確認します。
# subscription-manager syspurpose usage --list
+-------------------------------------------+
利用可能な usage
+-------------------------------------------+
- Development/Test
usageを設定します。
# subscription-manager syspurpose usage --set "Development/Test"
usage を "Development/Test" に設定しました。
設定可能なサービスレベルを確認します。
# subscription-manager syspurpose service-level --list
+-------------------------------------------+
利用可能なサービスレベル
+-------------------------------------------+
Self-Support
サービスレベルを設定します。
# subscription-manager syspurpose service-level --set "Self-Support"
service_level_agreement を "Self-Support" に設定しました。
リフレッシュします。
# subscription-manager refresh
ローカルデータがすべて更新されました
利用可能なリポジトリのリストを出力してみます。
リポジトリが追加されました。
# subscription-manager repos --list
+----------------------------------------------------------+
/etc/yum.repos.d/redhat.repo で利用可能なリポジトリー
+----------------------------------------------------------+
リポジトリー ID: rhocp-4.21-for-rhel-10-x86_64-source-rpms
リポジトリー名: Red Hat OpenShift Container Platform 4.21 for RHEL 10 x86_64 (Source RPMs)
リポジトリー URL: https://cdn.redhat.com/content/dist/layered/rhel10/x86_64/rhocp/4.21/source/SRPMS
有効: 0
(中略)
リポジトリー ID: rhel-atomic-7-cdk-3.5-source-rpms
リポジトリー名: Red Hat Container Development Kit 3.5 /(Source RPMs)
リポジトリー URL: https://cdn.redhat.com/content/dist/rhel/atomic/7/7Server/$basearch/cdk/3.5/source/SRPMS
有効: 0
dnfコマンドも正常に動くようになりました。
# dnf update
サブスクリプション管理リポジトリーを更新しています。
メタデータの期限切れの最終確認: 1:12:35 前の 2026年03月01日 13時27分47秒 に実施しました。
依存関係が解決しました。
行うべきことはありません。
完了しました!


コメント