Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 11 Oct 2002 14:40:02 -0700 (PDT)
From:      Chris Pepper <pepper@reppep.com>
To:        freebsd-doc@FreeBSD.org
Subject:   Re: docs/43941: Rationale for Upgrade Sequence
Message-ID:  <200210112140.g9BLe23E014735@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR docs/43941; it has been noted by GNATS.

From: Chris Pepper <pepper@reppep.com>
To: Tim Kientzle <kientzle@acm.org>
Cc: freebsd-gnats-submit@FreeBSD.org, dougb@FreeBSD.org
Subject: Re: docs/43941: Rationale for Upgrade Sequence
Date: Fri, 11 Oct 2002 17:12:30 -0400

 At 1:55 PM -0700 2002/10/11, Tim Kientzle wrote:
 
 >  >Description:
 >Mark Linimon suggested that I "get this exact reasoning added to the 
 >official docs, it's the clearest explanation I've seen yet."  This 
 >was in response to a posting I made to freebsd-stable explaining 
 >some of the rationale behind the 
 >buildworld/buildkernel/installkernel/installworld sequence.  I've 
 >attached the text of my posting below.  I hope you find it useful.
 
 >* The new world might rely on new kernel features.
 >   So, the new kernel must be installed before the new world
 >   is installed.
 
 	It's worth mentioning that installing a new broken kernel is 
 testable and fixable, while installing a new world is much uglier. 
 This is another reason to installkernel, reboot, and installworld if 
 nothing blows up.
 
 >These concerns have led to the following recommended
 >sequence.  Note that the detailed sequence for
 >particular updates may require additional steps,
 >but this core process should remain unchanged for some
 >time:
 >
 >1) make buildworld
 >
 >    This first compiles the new compiler and
 >    a few related tools, then uses the new compiler
 >    to compile the rest of the new world.  The result
 >    ends up in /usr/obj.
 >
 >2) make buildkernel
 >
 >    Unlike the older config/make approach,
 >    this uses the _new_ compiler residing in
 >    /usr/obj.  This protects you against compiler/kernel
 >    mismatches.
 >
 >3) make installkernel
 >
 >    Place the new kernel and kernel modules onto the disk.
 >
 >4) Reboot to single user mode.
 >
 >    Single user mode minimizes problems from
 >    updating software that's already running.
 >    It also minimizes any problems from
 >    running the old world on a new kernel.
 >    (Curiously, when moving from 4.x to 5.0,
 >    you're still running the old kernel here,
 >    because the new kernel is in a different
 >    place and the boot loader hasn't been
 >    updated yet.)
 >
 >5) mergemaster -p
 >
 >    This does some initial configuration file updates
 >    in preparation for the new world.
 
 	mergemaster's documentation says it should run with -p before 
 buildworld, so if this is intended to be "official", mergemaster's 
 docco should be updated.
 
 	From mergemaster(8):
 >      -p          Pre-buildworld mode.  Compares only files known to be essen-
 >                  tial to the success of {build|install}world, including
 >                  /etc/make.conf.
 
 >[www:~] root# mergemaster --help
 >mergemaster version 1.6.2.14
 >Usage: mergemaster [-scrvahipC] [-m /path]
 >          [-t /path] [-d] [-u N] [-w N] [-D /path]
 >Options:
 >   -s  Strict comparison (diff every pair of files)
 >   -c  Use context diff instead of unified diff
 >   -r  Re-run on a previously cleaned directory (skip temproot creation)
 >   -v  Be more verbose about the process, include additional checks
 >   -a  Leave all files that differ to merge by hand
 >   -h  Display more complete help
 >   -i  Automatically install files that do not exist in destination directory
 >   -p  Pre-buildworld mode, only compares crucial files
 >   -C  Compare local rc.conf variables to the defaults
 >   -m /path/directory  Specify location of source to do the make in
 >   -t /path/directory  Specify temp root directory
 >   -d  Add date and time to directory name (e.g., /var/tmp/temproot.1011.17.11)
 >   -u N  Specify a numeric umask
 >   -w N  Specify a screen width in columns to sdiff
 >   -D /path/directory  Specify the destination directory to install files to
 
 
 						Chris Pepper
 -- 
 Chris Pepper:               <http://www.reppep.com/~pepper/>;
 Rockefeller University:     <http://www.rockefeller.edu/>;

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-doc" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200210112140.g9BLe23E014735>