说明:
当前操作系统:CentOS 4.x 64位
实现目的:
通过yum命令在线升级CentOS 4.x到CentOS 5.x最新版本
一、升级CentOS 4.x到CentOS 4.9版本
cd /etc/yum.repos.d/ #进入目录
mv CentOS-Base.repo CentOS-Base.repo-bak #备份之前的文件
wget http://vault.centos.org/4.9/CentOS-Base.repo #下载CentOS 4.9的yum源文件
yum clean all #清理之前缓存目录下的软件包
rm -f /var/lib/rpm/__db* #删除rpm包数据
rpm --rebuilddb #重建rpm包数据
yum -y update #升级系统
二、升级CentOS 4.9到CentOS 5.x最新版(目前为CentOS 5.10)
rpm -qa | grep kernel #查看系统当前内核,如下所示:
#############################################
kernel-smp-2.6.9-89.EL
kernel-devel-2.6.9-100.EL
kernel-smp-devel-2.6.9-100.EL
kernel-2.6.9-100.EL
kernel-smp-2.6.9-100.EL
kernel-2.6.9-89.EL
kernel-devel-2.6.9-89.EL
kernel-smp-devel-2.6.9-89.EL
kernel-largesmp-devel-2.6.9-100.EL
kernel-utils-2.4-23.el4
kernel-largesmp-devel-2.6.9-89.EL
rpm -e --nodeps --justdb python-elementtree
#############################################
#运行下面的命令删除系统内核
rpm -e --nodeps --justdb kernel-smp-2.6.9-89.EL
rpm -e --nodeps --justdb kernel-devel-2.6.9-100.EL
rpm -e --nodeps --justdb kernel-smp-devel-2.6.9-100.EL
rpm -e --nodeps --justdb kernel-2.6.9-100.EL
rpm -e --nodeps --justdb kernel-smp-2.6.9-100.EL
rpm -e --nodeps --justdb kernel-2.6.9-89.EL
rpm -e --nodeps --justdb kernel-devel-2.6.9-89.EL
rpm -e --nodeps --justdb kernel-smp-devel-2.6.9-89.EL
rpm -e --nodeps --justdb kernel-largesmp-devel-2.6.9-100.EL
rpm -e --nodeps --justdb kernel-utils-2.4-23.el4
rpm -e --nodeps --justdb kernel-largesmp-devel-2.6.9-89.EL
rpm -e --nodeps --justdb rpm -e --nodeps --justdb python-elementtree
注意:内核一定要全部删除,否则会导致升级失败,删除完成之后,可以使用rpm -qa | grep kernel命令再查看一次
系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容©版权所有,转载请注明出处及原文链
cd /etc/yum.repos.d/ #进入目录
#下载CentOS 5.10的两个安装包
wget http://mirror.centos.org/centos/5/os/x86_64/CentOS/centos-release-5-10.el5.centos.x86_64.rpm
wget http://mirror.centos.org/centos/5/os/x86_64/CentOS/centos-release-notes-5.10-0.x86_64.rpm
#安装软件包
rpm -Uvh centos-release-notes-5.10-0.x86_64.rpm
rpm -Uvh centos-release-5-10.el5.centos.x86_64.rpm
#下载CentOS 5的两个安装包,后面会用到
wget http://vault.centos.org/5.0/os/x86_64/CentOS/python-sqlite-1.1.7-1.2.1.x86_64.rpm
wget http://vault.centos.org/5.9/os/SRPMS/python-sqlite-1.1.7-1.2.1.src.rpm
cd /etc/yum.repos.d/ #进入目录
mv CentOS-Base.repo CentOS-Base.repo-4 #备份之前的文件
下载CentOS 5的CentOS-Base.repo 并且上传到/etc/yum.repos.d/下
下载地址:http://lug.ustc.edu.cn/wiki/_export/code/mirrors/help/centos?codeblock=1
yum clean all #清理之前缓存目录下的软件包
rm -f /var/lib/rpm/__db* #删除rpm包数据
rpm --rebuilddb #重建rpm包数据
yum -y remove *.{i386,i586,i686} #删除旧版软件包,重要,否则系统升级失败
yum -y upgrade #升级系统
可能会碰到类似下面的错误:
错误1:
Error: Missing Dependency: python-abi = 2.3 is needed by package python-elementtree
解决办法:
#下载下面的软件包
wget http://vault.centos.org/4.4/os/x86_64/CentOS/RPMS/python-elementtree-1.2.6-4.2.1.x86_64.rpm
rpm -e --nodeps python-elementtree #删除系统当前的软件包
rpm -Uvh --nodeps python-elementtree-1.2.6-4.2.1.x86_64.rpm #安装刚刚下载的软件包
错误2:
Error: Missing Dependency: libttf.so.2()(64bit) is needed by package bg5ps
解决办法:
yum -y remove bg5ps #删除
yum -y upgrade #继续升级系统
直到升级完成,出现complete!
三、修复yum命令
系统升级完成之后,会导致yum命令无法使用,下面进行修复
cd /etc/yum.repos.d/ #进入目录
#安装之前下载好的软件包
rpm -Uvh --nodeps python-sqlite-1.1.7-1.2.1.x86_64.rpm
rpm -ivh python-sqlite-1.1.7-1.2.1.src.rpm
cd /usr/src/redhat/SPECS #进入目录
rpmbuild -bb *.spec #创建rpm包
cd /usr/src/redhat/RPMS/x86_64 #进入目录
#安装此目录下所有的包
rpm -Uvh --force python-sqlite-debuginfo-1.1.7-1.2.1.x86_64.rpm
rpm -Uvh --force python-sqlite-1.1.7-1.2.1.x86_64.rpm
四、设置系统启动参数
lsb_release -a #查看系统版本信息,如下图所示
rpm -qa | grep kernel #查看系统内核,如果没有,运行yum install kernel kernel-PAE安装内核
cat /boot/grub/grub.conf #查看系统启动设置,如下图所示
系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容©版权所有,转载请注明出处及原文链
##########################################
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-371.9.1.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-371.9.1.el5 ro root=LABEL=/1
initrd /initrd-2.6.18-371.9.1.el5.img
##########################################
可以看到新的系统内核(2.6.18-371.9.1.el5)已经自动添加为默认启动
shutdown -r now #重启系统
uname -a #查看当前系统内核
至此,在线升级CentOS 4.x到CentOS 5.x最新版本教程完成。