注:
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