This is an old revision of the document!


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:

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

You must remove the filesystem package from the excludes line in /etc/yum.conf

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