CentOS 4でのyumのエラー「Error: Cannot find a valid baseurl for repo: update」の原因と解決方法

2012年現在、もうサポートが終了されているCentOS 4を「yum update」でアップデートしようとすると、以下のようにエラーになってしまう。

# yum update
Setting up Update Process
Setting up repositories
not using ftp, http[s], or file for repos, skipping - 4 is not a valid release or hasnt been released yet
Cannot find a valid baseurl for repo: update
Error: Cannot find a valid baseurl for repo: update

このエラーメッセージの「Cannot find a valid baseurl for repo: update」とは、「アップデートするためのrepo、つまり、repository(レポジトリ/リポジトリ)用の有効なbaseurlが見つからない」ということみたいだ。

CentOSのサーバが、外部のインターネットに接続できない場合は、それがエラーの原因なのだが、外部のインターネットに接続できるのにエラーが出てしまう場合は、yumのレポジトリに問題がある可能性が高い。

原因がネットの接続にあるのであれば、そちらを確認するなどしていけばいいが、問題がyumのレポジトリにあると疑われる場合は、エラーメッセージの内容に従い、yumを実行した時に参照するレポジトリのbaseurlの設定が現在どうなっているかを確認する必要がある。

※2012年現在は、以前使用できたCentOS 4用のリポジトリが、CentOS 4のサポート終了に伴って消滅したことにより、yum updateを実行すると上記のようなエラーになってしまう。

※baseurlは、「/etc/yum.repos.d/CentOS-Base.repo」というファイルを見ると確認できる。

《確認例》
# vi /etc/yum.repos.d/CentOS-Base.repo

《/etc/yum.repos.d/CentOS-Base.repoファイルの中身》

# CentOS-Base.repo
## This file uses a new mirrorlist system developed by Lance Davis for CentOS.
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
## If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
##[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=1
protect=1

#released updates
[update]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=1
protect=1

#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever - Addons
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons
#baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=1
protect=1

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=1
protect=1


#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=2
protect=1

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=2
protect=1

「baseurl」は、コメントになっているので、無効のようだ。

上記のbaseurlの#を外して設定
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/

baseurl=http://vault.centos.org/4.7/os/$basearch/

※「vault.centos.org/」の右に入れる数字は、現在使用中のCentOSのバージョンを入れるようだ。

《参考サイト》Paul's Computer Service - cannot find a valid baseurl for repo update centos 4
http://www.paulscomputerservice.net/articles/article.php?ID=248
→「Be sure to change "4.7" to match your version.」と記載されている。

※CentOS4のバージョンは、「/etc/redhat-release」というファイルを確認すれば良い。

《CentOS4のバージョン確認例》
# cat /etc/redhat-release
CentOS release 4.7 (Final)

「/etc/yum.repos.d/CentOS-Base.repo」の設定ファイルを書き換えることにより、yumのレポジトリとしてvault.centos.orgというサイトで管理しているものを参照できるようになるので、yum updateが再びできるようになる。

以前、当たり前のように動いていた便利機能(yum update)が、OSのサポート終了に伴って利用できなくなるのは、当然のことなのかもしれないが、寂しい。一方で、ちょっとした設定変更により、「もうダメだ、死んでしまった!」と諦めかけた機能が再び利用できるようになる、というのは大変嬉しかった。(本当は、CentOS 5とか6への移行をすべきだが……それと、この喜びとは別の問題。)

CentOS 5も、「CentOS 5.8」というバージョンまで進んでいるので、CentOS 4が「CentOS 4.9」で最後だったのを考えると、「CentOS 5.9」というのが出てしまったら、もうサポート終了になってしまうのかもしれない。

そういった日が来なければいいのだが……いつかは来るんだろうなぁ。

前へ

CentOS 4、CentOS 5、CentOS 6のバージョンを確認する方法

次へ

野菜ジュース・グリコ「野菜&くだもの」(270ml、紙パック)を飲んだ