Redhat 7.3 to Redhat 9 Remote Upgrade

Hey all,

Ok, I transitioned a box from Redhat 7.3 to Redhat 9 today.

This was primarily due to some monumentally bad advice supplied by Rackshack (check out that thread here). While I’ll admit it fixed the initial problem (a kernel not booting) it manages to break the PSA admin server since the glibc libraries are incompatible.

Anyways, the basic steps for transitioning from RH7.3 to RH9 with a [broken] install of PSA7 are as follows. Kudos to ART for his assistance, without the turtle we’d never win the race. 🙂

1) Install Redcarpet from Ximian

[root@server root]# rpm -Uvh ftp://ftp.ximian.com/pub/redcarpet/redhat-73-i386/rcd-1.4.5-0.ximian.4.2.i386.rpm ftp://ftp.ximian.com/pub/redcarpet/redhat-73-i386/rug-1.4.5-0.ximian.4.0.i386.rpm

2) Upgrade Redhat 7.3 RPMS to Redhat 9.

[root@server root]# vi /etc/redhat-release

Modify the file to look like:

Red Hat Linux release 9 (Shrike)

Save changes and quit.

Move your httpd.conf elsewhere (to avoid the new Apache not sticking in it’s own httpd.conf, which we need since it’s Apache 2 not Apache 1.3 :)).

[root@server root]# mv /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.1.3

Begun Red Carpet upgrade.

[root@server root]# rcd start
[root@server root]# rug sub redhat-9-i386
[root@server root]# rug up

Red Carpet will then begin upgrading all the RPMs for Redhat 9. With me it was ~300MB worth. Once that was finished I installed a Redhat 9 kernel:

[root@server root]# wget http://mirrors.kernel.org/redhat/redhat/linux/updates/9/en/os/i686/kernel-2.4.20-30.9.i686.rpm http://mirrors.kernel.org/redhat/redhat/linux/updates/9/en/os/i686/kernel-smp-2.4.20-30.9.i686.rpm
[root@server root]# rpm -ivh kernel-2.4.20-30.9.i686.rpm
[root@server root]# rpm -ivh kernel-smp-2.4.20-30.9.i686.rpm

I’m one of those ppl who likes the idea of multiple options so I installed both a non-SMP and an SMP kernel (it was a dual CPU box).

Then I modified /etc/lilo.conf and set the default kernel to the SMP capable kernel and reran:

[root@server root]# lilo
Added 2.4.20-30.9smp *
Added 2.4.20-30.9
Added 2.4.20-28.8smp
Added 2.4.20-27.8smp
Added 2.4.18-27.7
[root@server root]#

Some would say that setting the default kernel to the new one without trying a lilo -R is a bad idea. I’d usually agree however, I figured it’d be more likely that the kernel fails due to an incompatible glibc than from not booting at all (The differences between 28.8 and 30.9 are only one or two patch files).

3) Upgrade to PSA7 for Redhat 9

[root@server root]# ulimit -n 32768
[root@server root]# wget http://download1.sw-soft.com/Plesk/Plesk7/RedHat9/psa-7.0.0-rh9.build040205.22.i586.rpm.tar.gz
tar -zxvf psa-7.0.0-rh9.build040205.22.i586.rpm.tar.gz
[root@server root]# cd rpm_RedHat9_en/
[root@server root]# cd base/
[root@server root]# rpm -Uvh *.rpm

At this point Plesk will go about it’s thing. Halfway through mine failed when MySQL segfaulted. I wasn’t surprised though since I was using ARTS MySQL 4 RPMs (for 7.3). SO, I headed back over to ART and grabbed his Redhat 9 versions:

[root@server root]# wget http://www.atomicrocketturtle.com/atomic/psa/9/RPMS/MySQL-Max-4.0.17-art.rh9.1.i386.rpm http://www.atomicrocketturtle.com/atomic/psa/9/RPMS/MySQL-bench-4.0.17-art.rh9.1.i386.rpm http://www.atomicrocketturtle.com/atomic/psa/9/RPMS/MySQL-client-4.0.17-art.rh9.1.i386.rpm http://www.atomicrocketturtle.com/atomic/psa/9/RPMS/MySQL-devel-4.0.17-art.rh9.1.i386.rpm http://www.atomicrocketturtle.com/atomic/psa/9/RPMS/MySQL-embedded-4.0.17-art.rh9.1.i386.rpm http://www.atomicrocketturtle.com/atomic/psa/9/RPMS/MySQL-server-4.0.17-art.rh9.1.i386.rpm http://www.atomicrocketturtle.com/atomic/psa/9/RPMS/MySQL-shared-4.0.17-art.rh9.1.i386.rpm http://www.atomicrocketturtle.com/atomic/psa/9/RPMS/MySQL-shared-compat-4.0.17-art.rh9.1.i386.rpm

[root@server root]# rpm -Uvh MySQL-*

You may need to –force this (can’t remember).

Now I tried to install Plesk again (just the core psa rpm).

[root@server root]# rpm -Uvh psa-7.0.0-rh9.build040205.22.i586.rpm –force

This time it failed with the classic error of:

===> Installing psa database
Trying to check psa database… Trying to find psa database…
Trying to connect with admin: account… connected
Trying to check psa database version… version is 0700
DATABASE ERROR!!!
Previous product version is , but previous database
version is 0700. In most of cases it is result of
previous upgrade try failure. Please, restore previous version
from backup, and try again or contact technical support.

ERROR while trying to check database version
Check the error reason, fix and try again

Aborting…

This is primarily because the PSA RPM removes the old version file but doesn’t put the new one there before it died previously. That means it breaks when you try to install again :-/. There’s a few fixes for this, mine was to:

echo “7.0.0 RedHat 7.3 040205.22” > /usr/local/psa/version

Then rerun the RPM installer.

This time the installer should finish. With a bit of luck Apache should also work! 🙂 If you’re using a custom PHP compile (or ARTs 4.3.x ones), you’ll need to rpm -e the old versions (using –nodeps) and install the RH9 version.

Finally, if you had an Apache with >1024 FDs you’ll need to modify types.h again and –rebuild the source rpm.

Hope that helps some peoples,

Stuart