Date: Thu, 5 May 2005 11:05:21 +0200 From: John Hay <jhay@icomtek.csir.co.za> To: Warner Losh <imp@bsdimp.com> Cc: Thomas.Sparrevohn@btinternet.com Subject: Re: mergemaster improvement (auto-update for not modified files) Message-ID: <20050505090521.GA25752@zibbi.icomtek.csir.co.za> In-Reply-To: <20050504.152324.41637276.imp@bsdimp.com> References: <20050503222512.GA53874@crow.addict.de> <20050503.233855.116351361.imp@bsdimp.com> <200505042215.26426.Thomas.Sparrevohn@btinternet.com> <20050504.152324.41637276.imp@bsdimp.com>
next in thread | previous in thread | raw e-mail | index | archive | help
> > > > > > The technical reasons are very simple. If a new system call is > > > created, and programs use that new system call, then if you do an > > > installworld before you boot the kernel, that can result in binaries > > > not working. This has happened with important ones like /bin/sh in > > > the past. In addition, if you aren't running single user, many > > > different races exist in the installation process that can result in > > > bad behavior. There are also potential problems with symbols in > > > there's a large jump between the revisions being updated. > > > > > > Usually you can get away with it, but if you want to be safe, you must > > > do the install in single user. Usually, however, has lead in the past > > > to problems, which is why the project recommendations are > > > conservative. > > > > > > > A auto-scripted install directly run from rc.d in single-user mode would cover > > both requirements - I seem to recall that Solaris had something like it at a > > point. Somewhat along the lines of nextboot would be nice. > > How do you know where to get the sources from? What environment to > build them from? > > However, if you could cover those issues, I'd love to see a script to > deal. Maybe you could implement something that would be robust enough > for the project to recommend... What I do sometimes is to (in multiuser mode) make a copy of /etc to say /etc.new, the run mergmaster and stop it after it created /var/tmp/temproot and then rename the etc inside it also to etc.new and then run mergemaster -r. Then go to single user mode and rename /etc.new to /etc and reboot. This still does have all the work, but it does minimize the downtime in single user mode. John -- John Hay -- John.Hay@icomtek.csir.co.za / jhay@FreeBSD.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050505090521.GA25752>