お疲れ様です。すぺきよです。
私は現在、研究用として個人的にRHEL(Red Hat Enterprise Linux)を利用しています。
その際に無料で利用できる個人向け開発者用サブスクリプションを使っているのですが、今回1年間の有効期限が切れてしまい、dnf upgradeでパッケージの更新ができなくなってしまいました。
これでは困ると、個人向け開発者用サブスクリプションの更新方法について調べてみました。
概要
RHELの個人向け開発者用サブスクリプションが切れた時にどこを調べたのかの備忘録です。
実際の更新方法と、実際に更新してみてどのように動作したかについてもまとめています。
この記事を読むと何がわかるか
RHELの個人向け開発者用サブスクリプションが切れた時に、どこをみて、何をすればいいのかがわかります。
更新方法
先に結論として、個人向け開発者用サブスクリプションの更新方法の手順を記載しておきます。
詳細はこの記事に書かれているとおりです。
以下の手順で更新することができます。
- 個人向け開発者用サブスクリプションの有効期限が切れる30日前以降に、Red hat Developerへログインすると、個人向け開発者用サブスクリプションの利用規約への承認が求められるので承認する。
- しばらくすると、個人向け開発者用サブスクリプションの再登録が完了する。
- 個人向け開発者用サブスクリプションの再登録完了後、しばらくしてもサブスクリプションがサーバーに反映されない場合は以下の6つのコマンドを上から順次実行して、サブスクリプションの当て直しをする。
sudo subscription-manager remove –all
https://developers.redhat.com/articles/renew-your-red-hat-developer-program-subscription の Troubleshootingの項目内
sudo subscription-manager unregister
sudo subscription-manager clean
sudo subscription-manager register
sudo subscription-manager refresh
sudo subscription-manager attach –auto
何が起きたのか
ある日、いつも開発に利用しているRHELのパッケージをアップデートしようと、以下のコマンドを実行しました。
sudo dnf upgrade
いつもであれば、サブスクリプションのチェックの後、更新パッケージの読み込みやアップデートが必要なパッケージの一覧の表示などをしてくれるのですが、この日は違いました。
以下のメッセージを表示して、更新が停止したのです。
サブスクリプション管理リポジトリーを更新しています。
このシステムは、エンタイトルメントーバーに登録されていますが、更新は受信していません。subscription-manager でサブスクリプションを割り当てることができます。
エラー: “/etc/yum.repos.d”, “/etc/yum/repos.d”, “/etc/distro.repos.d” には有効化されたリポジトリーがありません。
先週まではうまく更新ができていたので、どうして突然・・・?
ということで、現在の状況と原因を確認しました。
現在の状況を確認
まずは現状の確認です。
現状を確認するため、Red hat Developerにアクセスしてログインし、Red Hat Subscription Managementに遷移します。
すると、以下のように「最近期限切れになったサブスクリプション」が2件表示されていました。
以前からこのような表記であったか記憶にはないですが、「最近期限切れになったサブスクリプション」ということで、きっとこれであろうとリンクをクリックして詳細を確認してみることにしました。
個人向け開発用サブスクリプションが2023年9月26日に有効期限切れとなっているようです。
このエラーによって初めて更新に失敗したのが2023年9月28日の昼頃だったので、時期もぴったり一致します。
これが問題の原因であると当たりをつけて調査することとしました。
サブスクリプション更新方法の選択
「最近期限切れになったサブスクリプション」のステータス列の表記が「更新期限切れ Renewal Options」と表示されており、「Renewal Options」がリンクになっているのでクリックします。
クリックすると以下のようなポップアップが表示されます。
サブスクリプションを更新する選択肢として、個人向け開発者用サブスクリプションの更新をするか、お金を払ってサブスクリプションを購入するかの選択をしなければならないようですね。
今回はもちろん、個人向け開発者用サブスクリプションの更新を試してみます。
個人向け開発者用サブスクリプションの更新を行うには、リストの一番上のRed Hat Developer websiteのリンクをクリックすると良さそうなので、クリックします。
How to renew your Red Hat Developer Subscription for Individualsというタイトルの記事が表示されます。
個人向け開発者用サブスクリプションの更新手順
表示された記事「How to renew your Red Hat Developer Subscription for Individuals(Red Hatの個人向け開発用サブスクリプションの更新方法)」の内容を確認します。
You can’t renew your subscription, but you can re-register
「サブスクリプションの更新はできないけど、再登録することができるよ。」とタイトルに書かれていますね。
2023年8月時点では、個人向け開発者用サブスクリプションの有効期限は1年間で、1年を経過して期限切れになるか、1年経過する30日前になったら個人向け開発者用サブスクリプションの再登録ができるようになるようです。
How to re-register for your Red Hat Developer Subscription
シークレットモードのブラウザを用いて、Red Hat Developersにログインすると利用規約への承認が求められので、承認してしばらくすると再度個人向け開発者用サブスクリプションが再登録されることが、ここには記載されています。
そういえば、今日ログインした時に利用規約に承認するように言われて、よくある変更された利用規約への再承認かな?と思ってとりあえず承認しました。
もしかするとその承認が、それがここで求められると言われていた承認だったのかもしれません。
現状アクティブになっているサブスクリプションを見てみると、以下の画像のように開始日が調査のためにログインを行い、利用規約に承認した日付と同じ「2023年9月29日」になっていました。
Troubleshooting
ここには「もしかすると一度サブスクリプションを削除してから再度新しいサブスクリプションを当て直す必要があるかも」と書かれていて、以下の6つのコマンドが紹介されています。
sudo subscription-manager remove –all
https://developers.redhat.com/articles/renew-your-red-hat-developer-program-subscription の Troubleshootingの項目内
sudo subscription-manager unregister
sudo subscription-manager clean
sudo subscription-manager register
sudo subscription-manager refresh
sudo subscription-manager attach –auto
これらのコマンドを、dnf upgradeができなくて困っているサーバー上で実行します。
実際の実行結果は以下の画像のとおりとなりました。
各コマンドの結果を見るに、どうやらサブスクリプションの当て直しに成功したようです。
再度dnf upgradeを実行
個人向け開発者用サブスクリプションの更新がうまく行ったようなので、dnf upgradeができるか確認してみます。
パッケージの一覧の取得を始まって、その後正常にパッケージの更新をすることができるようになりました。