Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 12 Dec 2000 17:31:44 -0600 (CST)
From:      Mike Meyer <mwm@mired.org>
To:        Eric Scopinho <scopinho@gruponet.com.br>
Cc:        questions@freebsd.org
Subject:   Re: Remote upgrade from 4.0 to 4.2
Message-ID:  <14902.46432.482948.521731@guru.mired.org>
In-Reply-To: <115286057@toto.iv>

next in thread | previous in thread | raw e-mail | index | archive | help
Eric Scopinho <scopinho@gruponet.com.br> types:
> Hi, I am new with FreeBSD (I was using Linux for 4 years) and I have about 9 servers with FreeBSD 4.0-stable in its. I have a problem with this version (the server reboot...).Now I burn a FreeBSD 4.2-stable and upgrade 1 server with this CD by /stand/sysinstall->Upgrade from CDROM and it is working very well. My problem is: How can I upgrade my others 8 servers via Internet, without recompile all the systems or install the sources of packages os others servers???. On linux, I just recompile my kernel and send it to other servers...
> I read the makeworld.html from Handbook, but I don't understand the philosofy behind it..:( Can you help me , please???

First thing - please hit new line every seventy characters or
so. Mailers that follow spec do NOT automatically wrap lines, which
makes your mail hard to deal with in those mailers.

You've just encountered a difference between FreeBSD and Linux. What
you did for Linux updated the kernel. You didn't update anything in
"userland" (all the things outside the kernel). Since Linux is one
kernel and a gazillion groups doing distributions, this works ok.

In BSD, the kernel and userland are more tightly coupled than
that. There are four kernels, and each kernel group does it's own
distributions. The developers make kernel and userland changes in
sync, knowing that no one runs things out of sync (well, no one is
supposed to). It possible that the two being five minutes out of sync
will mean things won't work, because someone checked in an
interdependent set of changes in those five minutes. Therefore, you
can't just blindly update the kernel like you do with Linux. You
either have to know what you're doing, or apply patches for your
version you got from someone who knows what they're doing.

That said the best way I know of to keep a set of networked machines
in sync is to designate one machine as the "build" machine. I'd
suggest it being one that nothing else depends on, as it's going to be
the first machine to run new software. You can test on it before
installing anywhere else.

The build machines export /usr/src and /usr/obj to the other machines
(you can do this r/o, even). If you're running custom kernels on the
other machines, put the config files for the other machines on the
build machine, and set KERNEL in /etc/make.conf to list them all (the
build machine kernel first). On the build machine, you'll do make
buildworld, make buildkernel, make installkernel, (I reboot at this
point, just to make sure the new kernel is going to boot, but it's not
technically correct), make installworld, mergemaster. You then beat on
that machine until you're happy that everything is going to work.

On each of the other machines, mount /usr/src and /usr/obj from the
build machine. Again, if you've got a custom kernel, you'll need to
set KERNEL in /etc/make.conf on each of them. Shut them down to
single-user (don't reboot - you want the network up!). Then do "make
installkernel, (again, I'd reboot to single user and start the network
and mount fs's by hand), make installworld, mergemaster, and reboot.

That avoids doing all the things you don't want to do. It's not as
fast as just copying the kernel, because it's updating the entire
system. On the other hand - you get all the bug fixes and enhancements
to userland code that happened between 4.0 and 4.2 as well, which the
Linux upgrade didn't give you.

	<mike
--
Mike Meyer <mwm@mired.org>			http://www.mired.org/home/mwm/
Independent WWW/Unix/FreeBSD consultant,	email for more information.


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




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