Installing, patching, and upgrading a Redhat 9 install

Why would someone choose a RH9 install over, say, Fedora (minimal install)?

* You want stablility, w/o having to use Centos/RHEL
* Time tested
* Nostalgia
* Compadibility (many companies that release(d) drivers for linux stopped at Redhat 9)
* Makes a good workstation/server combo on an old computer (KDE on RH9 can run comfortably on a 600mhz machine with 128mb ram)

Test machine
Pentium II 600mhz
256mb + 32mb RAM
6.4 gb HDD
3 gb HDD
Generic 10/100 NIC
52x CD-Rom drive
No floppy

You'll only need disc one and two of RH9 for this install.

Go through the graphical or text install, at your leisure. Enter in your time zone, mouse, etc.

When you get to partitions, I chose this layout:

/dev/hdc (6.4gb)
/boot 200mb
/ 6.2gb

/dev/hdd (3gb)
swap 500m
2.5gb /home

Having swap on a seperate drive than / can greatly increase response time (you have an entire drive devoted to swap, and to a lesser extent /home, instead of your drive being fought over by / and swap). This is ideal if you cannot have atleast 128mb ram.

Make sure to check for bad blocks! If RH finds bad blocks, it will NOT allow the install to continue. If possible, use a slackware CD to do your bad block checking (it will quarentine any bad blocks) and then go back to RH install. Don't bother to check for bad blocks again, it's not neccisary if you've already gone the slackware path (and aborted the install early ;))

Now, assuming it installs all right, you'll want to start upgrading.

[root@localhost root]# uname -r
2.4.20-8

While I expected something like 2.4.12, this is still too old to be safe. Let's upgrade to 2.4.31 (latest as of the time of this writing).

We need GCC! So go through disc one and two (/mnt/cdrom/RedHat/RPMS) and grab the dependancies you'll need for gcc and gcc-c++.

rpm -ivh filename.rpm installs it

Now let's get yum. http://linux.lsu.edu/yum/redhat/9/ has it.

Change the mirrors in /etc/yum.conf to http://download.fedora.us/fedora/redhat/9/i386/yum/stable/

# yum update && yum upgrade

Now for the kernel.

Download http://www.fearthecow.net/kernel/module-init-tools-0.9.13.tar.bz2

# tar jxf module-init-tools-0.9.13.tar.bz2
# cd module-init-tools-0.9.13
# ./configure --prefix=/
# make
# make moveold
# make install
# ./generate-modprobe.conf /etc/modprobe.conf

Grab 2.4.31 (or the latest version). http://kernel.org/pub/linux/kernel/v2.4/linux-2.4.31.tar.bz2

Move the kernel source to /usr/src

# tar jxf linux-2.4.31.tar.bz2
# ln -s /usr/src/linux-2.4.31 /usr/src/linux
# cp /boot/config-2.4.20-8 /usr/src/linux/.config
# cd /usr/src/linux
# make oldconfig

In .config, change CONFIG_EXT3_FS=m to CONFIG_EXT3_FS=y
In Makefile, ensure the following is there:
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 3
EXTRAVERSION = -skim-ch6

# make bzImage
# make modules
# make modules_install
# make install

We're not done yet!

# cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.4.31
# cp /usr/src/linux/System.map /boot/System.map-2.4.31
# cp /usr/src/linux/.conf /boot/config-2.4.31

The new image should show up in /boot

Now simply go to /etc/grub.conf and change the System.map and vmlinuz to the new ones. You could alternativly change the symbolic links in /boot to point to the new kernel and map, and use the symbolic link in grub.conf

Either way, restart and it should go off without a hitch. I'd suggest abstaining from RPMS from this point on (unless you absolutely have to), and stick with .tar.gz and compile from source.

You'll want to get YUM now, in order to upgrade/install packages at your leisure. You could go with apt-get, but I'm going to use yum for simplicity's sake.

You can grab yum from http://download.fedora.us/fedora/redhat/9/i386/yum/stable/RPMS Just search for 'yum'.

# wget http://download.fedora.us/fedora/redhat/9/i386/yum/stable/RPMS/yum-2.0.3-0.fdr.1.rh90.noarch.rpm
(or whatever version it's at when you grab it)
# rpm -ivh yum*.rpm

If it asks for dependancies, you can grab them off the same page.

# vi /etc/yum.conf

Change the mirrors to http://download.fedora.us/fedora/redhat/9/i386/yum/stable/RPMS and save. Now run

# yast update && yast upgrade

Grab any updates there are, and close out.

Alternativly, you could install yum as well as things like gcc off the RH9 CDs. Just

# mount /dev/cdrom /mnt/cdrom
# cd /mnt/cdrom/RedHat/RPMS
# rpm -ivh blah*.rpm


Next we'll want to update OpenSSH, since it's a fairly old version and an RPM isn't avalible for it. We'll need a few prerequisits.

Pop in your RH9 disc (2, I believe) and mount it.
# yum -ivh /mnt/cdrom/RedHat/RPMS/zlib-devel-1.1.4-8.i386.rpm
# wget http://www.openssl.org/source/openssl-0.9.7g.tar.gz
# tar -zxf openssl*.tar.gz
# cd openssl*
# ./config
# make && make install
# cd ..
# wget ftp://reflection.ncsa.uiuc.edu/pub/OpenBSD/OpenSSH/portable/openssh-4.1p1.tar.gz
# tar -zxf openssh*.tar.gz
# cd openssh*
# ./configure
# make
# make install
# ssh -V

If it says 3.5 instead of 4.1 (or whatever the newest is at the time of reading), then just

# rm /usr/bin/ssh*
# cp /usr/local/bin/ssh* /usr/bin

While there might be dependancies that I overlooked, none (besides zlib) won't be atainable via yum. If you're not 100% of the name, just try

# yum list | grep partialname

That should have been pretty painless; if there's one great thing about RH9, it's stable and great for compiling shit hassle free.

Not everything is updated on your system; the fedora mirror is still maintained, but it's not nearly as maintained as any of the recent distros are. But with a recent kernel, updated OpenSSH, openssl, a LAMP setup via the guide I have on my site (all of which are compiled from source), and IP tables, you'll be secure. Just don't out handing out shell accounts. And don't forget about the IPTables script I have in the tutorials section; you'll want to use it.