註:
1. 這不是一個被支援的升級途徑!
這裡所提及的伺服器光碟系列並不存在於所有 CentOS 發佈或每個次版本的重新發行中。CentOS 小組竭力達至任何一系列的光碟只需首張光碟便能作基本安裝,但這個未必一定可行。詳情請參閱特定發行版本的發行注記。
你必須於升級後強制性地由 CentOS 5 軟件庫內安裝 python-sqlite。這是由於 python-sqlite 的版本在 4 及 5 中並沒有分別。
rpm -Uvh --replacepkgs python-sqlite-1.1.7-1.2.1.i386.rpm
否則你會收到錯誤信息說
Could not find any working storages
或
There was a problem importing one of the Python modules required to run yum. The error leading to this problem was: No module named sqlite Please install a package which provides this module, or verify that the module is installed correctly. It's possible that the above module doesn't match the current version of Python, which is: 2.4.3 (#1, Mar 5 2011, 21:25:56) [GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] If you cannot solve this problem yourself, please go to the yum faq at: http://wiki.linux.duke.edu/YumFaq
2. 保留你資料的最新備份!
這裡提供的是利用 yum 將 CentOS 4.4 伺服器光碟安裝的系統升級的「一般」指引。
如果你安裝了額外或來自第三方軟件庫的套件,你的進度也許會不同。
我用了一台以 x86_64 伺服器 4.4 版光碟重新(整全)安裝的系統來測試移植。
既然我擁有一個 CentOS 4.4 的安裝,我便可開始透過 yum 移植至 CentOS 5。
開始進行升級
mkdir /tmp/Upgrades cd /tmp
檢查 centos-yumconf 是否存在
rpm -qi centos-yumconf
* 如果 centos-yumconf 存在,請移除它。
* 註:它似乎只會在利用 x86_64 版本的 ServerCD 4.4 映像進行安裝時才會被安裝。
rpm -e centos-yumconf
手動式安裝須用的 RPM
我利用了 wget 來取得 RPM。
安裝 centos-release-5-0.0.el5.centos.2.x86_64.rpm centos-release-notes-5.0.0-2.x86_64.rpm
rpm -Uvh centos-release-5-0.0.el5.centos.2.x86_64.rpm centos-release-notes-5.0.0-2.x86_64.rpm
# 你確定你已經停用其它軟件庫,並且只啟用 CentOS 的 Base 及 Updates 軟件庫。
安裝 CentOS 5 的 GPG 金鑰
# 從 CentOS 5 的鏡像或媒體取得金鑰。
# Get the GPG key from a mirror or CentOS 5 media.
rpm --import http://mirrors.kernel.org/centos/RPM-GPG-KEY-CentOS-5
cd /tmp/Upgrades
下載以下 RPM
# 它們讓新的 yum/rpm 可以運作。
- rpm-libs-4.4.2-37.el5.x86_64.rpm
- rpm-4.4.2-37.el5.x86_64.rpm
- yum-3.0.5-1.el5.centos.2.noarch.rpm
- rpm-python-4.4.2-37.el5.x86_64.rpm
- popt-1.10.2-37.el5.x86_64.rpm
- glibc-2.5-12.x86_64.rpm
- glibc-common-2.5-12.x86_64.rpm
- beecrypt-4.1.2-10.1.1.x86_64.rpm
- glibc-headers-2.5-12.x86_64.rpm
- glibc-devel-2.5-12.x86_64.rpm
- binutils-2.17.50.0.6-2.el5.x86_64.rpm
- elfutils-libelf-0.125-3.el5.x86_64.rpm
- elfutils-0.125-3.el5.x86_64.rpm
- elfutils-libs-0.125-3.el5.x86_64.rpm
- beecrypt-python-4.1.2-10.1.1.x86_64.rpm
- python-2.4.3-19.el5.x86_64.rpm
- python-devel-2.4.3-19.el5.x86_64.rpm
- python-elementtree-1.2.6-5.x86_64.rpm
- python-sqlite-1.1.7-1.2.1.x86_64.rpm
- python-urlgrabber-3.1.0-2.noarch.rpm
- neon-0.25.5-5.1.x86_64.rpm
- libxml2-2.6.26-2.1.2.x86_64.rpm
- libxml2-python-2.6.26-2.1.2.x86_64.rpm
- db4-4.3.29-9.fc6.x86_64.rpm
- libselinux-1.33.4-2.el5.x86_64.rpm
- libsepol-1.15.2-1.el5.x86_64.rpm
- mcstrans-0.1.10-1.el5.x86_64.rpm
- m2crypto-0.16-6.el5.1.x86_64.rpm
- krb5-libs-1.5-17.x86_64.rpm
- openssl-0.9.8b-8.3.el5.x86_64.rpm
- readline-5.1-1.1.x86_64.rpm
# 安裝以上的 RPM
rpm -Uvh *.rpm --nodeps
# 為 CentOS 清理及重新建立 rpmdb
rm -f /var/lib/rpm/__* rpm --rebuilddb
# 清理 yum 的檔案
yum clean all
# 移除具依賴性/過時的套件
註:你可以執行 yum upgrade 來找尋須要移除的依賴性套件。
rpm -e VFlib2 caching-nameserver autofs kudzu pcmcia-cs xorg-x11 newt-perl hal crypto-utils --nodeps
安裝新的 CentOS 5 內核
# 如果你利用 wget 來取得新的內核,你須要先這樣做。
yum upgrade wget
rpm -ivh kernel-2.6.18-8.el5.x86_64.rpm --nodeps
移除 CentOS 4 的舊內核
rpm -qa | grep kernel
移除 2.6.9 的配件
rpm -e kernel-2.6.9-42.EL kernel-devel-2.6.9-42.EL kernel-doc-2.6.9-42.EL
將系統升級至 CentOS 5
yum upgrade
# 安裝那些未被重裝的套件
yum install caching-nameserver autofs
cd /tmp
# 將系統升級後所藏有的 RPM 列出,以便查看遺留下的舊 RPM
rpm -qa >Upgrade_RPM_List
# 重新啟動系統
reboot
# 登入,你便應該在 CentOS 5 上
uname -a
Linux localhost.localdomain 2.6.18-8.1.1.el5 #1 SMP Mon Apr 9 09:43:24 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux
到了這一步,你便須要更新那些額外/第三方的 RPM。
Translation of revision 34