技巧心得 |
使用 yum 升級你的系統 (redhat9 升級到 CentOS 3.3) 由於 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, 整個更新完成後, 系統運作都很正常. |