CentOS8でdnf update(dnf upgrade)が失敗する件

はじめに

今日、ふとCentOSのパッケージアップデートを実行してみると、以下のようなエラーが出てアップデートできませんでした。

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

ネット検索するとDNS設定について出てたりするのですが、上記エラーメッセージだとDNSは関係なさそうです。
どうやらリポジトリ内に記載されているミラーサイトのURLが変更されてしまったことが原因ということに辿り着きました。

リポジトリを調べてみる

試しに「/etc/yum.repos.d/」内の「CentOS-Linux-AppStream.repo」を覗いてみると、

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

となっています。

この中の mirrorlist 部分を無効にし、baseurl を「http://vault.centos.org」に書き換えることにします。

リポジトリの書き換え

「/etc/yum.repos.d/」内には「CentOS-Linux-AppStream.repo」だけでなく他にもリポジトリが保存されています。今回はこれらのファイルを一気に書き換えてしまいます。

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

dnf update の動作確認

dnf update を実行してみると、いくつかのリポジトリのデータベース更新やGPG鍵のインポートを経た上で、正常に動作しました。

コメント

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