CentOS 8 のyumで “エラー: repo ‘AppStream’ のメタデータのダウンロードに失敗しました”が発生!原因と対処法は?
まだ企業のLinux環境では、CentOS8系が本番環境で利用している場合があります。
ご存じの通り、『CentOS Linux 8 ディストリビューションのアップデートは、2021年12月31日まで』であり、現在はCentOSのインストール後に、yumでパッケージのアップデートを実行しても残念ながらyumはエラーとなります。
# yum info
CentOS Linux 8 - AppStream 0.0 B/s | 0 B 00:05
Errors during downloading metadata for repository 'appstream':
- Curl error (6): Couldn't resolve host name for http://mirrorlist.centos.org/?release=8&arch=x86_64&repo=AppStream&infra=stock [Could not resolve host: mirrorlist.centos.org]
エラー: repo 'appstream' のメタデータのダウンロードに失敗しました : Cannot prepare internal mirrorlist: Curl error (6): Couldn't resolve host name for http://mirrorlist.centos.org/?release=8&arch=x86_64&repo=AppStream&infra=stock [Could not resolve host: mirrorlist.centos.org]
とはいえ、「まだまだCentOS 8 を使いたい!」「使えないと困る」という方は多くいらっしゃると思います。
ということで、今回はCentOS 8 のアップデートを可能にするための設定方法ご紹介します。
基本的には、各レポジトリが参照するURLをmirrorからvaultに変更すれば利用が可能になります。
リポジトリの設定箇所は3か所
以前は設定個所は2か所でしたが、現在は3か所です。
では、早速設定しますが、編集作業はviで行います。
なお、アップストリーム(AppStream)はRHEL/CentOS8で発表された新しい概念で、ソフトウェアはBaseOSもしくはAppStreamで配信されます(されました)。
ただし、前述の通り既にアップストリームは2021年12月末で終了しているため、エラー回避のためには、以下のリポジトリを変更する必要があります。
エラーがAppstreamなので「Appstreamだけを修正すればエラーの回避が出来るのでは?」と考えがちですが、エラー回避にはBaseOS.repoとExtras.repoの修正も必要です。
たとえば、AppstreamとBaseOS.repoを修正後にyumコマンドを実行しても今度はextrasのエラーが出ます。
# yum info
CentOS-8 - AppStream 1.4 MB/s | 8.4 MB 00:06
CentOS-8 - Base 6.1 MB/s | 4.6 MB 00:00
CentOS Linux 8 - Extras 0.0 B/s | 0 B 00:00
Errors during downloading metadata for repository 'extras':
- Curl error (6): Couldn't resolve host name for http://mirrorlist.centos.org/?release=8&arch=x86_64&repo=extras&infra=stock [Could not resolve host: mirrorlist.centos.org]
エラー: repo 'extras' のメタデータのダウンロードに失敗しました : Cannot prepare internal mirrorlist: Curl error (6): Couldn't resolve host name for http://mirrorlist.centos.org/?release=8&arch=x86_64&repo=extras&infra=stock [Could not resolve host: mirrorlist.centos.org]
ということで、Appstream、BaseOSとExtrasの3ファイルを修正します。
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の設定は以上で完了です。
CentOS-Linux-Extras.repoの編集
上記と同様です。
# vi /etc/yum.repos.d/CentOS-Linux-Extras.repo
[extras]
name=CentOS Linux $releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
baseurl=http://vault.centos.org/$contentdir/$releasever/extras/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
3つのファイルの修正後に yum info を実行してみましょう。
yumコマンドでエラーが発生しないことを確認できるはずです。
RHELのクローンOSとしてのCentOS7はサポートも終了
直近でCentOS7を試していませんが、CentOS7も、”Jun 30th, 2024(2024年6月30日)”でEnd-of-life(EOL)になっています。
企業でLinuxを利用している場合、Linuxをよくわからないことで放置してしまうことになり、結果としてセキュリティリスクになります。
Linuxに対するウィルスやマルウェアなどの脅威は増加しているようですので、ウィルス対策ソフトを確実にインストールして利用するようにしましょう。
まとめ
今回は先日ハマったCentOS 8 でyumが利用できない場合の回避方法を寄稿しました。
まだまだCentOS 8 を利用しなければならないケースもあるかと思いますので、トラブル回避の参考にしてみてください。
また、本ブログではLinuxを含めてITエンジニア向けの小技をご紹介しています。
リクエストなどありましたらお問い合わせフォームからお問い合わせください。