Upgrading from 6.3 to 7.1 -- how dangerous?

Michael Powell nightrecon at verizon.net
Sun Apr 19 17:47:34 UTC 2009


John Almberg wrote:

> I need to upgrade a live, production server from 6.3 to 7.1. I can't
> afford to have any troubles with this server. I have Absolute FreeBSD
> and a few other BSD books, and the upgrade process looks fairly
> straightforward. That's the theory...
> 
> Real world question: how scared should I be?
> 
> I've thought about setting up a dummy server, just to practice on. Is
> this a good idea? Or am I just a nervous Nellie?
> 

I concur with the concept of doing it on a test box first. I only have two 
servers at home and 7 at work, so the ones at home are my "fudge" factor in 
that upgrades are run by them first before I try the ones at work.

Since I don't have large numbers whenever I go from one major release to 
another, e.g., like 6.x to 7.x I first use dump and back up everything. Then 
I usually install the new from scratch, build whatever ports, and copy 
configs over from the backup. Doesn't have to get done this way, but there 
are a few things of which you should be aware.

Whenever there is a major version bump it is because of an ABI difference 
between old and new. Sometimes this will cause installed ports that were 
built against the libs from the previous install to malfunction. The proper 
fix is to rebuild them after the update so they get built against the new 
versions of system libraries. This can be automated with portupgrade.

The other common approach is to install the "compat" shim, in this case it 
would be the compat6x. With this installed when you reboot to the new kernel 
in theory the existing ports built against 6.x libs will still function. 

Since I'm still using csup and the make build/install/kernel/world dance I 
can't speak to freebsd-update. There is also a target for ensuring old libs 
are deleted, I believe it is make delete-old-libs, or something like. It is 
a good idea to remove the old libs so that when later on when you are 
updating installed ports they can only get linked against the new 7.x libs. 
The situation you do not want to get yourself in is having a mix of some 
ports built against 7.x and some other(s), e.g., dependencies built against 
the 6.x libs. 

Sounds like a lot but it really isn't if you break it up into individual 
steps and are aware of the potential pitfalls. These are mostly easy to deal 
with by simply doing things in the proper order. What you are proposing is 
doable, and has been done by many - I just wanted you to know the traps not 
to fall into. But I would recommend you dry run it on a non production box 
first, just to get a feel for it.

-Mike






More information about the freebsd-questions mailing list