This Sheet describes the procedure for updating FreeBSD from source. Before performing this procedure, you should review the FreeBSD Handbook article Using make world.
# /usr/local/bin/cvsup -g -L 2 /usr/src/stable-supfile
If you've created the /usr/local/bin/cvsrun script described in the Updating Sources with CVSup cheat sheet, you can also run:
# /usr/local/bin/cvsrun
If you need help setting up /usr/src/stable-supfile, see the Updating Sources with CVSup cheat sheet.
CFLAGS= -O -pipe
COPTFLAGS= -O -pipe
NOPROFILE= true
USA_RESIDENT= YES
# cp -Rp /etc /etc.old
# /usr/sbin/mergemaster -p -v -w 132 (eliminate '-w 132' if 132x43 video mode is not activated)
# cd /usr/obj
# chflags -R noschg *
# rm -rf *
# cd /usr/src
# make buildworld
# cd /usr/src (if you've changed directories after the last step)
# make kernel KERNCONF=YOURKERNEL
If you don't already have a custom kernel configuration, use GENERIC in place of YOURKERNEL above. If you wish to create a custom kernel, see the Building a Custom Kernel cheat sheet.
# shutdown now
Or reboot into single user mode:
# shutdown -r now
···
Ok boot -s
···
# fsck -p
# mount -u /
# mount -a -t ufs
# swapon -a
# adjkerntz -i
# cd /usr/src
# make installworld
# /usr/sbin/mergemaster -v -w 132 (eliminate '-w 132' if 132x43 video mode is not activated)
In most cases, mergemaster will realize when it is necessary to update the devices, and will offer to complete it automatically. If you've declined mergemaster's offer, perform these steps to update /dev manually:
# cd /dev
# /bin/sh MAKEDEV all
This step is included for completeness. It can be safely omitted.
# cd /usr/src/release/sysinstall
# make clean
# make all install
# reboot