はじめに
今日、ふと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鍵のインポートを経た上で、正常に動作しました。
コメント