In place upgrades (was Re: FreeBSD 4.x EoL)

Doug Barton dougb at
Wed Oct 18 00:50:45 UTC 2006


Nice job with this, I'm sure that many people will find it very 
helpful. I would like to offer a few suggestions if I may.

Michael W. Oliver wrote:
> Colin,
> Thanks for the verbose and reasoned explanation.  Since the email last
> week, I have taken the opportunity to upgrade two machines, one here and
> one remote (both with serial console) from 4.9->5.5->6.2PRE, and while I
> can't say that I did it blindfolded, it wasn't too painful. 

That's great news! :)

> The upgrade instructions at...
> ...were as close to perfect as could be (and for those who might ask me
> for a step-by-step howto, look to the above URL).  A few things that I
> should mention to others trying this are...
> 0. Backup, and then check your backups!

Amen brother, especially to the bit about checking the backups before 
committing yourself.

> 1. Be prepared to spend a lot of time in single-user mode, especially
> for the 4->5 step, because there is a LOT for mergemaster to do.  The
> step from 5->6 is not nearly as painful. 

One technique that I have used successfully in the past is to get an 
up to date src tree, run mergemaster -v up to the point where it has 
built the temproot and says "The following files ...", then ^C out of 
that and run the following:

diff -ur /var/tmp/temproot/etc /etc > etc.diff

That way you will know what you've changed and rather than have to 
suffer through running mergemaster you can just blow away /etc, 
install the new one using 'mergemaster -i', and then apply the bits of 
your diff that are still relevant.

> 3. Be prepared to spend a lot of time (depending on the speed of your
> machines) rebuilding all of your ports.  Don't skimp on this step.

One small clarification, it's not necessary to do this after 
installing RELENG_5, only after you've arrived at R6. In addition to 
the excellent suggestion that Kris offered of using portupgrade, I 
would also like to suggest that you give portmaster a try. 
Particularly, _before_ upgrading you can install portmaster and run 
'portmaster -l > installed-ports-list'. Then when you're ready to 
start over, you can install each of the ports on the root and leaf 
lists and portmaster will sort out the dependencies for you.




     This .signature sanitized for your protection

More information about the freebsd-stable mailing list