| Summary: | document the Rationale for Upgrade Sequence (e.g. why the "historical" build sequence is deprecated) | ||
|---|---|---|---|
| Product: | Documentation | Reporter: | kientzle |
| Component: | Books & Articles | Assignee: | Giorgos Keramidas <keramida> |
| Status: | Closed FIXED | ||
| Severity: | Affects Only Me | ||
| Priority: | Normal | ||
| Version: | Latest | ||
| Hardware: | Any | ||
| OS: | Any | ||
|
Description
kientzle
2002-10-11 22:00:07 UTC
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/> The current UPDATING file puts the 'mergemaster -p' step after installkernel/reboot and before installworld. Warner Losh (who maintains UPDATING) should be able to say whether UPDATING or mergemaster(8) is correct. Tim Kientzle Re <http://www.freebsd.org/cgi/query-pr.cgi?pr=43941>, Chris Pepper observes: > 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. In message: <3DA749FE.8010407@acm.org> Tim Kientzle <kientzle@acm.org> writes: : The current UPDATING file : : puts the 'mergemaster -p' step : after installkernel/reboot and before : installworld. : : Warner Losh (who maintains UPDATING) : should be able to say whether UPDATING : or mergemaster(8) is correct. mergemaster -p isn't needed for buildworld, but is needed for installworld. One can run it before buildworld without ill effect, as far as I know, but it isn't required. /etc/make.conf is empty except for comments by default, so updating it with mergemaster likely won't make any difference. Warner Responsible Changed From-To: freebsd-doc->keramida Grab PR; I'll try to integrate the text of Tim to the Handbook keramida 2009-02-01 04:25:22 UTC
FreeBSD doc repository
Modified files:
en_US.ISO8859-1/books/handbook/cutting-edge chapter.sgml
Log:
Add an explanation of the reasons that buildworld, buildkernel,
installkernel, reboot, ... is a good idea. Before describing
every step in detail, we let the reader know "why" so that they
can later appreciate the "how" a bit more, and feel less confused
about the whole dance.
PR: docs/43941
Submitted by: kientzle
Reviewed by: trhodes
Revision Changes Path
1.240 +184 -3 doc/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.sgml
_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
State Changed From-To: open->closed It took me a while, but I finally managed to SGMLify this. Committed as revision 1.240 of cutting-edge/chapter.sgml. Thanks! :) |