From owner-freebsd-doc Fri Oct 11 14:40: 5 2002 Delivered-To: freebsd-doc@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CAEC337B401 for ; Fri, 11 Oct 2002 14:40:02 -0700 (PDT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7877043E8A for ; Fri, 11 Oct 2002 14:40:02 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.6/8.12.6) with ESMTP id g9BLe2Co014736 for ; Fri, 11 Oct 2002 14:40:02 -0700 (PDT) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.6/8.12.6/Submit) id g9BLe23E014735; Fri, 11 Oct 2002 14:40:02 -0700 (PDT) Date: Fri, 11 Oct 2002 14:40:02 -0700 (PDT) Message-Id: <200210112140.g9BLe23E014735@freefall.freebsd.org> To: freebsd-doc@FreeBSD.org Cc: From: Chris Pepper Subject: Re: docs/43941: Rationale for Upgrade Sequence Reply-To: Chris Pepper Sender: owner-freebsd-doc@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org The following reply was made to PR docs/43941; it has been noted by GNATS. From: Chris Pepper To: Tim Kientzle 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: Rockefeller University: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-doc" in the body of the message