CentOS8「Failed to download metadata for repo AppStream」エラーの解決方法

CentOS8をインストールして、yumアップデート、またはdnfアップデート、ネットワーク経由のインストールをかけたところ以下のようなエラーが発生しました。

$ yum -y update
Failed to set locale, defaulting to C.UTF-8
CentOS-8 - AppStream                                           0.0  B/s |   0  B     00:05
Failed to download metadata for repo 'AppStream'
Error: Failed to download metadata for repo 'AppStream'

このエラーはアップデートやインストールに必要なパッケージのダウンロードに失敗しているというエラーとなっている様です。

このエラーに関しての解決方法をまとめました。

「CentOS8」で(ailed to download metadata for repo〜)のエラー発生原因はDNSの名前解決に失敗しているため

結果的な原因としてはDNSの名前解決に失敗しているために発生するエラーとなります。
初期設定の際、外部への通信ができるDNSサーバーを指定していない、または間違ったIPアドレスでDNSサーバーを指定していると上記の様なエラーが発生します。

解消の仕方はいくつかありますので以下を参考にしてください。

事前に対象のインターフェースを確認

DNSはインターフェースに設定するので通信が可能なインターフェースを以下コマンドで事前に確認します。

$ nmcli device
DEVICE  TYPE      STATE     CONNECTION
ens192  ethernet  接続済み  ens192
lo      loopback  管理無し  --
$

今回の対象のインターフェースは「ens192」となります。

コマンドでDNSサーバーを設定

一つ目の解決方法はコマンドで直接DNSのIPアドレスを設定します。

$ nmcli connection modify ens192 ipv4.dns 8.8.8.8

対象インターフェースのコンフィグにDNSサーバーを追加

2つ目の解決方法は対象のインターフェースにDNSサーバーを追記する方法となります。

$ vim /etc/sysconfig/network-scripts/ifcfg-ens192

------追加------
DNS1=8.8.8.8

「resolv.conf」に追記

もう一つの方法は「resolv.conf」ファイルにDNSサーバーを追記する方法です。

$ vi /etc/resolv.conf

------追加------
nameserver 8.8.8.8

上記、どの設定でもDNSサーバーは追加されますが、最初のコマンド型式の方が簡単です。

再起動で設定を反映

上記で、DNSサーバーを追加しても通信ができません。
一度ネットワークを再起動させ設定を反映させないといけません。

$ systemctl restart NetworkManager.service

私の場合はOS自体の再起動もしちゃいます。
お好みでどうぞ。

$ reboot

2022年ごろからレポジトリの設定変更が必要

CentOS8がEOLを迎えることにより、既存のレポジトリでは正常に「yum」、「dnf」ダウンロードができなくなりました。
対策としては、リポジトリの設定を書き換える必要があります。

今回は以下のコマンドを実行して、リポジトリの設定を書き換えます。

sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*; 

その後、yum、dnfコマンドでインストール・アップデート等を実行できるようになりました。

※参考URL
https://stackoverflow.com/questions/70930615/no-urls-in-mirrorlist-with-yum-on-centos-due-to-appstream
以上が、yum、dnfコマンド実行時に発生するエラーの解決方法となります。




エンジニアのオンライン学習

ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!