Thursday, May 3, 2012

Upgrade FreeBSD 7.x to 7.2 Stable Release

I tried a binary upgrade method, but it failed due to custom kernel installed on my FreeBSD 7.1_p5 64 bit AMD systems. How do I upgrade my FreeBSD server using source code method?

The procedure for doing a source code based update is described below:

Step # 1: Get updated source code

WARNING! These examples may crash your computer if not executed properly. Make a backup of your system, Sql and configuration before you do this.
You need to use cvsup command to get latest source code.
# cp /usr/share/examples/cvsup/standard-supfile /root/supfile
# vi /root/supfile

Set host as follows:
host=cvsup1.us.FreeBSD.org
CVSup servers for FreeBSD are running at the various sites around the world. Finally, update cvs tag to 7.2:
release=cvs tag=RELENG_7_2
Save and close the file. Get updated source tree, enter:
# cd /usr/src
# csup /root/supfile

Open /usr/src/UPDATING and read important information regarding upgrade procedure including known issues, bugs and workaround.
# vi /usr/src/UPDATING

Step # 2: Build new compiler and related tools

First compiles the new compiler and a few related tools, then uses the new compiler to compile the rest of the system.
# cd /usr/src/
# make buildworld

Step # 3: Build and install new kernel

Now, you have latest compiler and other tools, just build kernel:
# make buildkernel
# make installkernel

You can also specify kernel custom name using KERNCONF. If your kernel config file name is onetouch, enter:
# make buildkernel KERNCONF=onetouch
# make installkernel KERNCONF=onetouch

Finally, you need to reboot system and boot into a single user mode using boot -s from the loader prompt:
# shutdown -r now

Step # 4: Install the base system 7.2

First, mount the system:
# mount -a -t ufs
To install some system configuration files that are required by the new base system, enter :
# mergemaster -p
Accept the changes as promoted as per your configuration. Finally, install the base system:
# cd /usr/src
# make installworld

Finally, merge your 7.2 configuration files, enter:
# mergemaster -i
Now, you have FreeBSD 7.2 new kernel and base system installed. Just reboot the server:
# shutdown -r now
Make sure everything is working:
# sockstat -6
# sockstat -4
# tail -f /var/log/messages
# more /var/run/dmesg.boot
# tail -f /path/to/app/log/file

Update FreeBSD Applications

Now you are running new FreeBSD 7.2 stable environment. All you have to do is upgrade installed ports tree using portsnap, enter:
# portsnap fetch update
List outdated applications, enter:
# pkg_version -vl '<'
Finally, check all ports, update as necessary (portmaster is not part of base system, you need to grab it from /usr/ports/ports-mgmt/portmaster) :
# portmaster -a

No comments:

Post a Comment