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