White space fix only. Translators can ignore.

Sponsored by: iXsystems
This commit is contained in:
Dru Lavigne 2014-02-06 01:58:10 +00:00
parent 7843d93cf1
commit e85f1751ed
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=43797

View file

@ -1439,51 +1439,53 @@ before running "/usr/sbin/freebsd-update install"</screen>
particular version of &os; such as &os.stable; or &os.current;,
the source tree can be used to rebuild the system. This process
is known as rebuilding world.</para>
<para><emphasis>Before</emphasis> rebuilding world, be sure to
perform the following tasks:</para>
<procedure>
<title>Perform These Tasks <emphasis>Before</emphasis> Building World</title>
<title>Perform These Tasks <emphasis>Before</emphasis>
Building World</title>
<step>
<para>Backup all important data to another system or removable
media, verify the integrity of the backup, and have a bootable
installation media at hand. It cannot be
stressed enough how important it is to make a
backup of the system <emphasis>before</emphasis> rebuilding
the system. While rebuilding world is an easy task, there
will inevitably be times when mistakes in the source tree
render the system unbootable. You will probably never have
to use the backup, but it is better to be safe than sorry!</para>
</step>
media, verify the integrity of the backup, and have a
bootable installation media at hand. It cannot be stressed
enough how important it is to make a backup of the system
<emphasis>before</emphasis> rebuilding the system. While
rebuilding world is an easy task, there will inevitably be
times when mistakes in the source tree render the system
unbootable. You will probably never have to use the backup,
but it is better to be safe than sorry!</para>
</step>
<step>
<indexterm><primary>mailing list</primary></indexterm>
<para>Review the recent &a.stable.name; or &a.current.name; entries, depending
upon the branch being tracked. Be aware of any known
problems and which systems are affected. If a known issue
affects the version of synchronized code, wait for an <quote>all
clear</quote> announcement to be posted stating that the problem has
been solved. Resynchronize the sources to ensure that the
local version of source has the needed fix.</para>
</step>
<step>
<para>Read
<filename>/usr/src/UPDATING</filename> for any pre-buildworld
steps necessary for that version of the source. This file contains
important information about potential problems and may specify
the order to run certain commands. Many upgrades require
specific additional steps such as renaming or deleting
specific files prior to installworld. These will be listed
at the end of this file where the currently recommended upgrade sequence
is explicitly spelled out. If
<filename>UPDATING</filename> contradicts any steps in
this chapter, the instructions in <filename>UPDATING</filename> take
precedence and should be followed.</para>
</step>
</procedure>
<step>
<indexterm><primary>mailing list</primary></indexterm>
<para>Review the recent &a.stable.name; or &a.current.name;
entries, depending upon the branch being tracked. Be aware
of any known problems and which systems are affected. If a
known issue affects the version of synchronized code, wait
for an <quote>all clear</quote> announcement to be posted
stating that the problem has been solved. Resynchronize the
sources to ensure that the local version of source has the
needed fix.</para>
</step>
<step>
<para>Read <filename>/usr/src/UPDATING</filename> for any
pre-buildworld steps necessary for that version of the
source. This file contains important information about
potential problems and may specify the order to run certain
commands. Many upgrades require specific additional steps
such as renaming or deleting specific files prior to
installworld. These will be listed at the end of this file
where the currently recommended upgrade sequence is
explicitly spelled out. If
<filename>UPDATING</filename> contradicts any steps in this
chapter, the instructions in <filename>UPDATING</filename>
take precedence and should be followed.</para>
</step>
</procedure>
<warning>
<title>Do Not Use <command>make world</command></title>
@ -1499,112 +1501,116 @@ before running "/usr/sbin/freebsd-update install"</screen>
<sect2 xml:id="canonical-build">
<title>Overview of Process</title>
<para>The build world process assumes an upgrade from an older &os;
version using the source of a newer
version that was obtained using the instructions in
<para>The build world process assumes an upgrade from an older
&os; version using the source of a newer version that was
obtained using the instructions in
<xref linkend="synching"/>.</para>
<para>In &os;, the term <quote>world</quote> includes the kernel, core system binaries,
libraries, programming files, and built-in compiler. The order in which these
components are built and installed is important.</para>
<para>For example, the old compiler might have a bug and not be able to
compile the new kernel. Since the new kernel should be
built with the new compiler, the new compiler
must be built, but not necessarily installed, before the new kernel is built.</para>
<para>The new world might rely on new kernel features,
so the new kernel must be installed before the new world is
installed. The old world might not run correctly on the new
kernel, so the new world must be installed immediately
upon installing the new kernel.</para>
<para>In &os;, the term <quote>world</quote> includes the
kernel, core system binaries, libraries, programming files,
and built-in compiler. The order in which these components
are built and installed is important.</para>
<para>Some configuration changes must be made before the new
world is installed, but others might break the old world.
Hence, two different configuration upgrade steps are
used. For the most part, the update process only replaces or
adds files and existing old files are not deleted. Since
this can cause problems, <filename>/usr/src/UPDATING</filename>
will indicate if any files
need to be manually deleted and at which step to do so.</para>
<para>For example, the old compiler might have a bug and not be
able to compile the new kernel. Since the new kernel should
be built with the new compiler, the new compiler must be
built, but not necessarily installed, before the new kernel is
built.</para>
<para>The new world might rely on new kernel features, so the
new kernel must be installed before the new world is
installed. The old world might not run correctly on the new
kernel, so the new world must be installed immediately upon
installing the new kernel.</para>
<para>Some configuration changes must be made before the new
world is installed, but others might break the old world.
Hence, two different configuration upgrade steps are used.
For the most part, the update process only replaces or adds
files and existing old files are not deleted. Since this can
cause problems, <filename>/usr/src/UPDATING</filename> will
indicate if any files need to be manually deleted and at which
step to do so.</para>
<para>These concerns have led to the recommended upgrade
sequence described in
the following procedure.</para>
<procedure>
<title>Overview of Build World Process</title>
<procedure>
<title>Overview of Build World Process</title>
<para>The commands used in the build world process should be run in the order specified
here. This section summarizes the function of each command.</para>
<para>The commands used in the build world process should be
run in the order specified here. This section summarizes
the function of each command.</para>
<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>
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make buildworld</userinput></screen>
</step>
<step>
<para>Use the new compiler
residing in <filename class="directory">/usr/obj</filename>
to build the new kernel, in order to
protect against compiler-kernel mismatches:</para>
<para>Use the new compiler residing in <filename
class="directory">/usr/obj</filename> to build the new
kernel, in order to protect against compiler-kernel
mismatches:</para>
<screen>&prompt.root; <userinput>make buildkernel</userinput></screen>
</step>
<step>
<para>Install the new kernel and kernel modules,
making it possible to boot with the newly updated
kernel:</para>
<para>Install the new kernel and kernel modules, making it
possible to boot with the newly updated kernel:</para>
<screen>&prompt.root; <userinput>make installkernel</userinput></screen>
</step>
<step>
<para>Drop the system into single user mode in order to minimize problems from updating
any binaries that are already running. It also minimizes any
problems from running the old world on a new
kernel.</para>
<para>Drop the system into single user mode in order to
minimize problems from updating any binaries that are
already running. It also minimizes any problems from
running the old world on a new kernel.</para>
<screen>&prompt.root; <userinput>shutdown now</userinput></screen>
<para>Once in single-user mode, run this command if the
system is formatted with UFS:</para>
<screen>&prompt.root; <userinput>mount -u /</userinput>
<screen>&prompt.root; <userinput>mount -u /</userinput>
&prompt.root; <userinput>mount -a -t ufs</userinput></screen>
<para>If the system is instead formatted with ZFS, run these
two commands. This example assumes a zpool name of <literal>zroot</literal>:</para>
<para>If the system is instead formatted with ZFS, run these
two commands. This example assumes a zpool name of
<literal>zroot</literal>:</para>
<screen>&prompt.root; <userinput>zfs set readonly=off zroot</userinput>
<screen>&prompt.root; <userinput>zfs set readonly=off zroot</userinput>
&prompt.root; <userinput>zfs mount -a</userinput></screen>
</step>
</step>
<step>
<para>Then, for either filesystem, run:</para>
<screen>&prompt.root; <userinput>adjkerntz -i</userinput></screen>
</step>
<step>
<para>Next, perform some initial configuration file updates in
preparation for the new world. For instance, this step may add
new groups or new system accounts 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 the new system accounts and groups.</para>
<para>Next, perform some initial configuration file updates
in preparation for the new world. For instance, this step
may add new groups or new system accounts 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 the new system accounts and groups.</para>
<screen>&prompt.root; <userinput>mergemaster -p</userinput></screen>
</step>
<step>
<para>Install the new world
from <filename class="directory">/usr/obj</filename>.</para>
<para>Install the new world from <filename
class="directory">/usr/obj</filename>.</para>
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make installworld</userinput></screen>
@ -1617,26 +1623,25 @@ before running "/usr/sbin/freebsd-update install"</screen>
</step>
<step>
<para>Delete any obsolete files. This is
important as they may cause problems if left on
the disk.</para>
<para>Delete any obsolete files. This is important as they
may cause problems if left on the disk.</para>
<screen>&prompt.root; <userinput>make delete-old</userinput></screen>
</step>
<step>
<para>A full reboot is now needed to load the new
kernel and new world with the new configuration files.</para>
<para>A full reboot is now needed to load the new kernel and
new world with the new configuration files.</para>
<screen>&prompt.root; <userinput>reboot</userinput></screen>
</step>
<step>
<para>Make sure that all installed ports have first been rebuilt
before old libraries are removed using the instructions in
<xref linkend="ports-upgrading"/>. When finished,
remove any obsolete libraries to avoid conflicts with
newer ones.</para>
<para>Make sure that all installed ports have first been
rebuilt before old libraries are removed using the
instructions in <xref linkend="ports-upgrading"/>. When
finished, remove any obsolete libraries to avoid conflicts
with newer ones.</para>
<screen>&prompt.root; <userinput>make delete-old-libs</userinput></screen>
</step>