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>
index | next in thread | raw e-mail
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
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200210112140.g9BLe23E014735>
