mergemaster improvement (auto-update for not modified files)
John Hay
jhay at icomtek.csir.co.za
Thu May 5 02:06:24 PDT 2005
> > >
> > > 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 at icomtek.csir.co.za / jhay at FreeBSD.org
More information about the freebsd-hackers
mailing list