【2022年2月】CentOS8でyum(dnf)が使えない時の対処法
はじめに
2021年12月31日にCentOS8がEOLになった。続いて2022年2月に公式のURLが切れたことでyum(dnf)のコマンドが使えなくなった。
しばらくはCentOS7にもStreamにも移行する気力はないが、開発はしたいので備忘録を記しておく。
多分2024年6月30日にCentOS7がEOLになった時も同じことになりそうな気がする。
以降yumもdnfも同じことをすればいい(はず)なので特に記さない限り共通の方法を記しておく。
エラー
これが出た人が対象。
[daq@localhost ~]$ su [root@localhost ~]# yum list Error: Failed to download metadata for repo 'AppStream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
方針
/etc/yum.repos.d/のディレクトリの中にyumのURLを指定できる.repoというファイルがいくつかある。
今回のyumのエラーはURL切れが原因なのでこのURLを別の場所に書き換えてしまえばよい。
あまりうまくいかなかった方法
①「mirrorlist=~」で始まる行をコメントアウト
②「baseurl=~」で始まる行を有効化して参照先のURLを変更
一々エディタで変更するのも面倒なので一括で行う。以下のコマンドを使えばよい。
[daq@localhost ~]$ su [root@localhost ~]# sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/C [root@localhost ~]# sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-Linux-*;
↑コマンドが勝手に改行されるが、3つ目のコマンドは1行で張り付けてほしい。
結果
URLのエラーは出ないがvaultのURLが死ぬほど遅くてタイムアウトになる。
うまくいった方法
基本は先ほどと同じだが参照先のURLを公式のvaultから理研にしてしまう。
ただ、理研の場合CentOS8のバージョンによって参照先が違うので以下のコマンドで現在のバージョンを確認する。
[daq@localhost ~]$ su [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 8.4.2105
自分のバージョンがあるかどうかの確認はこちら
ftp.riken.jp
あったら先ほどと同じように変更する。
「あまりうまくいかなかった方法」を試していない人向け
[daq@localhost ~]$ su [root@localhost ~]# sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Linux-*; [root@localhost ~]# sed -i 's|#baseurl=http://mirror.centos.org/$contentdir/$releasever/|baseurl=https://ftp.riken.jp/Linux/centos-vault/8.4.2105/|g' /etc/yum.repos.d/CentOS-Linux-*;
↑コマンドが勝手に改行されるが、すべてのコマンドはそれぞれ1行で張り付けてほしい。
「あまりうまくいかなかった方法」を試してしまった人向け
[daq@localhost ~]$ su [root@localhost ~]# sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Linux-*; [root@localhost ~]# sed -i 's|baseurl=http://vault.centos.org/$contentdir/$releasever/|baseurl=https://ftp.riken.jp/Linux/centos-vault/8.4.2105/|g' /etc/yum.repos.d/CentOS-Linux-*;
↑コマンドが勝手に改行されるが、すべてのコマンドはそれぞれ1行で張り付けてほしい。