由於 RedHat 9 已經沒有更新了, Fedora 雖然有個遺產計畫在更新, 但是好像沒什麼動靜, 上頭的異動速度又不快. 所以機房內的幾台安裝 RedHat 9 的主機, 也很久沒有更新了.
所以想利用今天開始的過年假期, 把這幾台機器升級到別的版本上頭.
我們選擇的是使用 CentOS 3, 因為這是一套與 RHEL 3 相容的版本, 而 RHEL 3 是基於 RedHat 9 發展的. 這樣子我們升級的異動會比較少一點.
升級主要參考
http://www.owlriver.com/tips/centos-31-ex-rhl-9/ 這一篇文章.
1. 到
http://linux.duke.edu/projects/yum/download.ptml 抓 yum 2.0.7 回來安裝.
2. 把 CentOS 3.3 的光碟中的 RPMS 目錄複製到主機中. 如 /centos/os/RPMS 下頭. 共有三片光碟.
3. 如果可能, 也把 CentOS 網站上頭的 updates 下頭的 rpm 也抓一份回來, 放到 /centos/updates/RPMS 下頭.
4. 建立兩個目錄 /centos/os/headers 與 /centos/updates/headers, 然後在 /centos/os 與 /centos/updates 下頭執行這個指令:
cd /centos/os
yum-arch .
cd /centos/updates
yum-arch .
以便於建立 yum 的資料庫.
5. 匯入 CentOS 的 PGP Key.
rpm --import http://mirror.caosity.org/centos-3/RPM-GPG-KEY-CentOS-3
上頭那個檔案在光碟內也有, 也可以直接匯入光碟內的 key.
6. 使用 rpm -e 指令, 移除非必要的 -devel 套件. (非必要)
7. 建立 /etc/yum-upgrade.conf 如下:
#
[main]
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=redhat-release
installonlypkgs=kernel kernel-smp kernel-hugemem kernel-enterprise kernel-debug kernel-unsupported kernel-smp-unsupported kernel-hugemem-unsupported
tolerant=1
exactarch=1
[upgrade]
name=Centos upgrade
baseurl=file://localhost/centos/os/
[update]
name=CentOS-$releasever - Updates
baseurl=file://localhost/centos/updates/
如果沒有事先抓下這些 rpm, 也可以設成
#
[main]
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=redhat-release
installonlypkgs=kernel kernel-smp kernel-hugemem kernel-enterprise kernel-debug kernel-unsupported kernel-smp-unsupported kernel-hugemem-unsupported
tolerant=1
exactarch=1
[upgrade]
name=Centos upgrade
baseurl=http://mirror.centos.org/centos/3.3/os/$basearch/
[update]
name=CentOS-$releasever - Updates
baseurl=http://mirror.centos.org/centos/3.3/updates/$basearch/
這樣子 yum 會在更新時上網抓檔案. 因為我們要更新好幾台, 所以先抓回來, 以免每次更新都再抓一次.
update 的部份也可以不設, 等升級到 CentOS 3.3 後, 再使用 yum update 去更新也可以.
8. 先更新 kernel 與 rpm.
rpm -vv --rebuilddb
yum -y -t -c /etc/yum-upgrade.conf upgrade rpm kernel
rpm -vv --rebuilddb
yum -y -t -c /etc/yum-upgrade.conf upgrade rpm kernel
原本的文件說這兒要重開機, 不過似乎不用, 可以直接往下做.
9. 再更新整個系統
yum -y -t -c /etc/yum-upgrade.conf upgrade
等 yum 跑完後, 你的 RedHat 9 就變成 CentOS 3.3 了, 再重開機使用新的 kernel.
如果檔案都抓回來, 在 local 的主機或網路上頭時, 整個更新的動作應該可以在 30 分到 1 小時之內完成.
我們的主機上頭有 mysql, postgresql, httpd, php, openldap-server, 整個更新完成後, 系統運作都很正常.