Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 23 Mar 2001 14:13:56 +0200
From:      Peter Pentchev <roam@orbitel.bg>
To:        Matt Simerson <mpsimerson@hostpro.com>
Cc:        "'freebsd-hackers@freebsd.org'" <freebsd-hackers@freebsd.org>
Subject:   Re: The "right" way to build a new world WAS: 4.3-BETA world crashin g 4.2-RELEASE kernel ?
Message-ID:  <20010323141356.H17216@ringworld.oblivion.bg>
In-Reply-To: <8D18712B2604D411A6BB009027F6449801B4B544@0SEA01EXSRV1>; from mpsimerson@hostpro.com on Thu, Mar 22, 2001 at 06:01:16PM -0700
References:  <8D18712B2604D411A6BB009027F6449801B4B544@0SEA01EXSRV1>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Mar 22, 2001 at 06:01:16PM -0700, Matt Simerson wrote:
> OK, let's approach this from a little different angle:
> 
> Below is the appropriate entries from /usr/src/UPDATING on a FreeBSD
> 4-stable machine. As of 2/2/2001, the most correct and safest method for
> updating your FreeBSD machine is as follows:
> 
>    cd /usr/src
>    make buildworld
>    make kernel KERNCONF=<CUSTOM_KERN_CONFIG_NAME>
>    reboot (single user)
>    make installworld
>    mergemaster
>    reboot
> 
> I have found that there IS a variety of reasons NOT to do it that way. The
> most obvious is that you might not have console access, thus making it
> pretty hard to access the machine while it's in single user mode. I can also
> think of a couple instances where this method could cause pain. 

OK, some of your reasons stated below are valid, some are not quite so;
in particular, the procedure you are following - running the buildworld
and buildkernel at the same time - is not only not-quite-right, but also
potentially dangerous - AFAIK, the buildkernel process uses compiler bits
from /usr/obj, which might get changed during the compile, leaving you with
largely incompatible object/executable files, and no error messages.

I understand your reason for wanting both to complete when you get back
to work; are you aware that make(1) can process more than one target
on the command line, and only build the second target if the first one
finishes successfully?  What I do is, usually at the end of the day:

	mergemaster
	
	# mergemaster is interactive, yes, but it doesn't
	# take too much time ;)
	# and it is sometimes SORELY needed if e.g. mtree files
	# have changed, potentially breaking the subsequent builds

	make buildworld buildkernel installkernel installworld
	# (and I have a KERNCONF?=whatever in my /etc/make.conf)

..thus having the best of both worlds :)

G'luck,
Peter

-- 
This would easier understand fewer had omitted.

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




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