Upgrading CentOS 32bit 4.x to 32bit 5.x

We have found the following guide very useful in this process. This works for both dedicated servers as well as VPS nodes:

cPanel Servers

If your server has cPanel installed you first need to remove filesystem from the exclude line in /etc/yum.conf. If you don't the yum upgrade procedures below will fail.

Setting file attributes

chattr -Ria /bin
chattr -Ria /etc
chattr -Ria /etc
chattr -Ria /include
chattr -Ria /lib
chattr -Ria /sbin
chattr -Ria /usr/bin
chattr -Ria /usr/include
chattr -Ria /usr/lib
chattr -Ria /usr/libexec
chattr -Ria /usr/local/bin
chattr -Ria /usr/local/include
chattr -Ria /usr/local/lib
chattr -Ria /usr/local/sbin
chattr -Ria /usr/sbin
chattr -Ria /usr/share
chattr -Ria /var/lib
chattr -Ria /var/lock
chattr -Ria /var/log
chattr -Ria /var/run
chattr -Ria /var/spool/repackage

Ensure CentOS 4.x is up-to-date

rpm --rebuilddb
yum clean all
yum update
rm -f /var/lib/rpm/__db.00*
rpm --rebuilddb

Remove and Install Packages

rpm -e lftp syslinux mkbootdisk
rpm -Uvh http://vault.centos.org/5.0/os/i386/CentOS/centos-release-5-0.0.el5.centos.2.i386.rpm http://vault.centos.org/5.0/os/i386/CentOS/centos-release-notes-5.0.0-2.i386.rpm
mv /etc/yum.repos.d/CentOS-Base.repo.rpmnew /etc/yum.repos.d/CentOS-Base.repo

Install CentOS5 Kernel

rpm -ivh --nodeps http://vault.centos.org/5.0/os/i386/CentOS/kernel-2.6.18-8.el5.i686.rpm http://vault.centos.org/5.0/os/i386/CentOS/kernel-devel-2.6.18-8.el5.i686.rpm

Remove Old Kernels

rpm -e $(rpm -qa | grep kernel | grep -v 2.6.18 | tr '\n' ' ') --nodeps

Remaining Packages Upgrade

rpm -e --justdb python-elementtree --nodeps
yum clean all
yum upgrade

Fix RPM System

rm -f /var/lib/rpm/__db.00*
rpm --rebuilddb
rpm -Uvh --force http://vault.centos.org/5.0/os/i386/CentOS/python-elementtree-1.2.6-5.i386.rpm http://vault.centos.org/5.0/os/i386/CentOS/python-sqlite-1.1.7-1.2.1.i386.rpm
yum clean all

One Last Upgrade

yum upgrade

cPanel Servers Only

The filesystem and perl excludes have to be removed from the /etc/yum.conf otherwise you will see dependency issues.

Once the upgrade has completed you will need to do the following so that the cPanel/WHM software picks up the version change.

rm -f /var/cpanel/sysinfo.config
/scripts/gensysinfo
/scripts/upcp --force
/scripts/mysqlup --force
/scripts/easyapache --build