Updating to FreeBSD 9.1-RELEASE-p1
There have been some changes in the FreeBSD update process. The
csup
program has been retired, source code updating is now done
with subversion. Since I haven’t used that before, I’m documenting
the steps that I took here.
I’m using source updates instead of freebsd-update because I tend to
build a custom OS, leaving out things that I don’t use. This is done
by modifying /etc/src.conf
. Its manual documents which part of
the system you can exclude.
Generally, I followed the steps as outlined in the relevant appendix of the handbook. I decided to check out the 9.1 release engineering branch, since a couple of security updates (1, 2) were made since FreeBSD 9.1 was released.
Retrieving the initial source:
# rm -rf /usr/src
# svn checkout svn://svn0.us-east.FreeBSD.org/base/releng/9.1 /usr/src
This takes some time because it has to get all the files. However, as long as I stay on the same branch, updates should be quicker, like this:
# svn update /usr/src
For building the operating system, I first read through
/usr/src/UPDATING
(which didn’t point to anything requiring
special attention), then emptied the /usr/obj
directory, and made
a complete backup. After that I used the more or less standard upgrade procedure:
# rm -rf /usr/obj/*
# cd /usr/src
# make buildworld
# make buildkernel
# make installkernel
# reboot
Reboot into single user mode, then:
# mount /usr
# mount /tmp
# mergemaster -p
# cd /usr/src
# make installworld
# mergemaster -i -U
# reboot
After that I booted into the new system. There were some changes to
the configuration files left in /var/tmp/temproot
. I examined
these and merged them into my config files. As a last step, I
removed old files from my system:
# cd /usr/src
# make delete-old
# make delete-old-libs
For comments, please send me an e-mail.