Source upgrade from 6.3-PRERELEASE to 7-STABLE

Matthew Seaman m.seaman at
Sat Apr 5 08:57:46 UTC 2008

Joshua Isom wrote:
> I've looked back at a lot of the emails about upgrading a system from 6 
> to 7, but all seem to contain some caveat or other, generally ports.  I 
> want a "clean" system, but don't want to deal with backing up, 
> reformatting, and installing, not to mention reconfiguring everything.  
> Since by now many people have done it, what's the best way to upgrade 
> from 6.3 to 7.0 for the entire system, base and ports?

It depends...

Seriously, one very good and fairly bulletproof way of migrating from 6.3
to 7.0 is by a nuke and repave job on your machine.  That may not be
right for you though.

Given that, you have to do an in-place update.  Consider the base system
and the ports separately.

To upgrade the base you have essentially two choices:

  *) Use FreeBSD-update -- follow the procedure shown here:

  *) cvsup with the appropriate TAG for the branch you want to
     switch to (RELENG_7_0 for 7.0-RELEASE, RELENG_7 for 7.0-STABLE)
     and then build and update your system according to the instructions
     in the Handbook and the notes in /usr/src/UPDATING.

If you've been using either one of these methods to maintain your
system previously, then you're probably best to stick with what you
know for the major upgrade.  FreeBSD Update may have difficulties
with a system that isn't either a virgin install from the distribution
ISOs or that has been maintained solely through FreeBSD Update previously.

Note that once you have the base OS updated, you can leave it running
with the ports from 6.x for a while -- so long as you've still got the
6.x shlibs available everything will carry on working.  That means you
either have to install the misc/compat6.x port or you have to skip the
'make delete-old-libs' step at the end of the buildworld procedure.  (Well,
postpone it until the ports can be rebuilt.)

If you do choose to run a mixed system like this for a while, bear in
mind that you should not now upgrade or install the odd port here and there:
either you go ahead with the next stage which is to upgrade the whole lot,
or you leave well alone.  

The second major phase of work is to upgrade all your ports.  The mechanisms
for doing this are essentially the same as you'ld use for maintaining ports
routinely.  You will need to use a management tool that will order all of
the updates correctly: portmaster and portupgrade are the two leading

portmaster should work without any further ado as it has no other
dependencies within the ports tree.  portupgrade requires you to 
rebuild ruby and whichever of the ruby-bdb ports it links against
first.  Something like this:

# pkg_info -rx portupgrade 
Information for portupgrade-devel-2.4.3_1:

Depends on:
Dependency: ruby-,1
Dependency: perl-5.8.8_1
Dependency: db44-
Dependency: ruby18-bdb44-0.6.2
# pkg_delete -f portupgrade-devel-2.4.3_1 ruby18-bdb44-0.6.2 db44- ruby-,1
# cd /usr/ports/ports-mgmt/portupgrade-devel
# make install

Then you can proceed with 'portupgrade -fa'

(Substitute ports-mgmt/portupgrade if you don't want the development

Either of the ports management tools can be made to install pre-built
packages given the appropriate command line arguments: this can save you
quite a lot of time at the cost of a certain amount of flexibility in
customising options.

Don't forget the 'make delete-old-libs' step at the end.  You can probably
deinstall compat6x similarly although there are some ports that will now
require it -- diablo-j{dk,re}15 for example.



Dr Matthew J Seaman MA, D.Phil.                   7 Priory Courtyard
                                                  Flat 3
PGP:     Ramsgate
                                                  Kent, CT11 9PW

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 258 bytes
Desc: OpenPGP digital signature
Url :

More information about the freebsd-questions mailing list