treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

CentOSでどうしても古いバージョンを使うとき

CentOSは使っている人が多い(と思っています。)ディストリビューションです。
中にはテストのためにどうしても古いバージョンを使わなきゃいけない局面もあるかと。
今回はそんな時のTIPSをご報告します。

ほぼ自分用の備忘録に近い。

古いバージョンを使う

CentOSの古いバージョンを使う、最初のOSインストールのときはいいんですが、yumでパッケージ追加やアップデートができない、というのは不便です。

$ sudo yum check-update

と実行すると、
----------------------------------------------
Loaded plugins: fastestmirror, security
Determining fastest mirrors
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
Eg. Invalid release/
removing mirrorlist with no valid mirrors: /var/cache/yum/base/mirrorlist.txt
Error: Cannot find a valid baseurl for repo: base
----------------------------------------------
こういうエラーになっちゃいます。要するにもうないよ、って言われます。

そこで<http://vault.centos.org/>で公開されているパッケージを読み込むようにします。
このURLを開くと、CentOSのバージョンがズラーっと並んでいます、ここで古いバージョンのyumを指定できるようになる、という感じ。

設定方法

設定は「/etc/yum.repos.d/CentOS-Base.repo」を編集します。

まずはバージョンを確認しておきます。例えば
$ cat /etc/redhat-release
CentOS release 5.10 (Final)

と、「/etc/redhat-release」ファイルを見れば今のOSバージョンが分かります。
「CentOS release 5 (Final)」とか「CentOS release 5.5 (Final)」とか表示されるかと。
ここのバージョン番号(例えばここでは5.10)をメモしとくわけです。

いざ「/etc/yum.repos.d/CentOS-Base.repo」を開いて…
----------------------------------------------
[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/
----------------------------------------------
こういう感じで記載がある箇所を編集。
----------------------------------------------
[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/
baseurl=http://vault.centos.org/5.10/os/$basearch/
----------------------------------------------
「mirrorlist=」で開始する行をコメントアウト
「#baseurl=」で開始する行は元々(デフォルトで)コメントアウトされていますが、コメントアウトされていなければコメントアウトします。
で、「baseurl=」を新たに追記するわけです。
baseurl=http://vault.centos.org/バージョン番号/カテゴリ/$basearch/
て感じです。
例ではバージョンが5.10です。でbaseは「os」となっているので以下のようになります。
「baseurl=http://vault.centos.org/5.10/os/$basearch/

これを、「updates」やら「extras」やらあるだけ書き換えるってことです。
updatesなら「baseurl=http://vault.centos.org/5.11/extras/$basearch/」を追記、extrasなら「baseurl=http://vault.centos.org/5.11/updates/$basearch/」という具合に、項目があるだけ追加しつつ、デフォルトの「mirrorlist=」や「#baseurl=」はコメントアウトします。

こうすると、<http://vault.centos.org/>の力をお借りしてyumが使えるようになります。

<http://vault.centos.org/>に感謝しつつ使わせていただきます。