svn commit: r44732 - head/en_US.ISO8859-1/books/handbook/cutting-edge
Dru Lavigne
dru at FreeBSD.org
Thu May 1 17:21:50 UTC 2014
Author: dru
Date: Thu May 1 17:21:49 2014
New Revision: 44732
URL: http://svnweb.freebsd.org/changeset/doc/44732
Log:
Editorial review of Tracking for Multiple Machines.
Sponsored by: iXsystems
Modified:
head/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml
Modified: head/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml
==============================================================================
--- head/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml Thu May 1 15:44:23 2014 (r44731)
+++ head/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml Thu May 1 17:21:49 2014 (r44732)
@@ -2408,24 +2408,25 @@ Building everything..
</indexterm>
<para>When multiple machines need to track the same source tree,
- it is a waste of disk space, network bandwidth, and CPU cycles
+ it is a waste of disk space, network bandwidth, and <acronym>CPU</acronym> cycles
to have each system download the sources and rebuild everything.
The solution is to have one machine do most of the work, while
- the rest of the machines mount that work via NFS. This section
- outlines a method of doing so.</para>
-
- <sect2 xml:id="small-lan-preliminaries">
- <title>Preliminaries</title>
+ the rest of the machines mount that work via <acronym>NFS</acronym>. This section
+ outlines a method of doing so. For more information about using
+ <acronym>NFS</acronym>, refer to <xref
+ linkend="network-nfs"/>.</para>
<para>First, identify a set of machines which will run the same
- set of binaries, known as a <emphasis>build set</emphasis>.
+ set of binaries, known as a <firstterm>build set</firstterm>.
Each machine can have a custom kernel, but will run the same
userland binaries. From that set, choose a machine to be the
- <emphasis>build machine</emphasis> that the world and kernel
+ <firstterm>build machine</firstterm> that the world and kernel
are built on. Ideally, this is a fast machine that has
- sufficient spare CPU to run <command>make buildworld</command>
- and <command>make buildkernel</command>. Select a machine to
- be the <emphasis>test machine</emphasis>, which will test
+ sufficient spare <acronym>CPU</acronym> to run <command>make buildworld</command>
+ and <command>make buildkernel</command>.</para>
+
+ <para>Select a machine to
+ be the <firstterm>test machine</firstterm>, which will test
software updates before they are put into production. This
<emphasis>must</emphasis> be a machine that can afford to be
down for an extended period of time. It can be the build
@@ -2433,14 +2434,12 @@ Building everything..
<para>All the machines in this build set need to mount
<filename>/usr/obj</filename> and
- <filename>/usr/src</filename> from the same machine, and at
- the same point. Ideally, those directories are on two
- different drives on the build machine, but they can be NFS
- mounted on that machine as well. For multiple build sets,
+ <filename>/usr/src</filename> from the build machine via
+ <acronym>NFS</acronym>. For multiple build sets,
<filename>/usr/src</filename> should be on one build machine,
- and NFS mounted on the rest.</para>
+ and <acronym>NFS</acronym> mounted on the rest.</para>
- <para>Finally, ensure that <filename>/etc/make.conf</filename>
+ <para>Ensure that <filename>/etc/make.conf</filename>
and <filename>/etc/src.conf</filename> on all the machines in
the build set agree with the build machine. That means that
the build machine must build all the parts of the base system
@@ -2448,51 +2447,40 @@ Building everything..
each build machine should have its kernel name set with
<varname>KERNCONF</varname> in
<filename>/etc/make.conf</filename>, and the build machine
- should list them all in <varname>KERNCONF</varname>, listing
+ should list them all in its <varname>KERNCONF</varname>, listing
its own kernel first. The build machine must have the kernel
- configuration files for each machine in <filename
- class="directory">/usr/src/sys/<replaceable>arch</replaceable>/conf</filename>
- if it is going to build their kernels.</para>
- </sect2>
-
- <sect2 xml:id="small-lan-base-system">
- <title>The Base System</title>
+ configuration files for each machine in its <filename
+ class="directory">/usr/src/sys/<replaceable>arch</replaceable>/conf</filename>.</para>
<para>On the build machine, build the kernel and world as
- described in <xref linkend="make-buildworld"/>, but do not
- install anything. After the build has finished, go to the
- test machine, and install the built kernel. If this machine
- mounts <filename>/usr/src</filename> and
- <filename>/usr/obj</filename> via NFS, enable the network and
- mount these directories after rebooting to single user mode.
- The easiest way to do this is to boot to multi-user, then run
- <command>shutdown now</command> to go to single user mode.
- Once there, install the new kernel and world and run
+ described in <xref linkend="makeworld"/>, but do not
+ install anything on the build machine. Instead, install the built kernel
+ on the test machine. On the test machine, mount
+ <filename>/usr/src</filename> and
+ <filename>/usr/obj</filename> via <acronym>NFS</acronym>. Then, run
+ <command>shutdown now</command> to go to single-user mode in order to
+ install the new kernel and world and run
<command>mergemaster</command> as usual. When done, reboot to
- return to normal multi-user operations for this
- machine.</para>
+ return to normal multi-user operations.</para>
<para>After verifying that everything on the test machine is
working properly, use the same procedure to install the new
software on each of the other machines in the build
set.</para>
- </sect2>
-
- <sect2 xml:id="small-lan-ports">
- <title>Ports</title>
- <para>The same ideas can be used for the ports tree. The first
- critical step is to mount <filename>/usr/ports</filename> from
- the same machine to all the machines in the build set. Then,
- configure <filename>/etc/make.conf</filename> properly to
- share distfiles. Set <varname>DISTDIR</varname> to a common
+ <para>The same methodology can be used for the ports tree. The first
+ step is to share <filename>/usr/ports</filename> via
+ <acronym>NFS</acronym> to all the machines in the build set. To
+ configure <filename>/etc/make.conf</filename> to
+ share distfiles, set <varname>DISTDIR</varname> to a common
shared directory that is writable by whichever user
<systemitem class="username">root</systemitem> is mapped to by
- the NFS mounts. Each machine should set
- <varname>WRKDIRPREFIX</varname> to a local build directory.
- Finally, if the system is to build and distribute packages,
- set <varname>PACKAGES</varname> to a directory similar to
+ the <acronym>NFS</acronym> mount. Each machine should set
+ <varname>WRKDIRPREFIX</varname> to a local build directory, if
+ ports are to be built locally.
+ Alternately, if the build system is to build and distribute
+ packages to the machines in the build set,
+ set <varname>PACKAGES</varname> on the build system to a directory similar to
<varname>DISTDIR</varname>.</para>
- </sect2>
</sect1>
</chapter>
More information about the svn-doc-head
mailing list