In place upgrades (was Re: FreeBSD 4.x EoL)
dougb at FreeBSD.org
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:
> 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
> 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