CentOS 8 のyumで “エラー: repo ‘AppStream’ のメタデータのダウンロードに失敗しました”が発生!原因と対処法は?

エンジニア小技

・CentOS 8 でyumが動かないのなぜ?

・”エラー: repo ‘AppStream’ のメタデータのダウンロードに失敗しました”が表示される。

・エラーの回避方法を知りたい

・CentOS 8 はもうサポートされない?

・サポートされているCentOSのバージョンは?

こういった疑問に答えます。

スポンサーリンク

CentOS 8 のyumで “エラー: repo ‘AppStream’ のメタデータのダウンロードに失敗しました”が発生!原因と対処法は?

先日必要があってCentOS 8 をインストールし、いつも通りyumでパッケージの更新を行ったところタイトルの通りエラーが表示されました。

# yum info
CentOS Linux 8 - AppStream                       89  B/s |  38  B     00:00
エラー: repo 'appstream' のメタデータのダウンロードに失敗しました : Cannot prepare internal mirrorlist: No URLs in mirrorlist

さて原因は何だろう考えたところ、以前こちらで『CentOS Linux 8 ディストリビューションのアップデートは、2021年12月31日まで継続』と紹介していた通りで、CentOS 8 のアップデートが完了してることが原因でした。

とはいえ、「まだまだCentOS 8 を使いたい!」「使えないと困る」という方は多くいらっしゃると思います。

ということで、今回はCentOS 8 のアップデートを可能にするための設定方法ご紹介します。

リポジトリの設定箇所は2か所

では、早速設定しますが、編集作業はviで行います。

viの使い方はこちらでご紹介していますので、参考にしてみてください。

なお、アップストリーム(AppStream)はRHEL/CentOS8で発表された新しい概念で、ソフトウェアはBaseOSもしくはAppStreamで配信されます(されました)。

Red Hat Enterprise Linux Application Streams Life Cycle - Red Hat Customer Portal
Access Red Hat’s knowledge, guidance, and support through your subscription.

ただし、前述の通り既にアップストリームは2021年12月末で終了しているため、エラー回避のためには、以下のリポジトリを変更する必要があります。

エラーがAppstreamなので「Appstreamだけを修正すればエラーの回避が出来るのでは?」と考えがちですが、エラー回避にはBaseOS.repoの修正も必要です。

実際、Appstreamだけを修正してyumコマンドを実行しても今度はbaseosのエラーが出ます。

# yum info
CentOS-8 - AppStream                            1.2 MB/s | 8.4 MB     00:06
CentOS Linux 8 - BaseOS                         126  B/s |  38  B     00:00
エラー: repo 'baseos' のメタデータのダウンロードに失敗しました : Cannot prepare internal mirrorlist: No URLs in mirrorlist

ということで、BaseOSとAppstreamの両ファイルを修正します。

CentOS-Linux-AppStream.repoの編集

ここでは、CentOS-Linux-AppStream.repoの設定を行います。

# vi /etc/yum.repos.d/CentOS-Linux-AppStream.repo

CentOS-Linux-AppStream.repoの[AppStream]以下部分を以下の内容に変更します。

もっとも簡単な方法は[AppStream]以下をコメントアウトするか、削除して以下を追加しましょう。

[AppStream]
name=CentOS-$releasever - AppStream
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=AppStream&infra=$infra
baseurl=http://vault.centos.org/$contentdir/$releasever/AppStream/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

以上でCentOS-Linux-AppStream.repoの編集は完了です。

CentOS-Linux-BaseOS.repoの編集

次にBaseOS.repoの設定を行います。

# vi /etc/yum.repos.d/CentOS-Linux-BaseOS.repo

[BaseOS]以下に設定されている部分を変更します。

設定方法はCentOS-Linux-AppStream.repoと同様で、[BaseOS]以下をコメントアウトするか、削除して以下を追加しましょう。

[BaseOS]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=BaseOS&infra=$infra
baseurl=http://vault.centos.org/$contentdir/$releasever/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

BaseOS.repoの設定は以上で完了です。

BaseOSとAppstreamの修正後に yum info を実行してみましょう。

yumコマンドでエラーが発生しないことを確認できるはずです。

RHELのクローンOSとしてのCentOS7はサポートが有効

CentOSをダウンロードすべくサイトにアクセスするとCentOS 8 は既にダウンロードできません。

一方で、CentOS 7 はダウンロードでき、yumコマンド実行時にエラーになりません。

しかも、End-of-life(EOL)はサイトにある通り”Jun 30th, 2024(2024年6月30日)”なので、もうしばらく利用できそうです。

CentOS Linux

RHELのクローンとしてのCentOSを利用したいのであれば、当面の間はCentOS 7 を利用するのは一つの選択かもしれません。

まとめ

今回は先日ハマったCentOS 8 でyumが利用できない場合の回避方法を寄稿しました。

まだまだCentOS 8 を利用しなければならないケースもあるかと思いますので、トラブル回避の参考にしてみてください。

また、本ブログではLinuxを含めてITエンジニア向けの小技をご紹介していますので、こちらも是非ご覧ください。

エンジニア小技
「エンジニア小技」の記事一覧です。

タイトルとURLをコピーしました