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>