物理のベンチ by mitta

学んだことを発信します。備忘録も書きます。間違いがあればコメントください。

【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行で張り付けてほしい。

確認

[daq@localhost ~]$ su
[root@localhost ~]# yum list

これで理研CentOSを提供してくれる限り割と快適にyumを使える。

まとめ

理研様様
上の理研のindexのリンクが切れた場合、原理上はURL先を変えればよい。
が、その時にはCentOS自体が信用できなくなっているのでそもそもOSを変えろ。