CentOSのアップデートを行おうとyumコマンドを実行したら以下のエラーが出ました。
# yum list updates 読み込んだプラグイン:fastestmirror, security Determining fastest mirrors YumRepo Error: All mirror URLs are not using ftp, http[s] or file. Eg. Invalid release/repo/arch combination/ removing mirrorlist with no valid mirrors: /var/cache/yum/x86_64/6/base/mirrorlist.txt エラー: Cannot find a valid baseurl for repo: base
調べてみると、CentOSのサポートが切れるとyumコマンドが失敗するらしい。僕が使っていたのはCentOS 6.10だったのだけれど、CentOS 6系は 2020年11月30日にサポートが終了していたようです。新しいバージョンに乗り換えなくてはならないのでしょうが、すぐにできるわけでもないのでyumコマンドが成功するように対処してみました。「http://vault.centos.org/」のサイトからパッケージを取得するようにすれば良いらしいです。ここには過去のバージョンのパッケージが収められているとのこと。
こんな感じです。
では、やってみます。まずCentOSのバージョンを確認します。
# cat /etc/redhat-release
CentOS release 6.10 (Final)
リポジトリのファイルは /etc/yum.repos.d 配下にあるので、ここにある CentOS-Base.repo ファイルを修正します。
# cd /etc/yum.repos.d
# vi CentOS-Base.repo
mirrorlist= の行をコメントアウトし、新たに baseurl= の行を追加します。
[base] name=CentOS-$releasever - Base #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra ←★コメントアウトする #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ baseurl=http://vault.centos.org/6.10/os/$basearch/ ←★この行を追加する gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
追加した行 baseurl=http://vault.centos.org/6.10/os/$basearch/ の太字部分はCentOSのバージョンにあわせて書き換えてください。 CentOS-Base.repo ファイルにはbaseブロック以外にも updates、extras、centosplus、contrib のブロックがあるので同様に書き換えます。
ファイルを保存したら、再度、yumコマンドを実行します。これで良いかと思っていたのですが、またエラーが出ました。。
# yum list updates 読み込んだプラグイン:fastestmirror, security Determining fastest mirrors YumRepo Error: All mirror URLs are not using ftp, http[s] or file. Eg. Invalid release/repo/arch combination/ removing mirrorlist with no valid mirrors: /var/cache/yum/x86_64/6/centos-sclo-rh/mirrorlist.txt エラー: Cannot find a valid baseurl for repo: centos-sclo-rh
先ほどと違うのは「Cannot find a valid baseurl for repo: centos-sclo-rh」とのこと。/etc/yum.repos.d 配下を見ると他にもリポジトリのファイルがありました。
# cd /etc/yum.repos.d # ll 合計 44 -rw-r--r-- 1 root root 1991 6月 26 23:52 2018 CentOS-Base.repo -rw-r--r-- 1 root root 647 6月 26 23:52 2018 CentOS-Debuginfo.repo -rw-r--r-- 1 root root 630 6月 26 23:52 2018 CentOS-Media.repo -rw-r--r-- 1 root root 971 10月 29 18:21 2018 CentOS-SCLo-scl-rh.repo -rw-r--r-- 1 root root 998 12月 12 00:52 2018 CentOS-SCLo-scl.repo -rw-r--r-- 1 root root 8854 6月 26 23:52 2018 CentOS-Vault.repo -rw-r--r-- 1 root root 289 6月 26 23:52 2018 CentOS-fasttrack.repo -rw-r--r--. 1 root root 1056 11月 5 12:52 2012 epel-testing.repo -rw-r--r--. 1 root root 957 11月 5 12:52 2012 epel.repo
「centos-sclo-rh」で拡張子がrepoのファイルをgrepしてみます。
# grep centos-sclo-rh *repo CentOS-SCLo-scl-rh.repo:[centos-sclo-rh] CentOS-SCLo-scl-rh.repo:[centos-sclo-rh-testing] CentOS-SCLo-scl-rh.repo:[centos-sclo-rh-source] CentOS-SCLo-scl-rh.repo:[centos-sclo-rh-debuginfo]
CentOS-SCLo-scl-rh.repo ファイルも直さないといけないみたいなので修正します。
[centos-sclo-rh] name=CentOS-6 - SCLo rh #baseurl=http://mirror.centos.org/centos/6/sclo/$basearch/rh/ #mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=6&repo=sclo-rh ←★コメントアウトする baseurl=http://vault.centos.org/6.10/sclo/$basearch/rh/ ←★この行を追加する gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
CentOS-SCLo-scl-rh.repo ファイルには centos-sclo-rh-testing、centos-sclo-rh-source、centos-sclo-rh-debuginfo のブロックもあるのですが、これらは関係なさそうと判断して centos-sclo-rh のブロックしか直しませんでした。
修正した後にもう一度yumコマンドを実行したら、今度は「Cannot find a valid baseurl for repo: centos-sclo-sclo」です。「centos-sclo-sclo」でrepoのファイルをgrepします。
# grep centos-sclo-sclo *repo CentOS-SCLo-scl.repo:[centos-sclo-sclo] CentOS-SCLo-scl.repo:[centos-sclo-sclo-testing] CentOS-SCLo-scl.repo:[centos-sclo-sclo-source] CentOS-SCLo-scl.repo:[centos-sclo-sclo-debuginfo]
まだ直さないといけないところがありました。CentOS-SCLo-scl.repo ファイルを以下のように修正しました。
[centos-sclo-sclo] name=CentOS-6 - SCLo sclo # baseurl=http://mirror.centos.org/centos/6/sclo/$basearch/sclo/ #mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=6&repo=sclo-sclo ←★コメントアウトする baseurl=http://vault.centos.org/6.10/sclo/$basearch/sclo/ ←★この行を追加する gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
CentOS-SCLo-scl.repo ファイルの centos-sclo-sclo-testing、centos-sclo-sclo-source、centos-sclo-sclo-debuginfo のブロックはそのままです。
もう一度、yumコマンドを実行します。
# yum list updates
読み込んだプラグイン:fastestmirror, security
Determining fastest mirrors
:
(これでやっと、yumコマンドが成功しました!)