Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 22 Feb 2007 12:33:32 -0500
From:      Jerry McAllister <>
To:        Robin Becker <>
Subject:   Re: binary updating 6.0-6.2
Message-ID:  <>
In-Reply-To: <>
References:  <>

Next in thread | Previous in thread | Raw E-Mail | Index | Archive | Help
On Thu, Feb 22, 2007 at 03:38:18PM +0000, Robin Becker wrote:

> I see from the latest announcement that freebsd-update is now in the base 
> system for 6.2. Following the links I see there's a procedure for 6.0-61. 
> and another for 6.1-6.2 binary updating.
> In the past I have always dumped all my files and /etc /usr/local/etc done 
> a completely fresh install, reinstalled files and manually hacked any of 
> the modified system files. Then follows a long process of updating the 
> ports tree and rebuilding the ports I need.
> Clearly I will still dump all my files in case anything horrific goes 
> wrong. But can I update 6.0-6.1 6.1-6.2 with a reasonable hope of success.
> The very first step seems the hardest since I have been using 
> freebsd-update already in my 6.0 system and the kernel is no longer a 
> 6.0-RELEASE, but 6.0-SECURITY FreeBSD and a warning in the notes on the 
> 6.1-6.2 update process says I need a GENERIC or SMP kernel. Does the 
> updater know about updates?

What you want to do is a cvsup (Mathew Seaman recently pointed out csup
that is supposed to be part of the system, but I don't seem to have it
on the machine I am presently on running 6.1) so you would have to install
cvsup from ports (/usr/ports/net/cvsup  or  /usr/ports/net/cvsup-without-gui)
if you need it.

I just posted a basic rundown on doing this (but with slightly different
numbers) just a couple days ago.   You might want to check the questions
archive.    Briefly, you install cvsup (if not already installed); run
the cvsup (or csup if you have it) using a supfile set for
  *default tag=RELENG_6_2
(I will append my working supfile at the end.  It is a simple one)
Then build and install everything.
Do this stuff in a script(1) session to preserve messages and warnings.

  cvsup -g -L 2 /etc/supfile62
Check out /etc/group  and  /etc/passwd  files to make sure there are
no conflicts or important changes.  Then build stuff.
  cd /usr/src
  make buildworld
Edit/create your kernel config if needed,  Then:
  make buildkernel KERNCONF=GENERIC   (or your own kernel config)
  make installkernel  KERNCONF=GENERIC  (or your own kernel config)
Then reboot to single user.
  fsck -p         For good measure
  mount -u /
  mount -a
  swapon -a
  cd /usr/src
  make installworld
Take a look at things to see if everything is OK, especially make sure
you have enough disk space.   Then run mergemaster
  mergemaster -cv

After this, reboot to a running system and check your config files
and other things.   Then install the ports and other stuff you want.  

> Does the updater squirrel away copies of the updated files so a last ditch 
> attempt at status quo restoration can be made?

It preserves some things, but I am not sure all the details.

> Also do my existing ports continue to work with the new kernel?

Probably they need to be reinstalled or updated, or at least rebuilt
with the latest libraries, etc.  It is best to assume so, even though
some might still work fine.    

Note that the supfile I show updates both the system and the ports
tree in one swell foop..

Note also, that this should be no problem going from one 'minor' version
level to a couple down the line, within the same 'major' version level
such as  your 6.0 -> 6.2  but I am much less convident crossing 'major' 
version levels such as 5.x -> 6.x and do a complete reinstall for those.

> -- 
> Robin Becker

 --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  
A supfile for going from 6.0 to 6.2.
Note, I keep my supfile in /etc and name it with the OS version which
accounts for the  cvsup -g -L 2 /etc/supfile62  command & arguments as above.
Ports don't have branches in the way the system source does, thus
the line for ports is:    ports-all tag=.    Same for doc.
 --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  

# $FreeBSD: src/share/examples/cvsup/standard-supfile,v 2006/05/06 07:41:03 scottl Exp $
#       cvsup standard-supfile
# If not running X, or invoking cvsup from a non-interactive script, then
# run it as follows:
#       cvsup -g -L 2 standard-supfile
*default base=/var/db
*default prefix=/usr
*default tag=RELENG_6_2
*default release=cvs 
*default delete use-rel-suffix

*default compress

## Main Source Tree.
# The easiest way to get the main source tree is to use the "src-all"
# mega-collection.  It includes all of the individual "src-*" collections.

ports-all tag=.

doc-all tag=.

Want to link to this message? Use this URL: <>