White space fix only. Translators can ignore.

Sponsored by: iXsystems
This commit is contained in:
Dru Lavigne 2014-02-06 17:44:01 +00:00
parent 3c00d0a716
commit b07f4eb89c
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=43809

View file

@ -1546,9 +1546,10 @@ before running "/usr/sbin/freebsd-update install"</screen>
<step>
<para>If the build world process has previously been run on
this system, a copy of the previous build may still exist
in <filename class="directory">/usr/obj</filename>. To speed up the new build world
process, and possibly save some dependency headaches,
remove this directory if it already exists:</para>
in <filename class="directory">/usr/obj</filename>. To
speed up the new build world process, and possibly save
some dependency headaches, remove this directory if it
already exists:</para>
<screen>&prompt.root; <userinput>cd /usr/obj</userinput>
&prompt.root; <userinput>chflags -R noschg *</userinput>
@ -1556,10 +1557,10 @@ before running "/usr/sbin/freebsd-update install"</screen>
</step>
<step>
<para>Compile the new compiler and a few related
tools, then use the new compiler to compile the rest of
the new world. The result is saved to
<filename class="directory">/usr/obj</filename>.</para>
<para>Compile the new compiler and a few related tools, then
use the new compiler to compile the rest of the new world.
The result is saved to <filename
class="directory">/usr/obj</filename>.</para>
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make buildworld</userinput></screen>
@ -1605,22 +1606,26 @@ before running "/usr/sbin/freebsd-update install"</screen>
</step>
<step>
<para>Then, for either file system, if the <acronym>CMOS</acronym> clock is set to local time
(this is true if the output of &man.date.1; does not show
the correct time and zone), run:</para>
<para>Then, for either file system, if the
<acronym>CMOS</acronym> clock is set to local time (this
is true if the output of &man.date.1; does not show the
correct time and zone), run:</para>
<screen>&prompt.root; <userinput>adjkerntz -i</userinput></screen>
</step>
<step>
<para>Next, perform some initial configuration file updates to <filename class="directory">/etc</filename>
in preparation for the new world. The following command compares
only those files that are essential for the success of
<buildtarget>installworld</buildtarget>. For instance, this step
may add new groups, system accounts, or startup scripts which have been
added to &os; since the last update. This is necessary so
that the <buildtarget>installworld</buildtarget> step will
be able to use any new system accounts, groups, and scripts.</para>
<para>Next, perform some initial configuration file updates
to <filename class="directory">/etc</filename> in
preparation for the new world. The following command
compares only those files that are essential for the
success of <buildtarget>installworld</buildtarget>. For
instance, this step may add new groups, system accounts,
or startup scripts which have been added to &os; since the
last update. This is necessary so that the
<buildtarget>installworld</buildtarget> step will be able
to use any new system accounts, groups, and
scripts.</para>
<screen>&prompt.root; <userinput>mergemaster -p</userinput></screen>
</step>
@ -1663,18 +1668,17 @@ before running "/usr/sbin/freebsd-update install"</screen>
<screen>&prompt.root; <userinput>make delete-old-libs</userinput></screen>
</step>
</procedure>
<indexterm><primary>single-user mode</primary></indexterm>
<para>If the system can have a window of down-time, consider compiling the system in single user mode instead
of compiling the system in multi-user
mode, and then dropping into single user mode for the
installation.
Reinstalling the system touches a lot of important system
files, all the standard system binaries, libraries, and
include files. Changing these on a running system,
particularly one with active users, is asking for
trouble.</para>
<indexterm><primary>single-user mode</primary></indexterm>
<para>If the system can have a window of down-time, consider
compiling the system in single user mode instead of compiling
the system in multi-user mode, and then dropping into
single user mode for the installation. Reinstalling the
system touches a lot of important system files, all the
standard system binaries, libraries, and include files.
Changing these on a running system, particularly one with
active users, is asking for trouble.</para>
</sect2>
<sect2 xml:id="src-updating">
@ -1689,14 +1693,14 @@ before running "/usr/sbin/freebsd-update install"</screen>
<para>The options available to &man.make.1; are described in
&man.make.conf.5; and some common examples are included in
<filename>/usr/share/examples/etc/make.conf</filename>.
Any options which are added to <filename>/etc/make.conf</filename>
<filename>/usr/share/examples/etc/make.conf</filename>. Any
options which are added to <filename>/etc/make.conf</filename>
will control the way &man.make.1; runs and how it builds
programs. Such options take
effect every time &man.make.1; is used, including compiling
applications from the Ports Collection, compiling custom C
programs, or building the &os; operating system.</para>
programs. Such options take effect every time &man.make.1; is
used, including compiling applications from the Ports
Collection, compiling custom C programs, or building the &os;
operating system.</para>
<para>Changes to some settings can have far-reaching and
potentially surprising effects. Read the comments in both
locations and keep in mind that the defaults have been chosen
@ -1706,8 +1710,8 @@ before running "/usr/sbin/freebsd-update install"</screen>
<primary><filename>src.conf</filename></primary>
</indexterm>
<para>How
the operating system is built from source code is controlled by <filename>/etc/src.conf</filename>. Unlike
<para>How the operating system is built from source code is
controlled by <filename>/etc/src.conf</filename>. Unlike
<filename>/etc/make.conf</filename>, the contents of
<filename>/etc/src.conf</filename> only take effect when the
&os; operating system itself is being built. Descriptions of
@ -1715,24 +1719,23 @@ before running "/usr/sbin/freebsd-update install"</screen>
&man.src.conf.5;. Be cautious about disabling seemingly
unneeded kernel modules and build options. Sometimes there
are unexpected or subtle interactions.</para>
</sect2>
</sect2>
<sect2 xml:id="make-buildworld">
<title>Recompile the Base System</title>
<para>It is a good idea to save the output from running
&man.make.1; to a file. If something goes wrong, a copy of
the error message can be posted to one of the &os; mailing
lists.</para>
<para>It is a good idea to save the output from running
&man.make.1; to a file. If something goes wrong, a copy of
the error message can be posted to one of the &os; mailing
lists.</para>
<para>The easiest way to do this is to use &man.script.1;
with a parameter that specifies the name of the file to save
all output to. Run this command immediately before
rebuilding the world, and then type
<userinput>exit</userinput> when the process has
finished:</para>
<para>The easiest way to do this is to use &man.script.1; with a
parameter that specifies the name of the file to save all
output to. Run this command immediately before rebuilding
the world, and then type <userinput>exit</userinput> when the
process has finished:</para>
<screen>&prompt.root; <userinput>script /var/tmp/mw.out</userinput>
<screen>&prompt.root; <userinput>script /var/tmp/mw.out</userinput>
Script started, output file is /var/tmp/mw.out
&prompt.root; <userinput>make TARGET</userinput>
<emphasis>&hellip; compile, compile, compile &hellip;</emphasis>
@ -2345,10 +2348,9 @@ Script done, &hellip;</screen>
change?</term>
<listitem>
<para>It depends upon the nature
of the change. For example, if
<application>svn</application> only shows the following
files as being updated:</para>
<para>It depends upon the nature of the change. For
example, if <application>svn</application> only shows
the following files as being updated:</para>
<screen><filename>src/games/cribbage/instr.c</filename>
<filename>src/games/sail/pl_main.c</filename>
@ -2363,68 +2365,68 @@ Script done, &hellip;</screen>
<filename>src/lib/libc/stdlib</filename>, consider
rebuilding world.</para>
<para>Some users
rebuild world every fortnight and let changes
accumulate over that fortnight. Others only re-make
those things that have changed and are careful to spot
all the dependencies. It all depends on how often a user wants to upgrade
and whether they are tracking &os.stable; or
&os.current;.</para>
<para>Some users rebuild world every fortnight and let
changes accumulate over that fortnight. Others only
re-make those things that have changed and are careful
to spot all the dependencies. It all depends on how
often a user wants to upgrade and whether they are
tracking &os.stable; or &os.current;.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>What would cause a compile to fail with lots of
signal 11<indexterm>
<primary>signal 11</primary>
</indexterm>
(or other signal number) errors?</term>
<term>What would cause a compile to fail with lots of
signal 11<indexterm>
<primary>signal 11</primary>
</indexterm>
(or other signal number) errors?</term>
<listitem>
<para>This normally indicates a hardware problem.
Building world is an effective way to stress test
hardware, especially memory. A sure indicator of a hardware issue is when
<application>make</application> is restarted and it
dies at a different point in the process.</para>
hardware, especially memory. A sure indicator of a
hardware issue is when <application>make</application>
is restarted and it dies at a different point in the
process.</para>
<para>To resolve this error, swap out the
components in the machine, starting with RAM, to determine which component is
failing.</para>
<para>To resolve this error, swap out the components in
the machine, starting with RAM, to determine which
component is failing.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Can <filename class="directory">/usr/obj</filename>
<term>Can <filename class="directory">/usr/obj</filename>
be removed when finished?</term>
<listitem>
<para>This directory
contains all the object files that were produced during
the compilation phase. Normally, one of the first steps
in the <command>make buildworld</command> process is to
remove this directory and start afresh. Keeping
<filename>/usr/obj</filename> around
when finished makes little sense, and its removal frees
up a approximately 2GB of disk space.</para>
<para>This directory contains all the object files that
were produced during the compilation phase. Normally,
one of the first steps in the <command>make
buildworld</command> process is to remove this
directory and start afresh. Keeping
<filename>/usr/obj</filename> around when finished makes
little sense, and its removal frees up a approximately
2GB of disk space.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Can interrupted builds be resumed?</term>
<term>Can interrupted builds be resumed?</term>
<listitem>
<para>This depends on how far into the process the
problem occurs. In general, <command>make buildworld</command>
builds new copies of essential tools and the system libraries.
These tools and libraries are then installed, used to
rebuild themselves, and are installed again. The rest of the
system is then rebuilt with the new
system tools.</para>
problem occurs. In general, <command>make
buildworld</command> builds new copies of essential
tools and the system libraries. These tools and
libraries are then installed, used to rebuild
themselves, and are installed again. The rest of the
system is then rebuilt with the new system
tools.</para>
<para>During the last stage, it is fairly safe to run
these commands as they will not undo the work of the previous
<command>make buildworld</command>:</para>
these commands as they will not undo the work of the
previous <command>make buildworld</command>:</para>
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make -DNO_CLEAN all</userinput></screen>
@ -2438,76 +2440,78 @@ Building everything..
<para>in the <command>make buildworld</command> output,
it is probably fairly safe to do so.</para>
<para>If that message is not displayed,
it is always better to be safe than sorry and to
restart the build from scratch.</para>
<para>If that message is not displayed, it is always
better to be safe than sorry and to restart the build
from scratch.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Is it possible to speed up making the world?</term>
<term>Is it possible to speed up making the world?</term>
<listitem>
<para>Several actions can speed up the build world
process. For example, the entire process can be run from
single-user mode. However, this will prevent users
from having access
to the system until the process is complete.</para>
<para>Several actions can speed up the build world
process. For example, the entire process can be run
from single-user mode. However, this will prevent users
from having access to the system until the process is
complete.</para>
<para>Careful file system design or the use of ZFS
datasets can make a difference. Consider putting <filename class="directory">/usr/src</filename> and
<filename class="directory">/usr/obj</filename>
on separate file systems. If possible, place the file systems on separate disks on separate disk
controllers. When mounting
<filename class="directory">/usr/src</filename>, use
<option>noatime</option> which
prevents the file system from recording the
file access time. If <filename
class="directory">/usr/src</filename> is not on its
own file system, consider remounting <filename
class="directory">/usr</filename> with <option>noatime</option>.</para>
<para>Careful file system design or the use of ZFS
datasets can make a difference. Consider putting
<filename class="directory">/usr/src</filename> and
<filename class="directory">/usr/obj</filename> on
separate file systems. If possible, place the file
systems on separate disks on separate disk controllers.
When mounting <filename
class="directory">/usr/src</filename>, use
<option>noatime</option> which prevents the file system
from recording the file access time. If <filename
class="directory">/usr/src</filename> is not on its
own file system, consider remounting <filename
class="directory">/usr</filename> with
<option>noatime</option>.</para>
<para>The file system holding
<filename>/usr/obj</filename> can be mounted or
remounted with <option>async</option> so that disk
writes happen asynchronously. The write completes
immediately, and the data is written to the disk a
few seconds later. This allows writes to be
clustered together, and can provide a dramatic
performance boost.</para>
<para>The file system holding
<filename>/usr/obj</filename> can be mounted or
remounted with <option>async</option> so that disk
writes happen asynchronously. The write completes
immediately, and the data is written to the disk a
few seconds later. This allows writes to be
clustered together, and can provide a dramatic
performance boost.</para>
<warning>
<para>Keep in mind that this option makes the file
system more fragile. With this option, there is
an increased chance that, should power fail, the
file system will be in an unrecoverable state when
the machine restarts.</para>
<warning>
<para>Keep in mind that this option makes the file
system more fragile. With this option, there is an
increased chance that, should power fail, the file
system will be in an unrecoverable state when the
machine restarts.</para>
<para>If <filename>/usr/obj</filename> is the
only directory on this file system, this is not a
problem. If you have other, valuable data on the
same file system, ensure that there are verified
backups before enabling this option.</para>
</warning>
<para>If <filename>/usr/obj</filename> is the only
directory on this file system, this is not a
problem. If you have other, valuable data on the
same file system, ensure that there are verified
backups before enabling this option.</para>
</warning>
<para>Turn off profiling by setting
<quote>NO_PROFILE=true</quote> in
<filename>/etc/make.conf</filename>.</para>
<para>Turn off profiling by setting
<quote>NO_PROFILE=true</quote> in
<filename>/etc/make.conf</filename>.</para>
<para>Pass
<option>-j<replaceable>n</replaceable></option>
to &man.make.1; to run multiple processes in
parallel. This usually helps on both single- and
multi-processor machines.</para>
</listitem>
<para>Pass
<option>-j<replaceable>n</replaceable></option> to
&man.make.1; to run multiple processes in parallel.
This usually helps on both single- and
multi-processor machines.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>What if something goes wrong?</term>
<term>What if something goes wrong?</term>
<listitem>
<para>First, make absolutely sure that the environment has no
extraneous cruft from earlier builds:</para>
<para>First, make absolutely sure that the environment has
no extraneous cruft from earlier builds:</para>
<screen>&prompt.root; <userinput>chflags -R noschg /usr/obj/usr</userinput>
&prompt.root; <userinput>rm -rf /usr/obj/usr</userinput>
@ -2518,12 +2522,12 @@ Building everything..
<para>Yes, <command>make cleandir</command> really should
be run twice.</para>
<para>Then, restart the whole process, starting
with <command>make buildworld</command>.</para>
<para>Then, restart the whole process, starting with
<command>make buildworld</command>.</para>
<para>If problems persist, send the error and the
output of <command>uname -a</command> to &a.questions;.
Be prepared to answer other questions about the
<para>If problems persist, send the error and the output
of <command>uname -a</command> to &a.questions;. Be
prepared to answer other questions about the
setup!</para>
</listitem>
</varlistentry>