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コマンド実行時に発生するエラーの解決方法となります。
サーバーを構築するならVPSがおすすめです。
エンジニアのオンライン学習
ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。
おすすめオンライン教材 | |
自宅で学習ができるオンラインスクール | |
ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。
コメントを残す