Roland's homepage

My random knot in the Web

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