White space fix only. Translators can ignore.

Sponsored by:	iXsystems
This commit is contained in:
Dru Lavigne 2014-05-06 18:40:54 +00:00
parent ab95585247
commit 40f0ae893e
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=44777

View file

@ -293,10 +293,10 @@ MergeChanges /etc/ /var/named/etc/ /boot/device.hints</programlisting>
&prompt.root; <userinput>freebsd-update install</userinput></screen>
<para>If the update applies any kernel patches, the system will
need a reboot in order to boot into the patched kernel.
If the patch was applied to any running binaries, the affected
need a reboot in order to boot into the patched kernel. If
the patch was applied to any running binaries, the affected
applications should be restarted so that the patched version
of the binary is used.</para>
of the binary is used.</para>
<para>The system can be configured to automatically check for
updates once every day by adding this entry to
@ -304,23 +304,23 @@ MergeChanges /etc/ /var/named/etc/ /boot/device.hints</programlisting>
<programlisting>@daily root freebsd-update cron</programlisting>
<para>If patches exist, they will automatically be
downloaded but will not be applied. The
<systemitem class="username">root</systemitem> user will be
sent an email so that the patches may be reviewed and manually
<para>If patches exist, they will automatically be downloaded
but will not be applied. The <systemitem
class="username">root</systemitem> user will be sent an
email so that the patches may be reviewed and manually
installed with
<command>freebsd-update install</command>.</para>
<para>If anything goes wrong, <command>freebsd-update</command>
has the ability to roll back the last set of changes with
the following command:</para>
has the ability to roll back the last set of changes with the
following command:</para>
<screen>&prompt.root; <userinput>freebsd-update rollback</userinput>
Uninstalling updates... done.</screen>
<para>Again, the system should be restarted if the
kernel or any kernel modules were modified and any affected
binaries should be restarted.</para>
<para>Again, the system should be restarted if the kernel or any
kernel modules were modified and any affected binaries should
be restarted.</para>
<para>Only the <filename>GENERIC</filename> kernel can be
automatically updated by <command>freebsd-update</command>.
@ -329,15 +329,13 @@ Uninstalling updates... done.</screen>
finishes installing the updates. However,
<command>freebsd-update</command> will detect and update the
<filename>GENERIC</filename> kernel if
<filename>/boot/GENERIC</filename> exists,
even if it is not the current running kernel of the
system.</para>
<filename>/boot/GENERIC</filename> exists, even if it is not
the current running kernel of the system.</para>
<note>
<para>Always keep a copy of the
<filename>GENERIC</filename> kernel in
<filename>/boot/GENERIC</filename>. It
will be helpful in diagnosing a variety of problems and in
<para>Always keep a copy of the <filename>GENERIC</filename>
kernel in <filename>/boot/GENERIC</filename>. It will be
helpful in diagnosing a variety of problems and in
performing version upgrades. Refer to either <xref
linkend="freebsd-update-custom-kernel-9x"/> or <xref
linkend="freebsd-update-custom-kernel-8x"/> for
@ -352,21 +350,21 @@ Uninstalling updates... done.</screen>
Rebuilding and reinstalling a new custom kernel can then be
performed in the usual way.</para>
<para>The updates distributed by
<command>freebsd-update</command> do not always involve the
kernel. It is not necessary to rebuild a custom kernel if
the kernel sources have not been modified by
<command>freebsd-update install</command>.
However, <command>freebsd-update</command> will always
update <filename>/usr/src/sys/conf/newvers.sh</filename>.
The current patch level, as indicated by the
<literal>-p</literal> number reported by
<command>uname -r</command>, is obtained from this file.
Rebuilding a custom kernel, even if nothing else changed,
allows <command>uname</command> to accurately report the current
patch level of the system. This is particularly helpful
when maintaining multiple systems, as it allows for a quick
assessment of the updates installed in each one.</para>
<para>The updates distributed by
<command>freebsd-update</command> do not always involve the
kernel. It is not necessary to rebuild a custom kernel if the
kernel sources have not been modified by
<command>freebsd-update install</command>. However,
<command>freebsd-update</command> will always update
<filename>/usr/src/sys/conf/newvers.sh</filename>. The
current patch level, as indicated by the <literal>-p</literal>
number reported by <command>uname -r</command>, is obtained
from this file. Rebuilding a custom kernel, even if nothing
else changed, allows <command>uname</command> to accurately
report the current patch level of the system. This is
particularly helpful when maintaining multiple systems, as it
allows for a quick assessment of the updates installed in each
one.</para>
</sect2>
<sect2 xml:id="freebsdupdate-upgrade">
@ -375,8 +373,8 @@ Uninstalling updates... done.</screen>
<para>Upgrades from one minor version of &os; to another, like
from &os;&nbsp;9.0 to &os;&nbsp;9.1, are called
<firstterm>minor version</firstterm> upgrades.
<firstterm>Major version</firstterm> upgrades occur when
&os; is upgraded from one major version to another, like from
<firstterm>Major version</firstterm> upgrades occur when &os;
is upgraded from one major version to another, like from
&os;&nbsp;9.X to &os;&nbsp;10.X. Both types of upgrades can
be performed by providing <command>freebsd-update</command>
with a release version target.</para>
@ -392,20 +390,19 @@ Uninstalling updates... done.</screen>
<filename>GENERIC</filename> kernel.</para>
</note>
<para>The following command, when
run on a &os;&nbsp;9.0 system, will upgrade it to
&os;&nbsp;9.1:</para>
<para>The following command, when run on a &os;&nbsp;9.0 system,
will upgrade it to &os;&nbsp;9.1:</para>
<screen>&prompt.root; <userinput>freebsd-update -r 9.1-RELEASE upgrade</userinput></screen>
<screen>&prompt.root; <userinput>freebsd-update -r 9.1-RELEASE upgrade</userinput></screen>
<para>After the command has been received,
<command>freebsd-update</command> will evaluate the
configuration file and current system in an attempt to
gather the information necessary to perform the upgrade. A
screen listing will display which components have and have
not been detected. For example:</para>
<para>After the command has been received,
<command>freebsd-update</command> will evaluate the
configuration file and current system in an attempt to gather
the information necessary to perform the upgrade. A screen
listing will display which components have and have not been
detected. For example:</para>
<screen>Looking up update.FreeBSD.org mirrors... 1 mirrors found.
<screen>Looking up update.FreeBSD.org mirrors... 1 mirrors found.
Fetching metadata signature for 9.0-RELEASE from update1.FreeBSD.org... done.
Fetching metadata index... done.
Inspecting system... done.
@ -422,210 +419,201 @@ world/proflibs
Does this look reasonable (y/n)? <userinput>y</userinput></screen>
<para>At this point, <command>freebsd-update</command> will
attempt to download all files required for the upgrade. In
some cases, the user may be prompted with questions
regarding what to install or how to proceed.</para>
<para>At this point, <command>freebsd-update</command> will
attempt to download all files required for the upgrade. In
some cases, the user may be prompted with questions regarding
what to install or how to proceed.</para>
<para>When using a custom kernel, the above step will produce
a warning similar to the following:</para>
<para>When using a custom kernel, the above step will produce a
warning similar to the following:</para>
<screen>WARNING: This system is running a "<replaceable>MYKERNEL</replaceable>" kernel, which is not a
<screen>WARNING: This system is running a "<replaceable>MYKERNEL</replaceable>" kernel, which is not a
kernel configuration distributed as part of FreeBSD 9.0-RELEASE.
This kernel will not be updated: you MUST update the kernel manually
before running "/usr/sbin/freebsd-update install"</screen>
<para>This warning may be safely ignored at this point. The
updated <filename>GENERIC</filename> kernel will be used as
an intermediate step in the upgrade process.</para>
<para>This warning may be safely ignored at this point. The
updated <filename>GENERIC</filename> kernel will be used as an
intermediate step in the upgrade process.</para>
<para>Once all the patches have been downloaded to the local
system, they will be applied. This process may take a
while, depending on the speed and workload of the machine.
Configuration files will then be merged. The merging
process requires some user intervention as a file may be
merged or an editor may appear on screen for a manual merge.
The results of every successful merge will be shown to the
user as the process continues. A failed or ignored merge
will cause the process to abort. Users may wish to make a
backup of <filename>/etc</filename> and
manually merge important files, such as
<filename>master.passwd</filename> or
<filename>group</filename> at a later time.</para>
<para>Once all the patches have been downloaded to the local
system, they will be applied. This process may take a while,
depending on the speed and workload of the machine.
Configuration files will then be merged. The merging process
requires some user intervention as a file may be merged or an
editor may appear on screen for a manual merge. The results
of every successful merge will be shown to the user as the
process continues. A failed or ignored merge will cause the
process to abort. Users may wish to make a backup of
<filename>/etc</filename> and manually merge important files,
such as <filename>master.passwd</filename> or
<filename>group</filename> at a later time.</para>
<note>
<para>The system is not being altered yet as all patching
and merging is happening in another directory. Once all
patches have been applied successfully, all configuration
files have been merged and it seems the process will go
smoothly, the changes can be committed to disk by the
user using the following command:</para>
<note>
<para>The system is not being altered yet as all patching and
merging is happening in another directory. Once all patches
have been applied successfully, all configuration files have
been merged and it seems the process will go smoothly, the
changes can be committed to disk by the user using the
following command:</para>
<screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
</note>
</note>
<para>The kernel and kernel modules will be patched first. If
the system is running with a custom kernel, use
&man.nextboot.8; to set the kernel for the next boot to the
updated <filename>/boot/GENERIC</filename>:</para>
<para>The kernel and kernel modules will be patched first. If
the system is
running with a custom kernel, use &man.nextboot.8; to set
the kernel for the next boot to the updated
<filename>/boot/GENERIC</filename>:</para>
<screen>&prompt.root; <userinput>nextboot -k GENERIC</userinput></screen>
<screen>&prompt.root; <userinput>nextboot -k GENERIC</userinput></screen>
<warning>
<para>Before rebooting with the <filename>GENERIC</filename>
kernel, make sure it contains all the drivers required for
the system to boot properly and connect to the network, if
the machine being updated is accessed remotely. In
particular, if the running custom kernel contains built-in
functionality usually provided by kernel modules, make sure
to temporarily load these modules into the
<filename>GENERIC</filename> kernel using the
<filename>/boot/loader.conf</filename> facility. It is
recommended to disable non-essential services as well as any
disk and network mounts until the upgrade process is
complete.</para>
</warning>
<warning>
<para>Before rebooting with the <filename>GENERIC</filename>
kernel, make sure it contains all the drivers required for
the system to boot properly and connect to the network,
if the machine being updated is accessed remotely. In
particular, if the running custom kernel contains built-in
functionality usually provided by kernel modules, make
sure to temporarily load these modules into the
<filename>GENERIC</filename> kernel using the
<filename>/boot/loader.conf</filename> facility.
It is recommended to disable non-essential services as
well as any disk and network mounts until the upgrade
process is complete.</para>
</warning>
<para>The machine should now be restarted with the updated
kernel:</para>
<para>The machine should now be restarted with the updated
kernel:</para>
<screen>&prompt.root; <userinput>shutdown -r now</userinput></screen>
<screen>&prompt.root; <userinput>shutdown -r now</userinput></screen>
<para>Once the system has come back online, restart
<command>freebsd-update</command> using the following command.
Since the state of the process has been saved,
<command>freebsd-update</command> will not start from the
beginning, but will instead move on to the next phase and
remove all old shared libraries and object files.</para>
<para>Once the system has come back online, restart
<command>freebsd-update</command> using the following
command. Since the state of the process has been saved,
<command>freebsd-update</command> will not start from the
beginning, but will instead move on to the next phase and
remove all old shared libraries and
object files.</para>
<screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
<screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
<note>
<para>Depending upon whether any library version numbers were
bumped, there may only be two install phases instead of
three.</para>
</note>
<note>
<para>Depending upon whether any library version numbers
were bumped, there may only be two install phases instead
of three.</para>
</note>
<para>The upgrade is now complete. If this was a major version
upgrade, reinstall all ports and packages as described in
<xref linkend="freebsdupdate-portsrebuild"/>.</para>
<para>The upgrade is now complete. If this was a major
version upgrade, reinstall all ports and packages as
described in <xref linkend="freebsdupdate-portsrebuild"/>.</para>
<sect3 xml:id="freebsd-update-custom-kernel-9x">
<title>Custom Kernels with &os;&nbsp;9.X and Later</title>
<sect3 xml:id="freebsd-update-custom-kernel-9x">
<title>Custom Kernels with &os;&nbsp;9.X and Later</title>
<para>Before using <command>freebsd-update</command>, ensure
that a copy of the <filename>GENERIC</filename> kernel
exists in <filename>/boot/GENERIC</filename>. If a custom
kernel has only been built once, the kernel in
<filename>/boot/kernel.old</filename> is the
<literal>GENERIC</literal> kernel. Simply rename this
directory to <filename>/boot/kernel</filename>.</para>
<para>Before using <command>freebsd-update</command>, ensure
that a copy of the <filename>GENERIC</filename> kernel
exists in <filename>/boot/GENERIC</filename>. If a custom
kernel has only been built once, the
kernel in <filename>/boot/kernel.old</filename> is
the <literal>GENERIC</literal> kernel.
Simply rename this directory to
<filename>/boot/kernel</filename>.</para>
<para>If a custom kernel has been built more than once or if
it is unknown how many times the custom kernel has been
built, obtain a copy of the <literal>GENERIC</literal>
kernel that matches the current version of the operating
system. If physical access to the system is available, a
copy of the <literal>GENERIC</literal> kernel can be
installed from the installation media:</para>
<para>If a custom kernel has been built more than once
or if it is unknown how many times the custom kernel
has been built, obtain a copy of the
<literal>GENERIC</literal> kernel that matches the
current version of the operating system. If physical
access to the system is available, a
copy of the <literal>GENERIC</literal> kernel can be
installed from the installation media:</para>
<screen>&prompt.root; <userinput>mount /cdrom</userinput>
<screen>&prompt.root; <userinput>mount /cdrom</userinput>
&prompt.root; <userinput>cd /cdrom/usr/freebsd-dist</userinput>
&prompt.root; <userinput>tar -C/ -xvf kernel.txz boot/kernel/kernel</userinput></screen>
<para>Alternately, the
<literal>GENERIC</literal> kernel may be rebuilt and
installed from source:</para>
<para>Alternately, the <literal>GENERIC</literal> kernel may
be rebuilt and installed from source:</para>
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make kernel __MAKE_CONF=/dev/null SRCCONF=/dev/null</userinput></screen>
<para>For this kernel to be identified as the
<literal>GENERIC</literal> kernel by
<command>freebsd-update</command>, the
<filename>GENERIC</filename> configuration file must
not have been modified in any way. It is also
suggested that the kernel is built without any other
special options.</para>
<para>For this kernel to be identified as the
<literal>GENERIC</literal> kernel by
<command>freebsd-update</command>, the
<filename>GENERIC</filename> configuration file must not
have been modified in any way. It is also suggested that
the kernel is built without any other special
options.</para>
<para>Rebooting into the <filename>GENERIC</filename> kernel
is not required as <command>freebsd-update</command> only
needs <filename>/boot/GENERIC</filename> to exist.</para>
<para>Rebooting into the <filename>GENERIC</filename> kernel
is not required as <command>freebsd-update</command> only
needs <filename>/boot/GENERIC</filename> to exist.</para>
</sect3>
<sect3 xml:id="freebsd-update-custom-kernel-8x">
<title>Custom Kernels with &os;&nbsp;8.X</title>
<sect3 xml:id="freebsd-update-custom-kernel-8x">
<title>Custom Kernels with &os;&nbsp;8.X</title>
<para>On an &os;&nbsp;8.X system, the instructions for
obtaining or building a
<filename>GENERIC</filename> kernel differ slightly.</para>
<para>On an &os;&nbsp;8.X system, the instructions for
obtaining or building a <filename>GENERIC</filename> kernel
differ slightly.</para>
<para>Assuming physical access to the machine is
possible, a copy of the <filename>GENERIC</filename>
kernel can be installed from the installation media
using the following commands:</para>
<para>Assuming physical access to the machine is possible, a
copy of the <filename>GENERIC</filename> kernel can be
installed from the installation media using the following
commands:</para>
<screen>&prompt.root; <userinput>mount /cdrom</userinput>
<screen>&prompt.root; <userinput>mount /cdrom</userinput>
&prompt.root; <userinput>cd /cdrom/<replaceable>X.Y-RELEASE</replaceable>/kernels</userinput>
&prompt.root; <userinput>./install.sh GENERIC</userinput></screen>
<para>Replace <filename
class="directory"><replaceable>X.Y-RELEASE</replaceable></filename>
with the version of the release being used.
The <filename>GENERIC</filename> kernel will be
installed in <filename>/boot/GENERIC</filename> by
default.</para>
<para>Replace <filename
class="directory"><replaceable>X.Y-RELEASE</replaceable></filename>
with the version of the release being used. The
<filename>GENERIC</filename> kernel will be installed in
<filename>/boot/GENERIC</filename> by default.</para>
<para>To instead build the
<filename>GENERIC</filename> kernel from source:</para>
<para>To instead build the <filename>GENERIC</filename> kernel
from source:</para>
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>env DESTDIR=/boot/GENERIC make kernel __MAKE_CONF=/dev/null SRCCONF=/dev/null</userinput>
&prompt.root; <userinput>mv /boot/GENERIC/boot/kernel/* /boot/GENERIC</userinput>
&prompt.root; <userinput>rm -rf /boot/GENERIC/boot</userinput></screen>
<para>For this kernel to be picked up as
<filename>GENERIC</filename> by
<command>freebsd-update</command>, the
<filename>GENERIC</filename> configuration file must
not have been modified in any way. It is also
suggested that it is built without any other special
options.</para>
<para>For this kernel to be picked up as
<filename>GENERIC</filename> by
<command>freebsd-update</command>, the
<filename>GENERIC</filename> configuration file must not
have been modified in any way. It is also suggested that it
is built without any other special options.</para>
<para>Rebooting into the <filename>GENERIC</filename> kernel
is not required.</para>
</sect3>
<para>Rebooting into the <filename>GENERIC</filename> kernel
is not required.</para>
</sect3>
<sect3 xml:id="freebsdupdate-portsrebuild">
<title>Rebuilding Ports After a Major Version Upgrade</title>
<para>Generally,
installed applications will continue to work without problems
after minor version upgrades. Major versions use different
Application Binary Interfaces (<acronym>ABI</acronym>s), which
which will break most third-party
applications. After a
major version upgrade, all installed packages and
ports need to be upgraded using a utility such as
<package>ports-mgmt/portmaster</package>. A
rebuild of all installed applications can be
accomplished with this command:</para>
<para>Generally, installed applications will continue to work
without problems after minor version upgrades. Major
versions use different Application Binary Interfaces
(<acronym>ABI</acronym>s), which which will break most
third-party applications. After a major version upgrade,
all installed packages and ports need to be upgraded using a
utility such as <package>ports-mgmt/portmaster</package>. A
rebuild of all installed applications can be accomplished
with this command:</para>
<screen>&prompt.root; <userinput>portmaster -af</userinput></screen>
<screen>&prompt.root; <userinput>portmaster -af</userinput></screen>
<para>This command will display the configuration screens for
each application that has configurable options and wait for the user to interact with those
screens. To prevent this behavior, and use only the default
options, include <option>-G</option> in the above command.</para>
<para>This command will display the configuration screens for
each application that has configurable options and wait for
the user to interact with those screens. To prevent this
behavior, and use only the default options, include
<option>-G</option> in the above command.</para>
<para>Once the software upgrades are complete, finish the upgrade process with
a final call to <command>freebsd-update</command> in order
to tie up all the loose ends in the upgrade process:</para>
<para>Once the software upgrades are complete, finish the
upgrade process with a final call to
<command>freebsd-update</command> in order to tie up all the
loose ends in the upgrade process:</para>
<screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
@ -634,8 +622,8 @@ before running "/usr/sbin/freebsd-update install"</screen>
new custom kernel using the instructions in <xref
linkend="kernelconfig"/>.</para>
<para>Reboot the machine into the new &os; version. The upgrade
process is now complete.</para>
<para>Reboot the machine into the new &os; version. The
upgrade process is now complete.</para>
</sect3>
</sect2>
@ -643,15 +631,16 @@ before running "/usr/sbin/freebsd-update install"</screen>
<title>System State Comparison</title>
<para>The state of the installed &os; version against a known
good copy can be tested using <command>freebsd-update IDS</command>.
This command evaluates the current version of system utilities,
libraries, and configuration files and can be used as a
built-in Intrusion Detection System (<acronym>IDS</acronym>).</para>
good copy can be tested using
<command>freebsd-update IDS</command>. This command evaluates
the current version of system utilities, libraries, and
configuration files and can be used as a built-in Intrusion
Detection System (<acronym>IDS</acronym>).</para>
<warning>
<para>This command is
not a replacement for a real <acronym>IDS</acronym> such
as <package>security/snort</package>. As
<para>This command is not a replacement for a real
<acronym>IDS</acronym> such as
<package>security/snort</package>. As
<command>freebsd-update</command> stores data on disk, the
possibility of tampering is evident. While this possibility
may be reduced using <varname>kern.securelevel</varname> and
@ -665,15 +654,16 @@ before running "/usr/sbin/freebsd-update install"</screen>
linkend="security-ids"/></para>
</warning>
<para>To begin the comparison,
specify the output file to save the results to:</para>
<para>To begin the comparison, specify the output file to save
the results to:</para>
<screen>&prompt.root; <userinput>freebsd-update IDS &gt;&gt; outfile.ids</userinput></screen>
<para>The system will now be inspected and a lengthy listing of
files, along with the <acronym>SHA256</acronym> hash values for both the
known value in the release and the current installation, will
be sent to the specified output file.</para>
files, along with the <acronym>SHA256</acronym> hash values
for both the known value in the release and the current
installation, will be sent to the specified output
file.</para>
<para>The entries in the listing are extremely long, but the
output format may be easily parsed. For instance, to obtain a
@ -688,11 +678,10 @@ before running "/usr/sbin/freebsd-update install"</screen>
<para>This sample output has been truncated as many more files
exist. Some files have natural modifications. For example,
<filename>/etc/passwd</filename> will be modified if
users have been added to the system.
Kernel modules may differ as
<command>freebsd-update</command> may have updated them.
To exclude specific files or directories, add them to the
<filename>/etc/passwd</filename> will be modified if users
have been added to the system. Kernel modules may differ as
<command>freebsd-update</command> may have updated them. To
exclude specific files or directories, add them to the
<literal>IDSIgnorePaths</literal> option in
<filename>/etc/freebsd-update.conf</filename>.</para>
</sect2>
@ -1081,8 +1070,9 @@ before running "/usr/sbin/freebsd-update install"</screen>
sites listed in <xref linkend="svn-mirrors"/>.</para>
<para>Users with very slow or limited Internet connectivity
can instead use CTM as described in <xref linkend="ctm"/>, but it is
not as reliable as <application>svn</application> and
can instead use CTM as described in <xref linkend="ctm"/>,
but it is not as reliable as
<application>svn</application> and
<application>svn</application> is the recommended method
for synchronizing source.</para>
</listitem>
@ -1182,8 +1172,8 @@ before running "/usr/sbin/freebsd-update install"</screen>
recent &os.stable; release from the <link
linkend="mirrors">&os; mirror sites</link> or use a
monthly snapshot built from &os.stable;. Refer to <link
xlink:href="&url.base;/snapshots/">www.freebsd.org/snapshots</link> for
more information about snapshots.</para>
xlink:href="&url.base;/snapshots/">www.freebsd.org/snapshots</link>
for more information about snapshots.</para>
<para>To compile or upgrade to an existing &os; system to
&os.stable;, use <link linkend="svn">svn</link>
@ -1194,8 +1184,7 @@ before running "/usr/sbin/freebsd-update install"</screen>
<literal>stable/9</literal>, are listed at <link
xlink:href="&url.base;/releng/">www.freebsd.org/releng</link>.
CTM (<xref linkend="ctm"/>) can be used if a reliable
Internet connection is not
available.</para>
Internet connection is not available.</para>
</listitem>
<listitem>
@ -1205,11 +1194,10 @@ before running "/usr/sbin/freebsd-update install"</screen>
<secondary>compiling</secondary>
</indexterm>, read <filename>/usr/src/Makefile</filename>
carefully and follow the instructions in <xref
linkend="makeworld"/>. Read
&a.stable; and <filename>/usr/src/UPDATING</filename> to
keep up-to-date on other bootstrapping procedures that
sometimes become necessary on the road to the next
release.</para>
linkend="makeworld"/>. Read &a.stable; and
<filename>/usr/src/UPDATING</filename> to keep up-to-date
on other bootstrapping procedures that sometimes become
necessary on the road to the next release.</para>
</listitem>
</orderedlist>
</sect2>
@ -1218,8 +1206,7 @@ before running "/usr/sbin/freebsd-update install"</screen>
<sect1 xml:id="synching">
<title>Synchronizing Source</title>
<para>There are various methods for
staying up-to-date with the
<para>There are various methods for staying up-to-date with the
&os; sources. This section compares the primary services,
<application>Subversion</application> and
<application>CTM</application>.</para>
@ -1242,13 +1229,13 @@ before running "/usr/sbin/freebsd-update install"</screen>
<para><application>Subversion</application> uses the
<emphasis>pull</emphasis> model of updating sources. The user,
or a <command>cron</command> script, invokes the
<command>svn</command> program which updates the local version of the source.
<application>Subversion</application> is the preferred method for
updating local source trees as updates are up-to-the-minute
and the user controls when updates are downloaded. It is easy to
restrict updates to specific files or directories and the
requested updates are generated on the fly by the server. How
to synchronize source using
<command>svn</command> program which updates the local version
of the source. <application>Subversion</application> is the
preferred method for updating local source trees as updates are
up-to-the-minute and the user controls when updates are
downloaded. It is easy to restrict updates to specific files or
directories and the requested updates are generated on the fly
by the server. How to synchronize source using
<application>Subversion</application> is described in <xref
linkend="svn"/>.</para>
@ -1261,25 +1248,24 @@ before running "/usr/sbin/freebsd-update install"</screen>
changes in files since its previous run is executed several
times a day on the master CTM machine. Any detected changes are
compressed, stamped with a sequence-number, and encoded for
transmission over email in printable <acronym>ASCII</acronym> only. Once downloaded,
these <firstterm>deltas</firstterm> can be run through
<command>ctm.rmail</command> which will automatically decode,
verify, and apply the changes to the user's copy of the sources.
This process is more efficient than
transmission over email in printable <acronym>ASCII</acronym>
only. Once downloaded, these <firstterm>deltas</firstterm> can
be run through <command>ctm.rmail</command> which will
automatically decode, verify, and apply the changes to the
user's copy of the sources. This process is more efficient than
<application>Subversion</application> and places less strain on
server resources since it is a <emphasis>push</emphasis>, rather
than a <emphasis>pull</emphasis>, model. Instructions for using
<application>CTM</application> to synchronize source can be
found at <xref linkend="ctm"/>.</para>
<para>If a user inadvertently wipes
out portions of the local archive,
<application>Subversion</application> will detect and rebuild
the damaged portions. <application>CTM</application> will not,
and if a user deletes some portion of the source tree
<para>If a user inadvertently wipes out portions of the local
archive, <application>Subversion</application> will detect and
rebuild the damaged portions. <application>CTM</application>
will not, and if a user deletes some portion of the source tree
and does not have a backup, they will have to start from scratch
from the most recent <firstterm>base delta</firstterm> and rebuild
it all with <application>CTM</application>.</para>
from the most recent <firstterm>base delta</firstterm> and
rebuild it all with <application>CTM</application>.</para>
</sect1>
<sect1 xml:id="makeworld">
@ -1456,12 +1442,13 @@ Script started, output file is /var/tmp/mw.out</screen>
possible to boot with the newly updated kernel. If
<varname>kern.securelevel</varname> has been raised above
<literal>1</literal> <emphasis>and</emphasis>
<literal>noschg</literal> or similar flags have been set on the kernel
binary, drop the system into single-user mode first.
Otherwise, this command can be run from multi-user mode
without problems. See &man.init.8; for details about
<varname>kern.securelevel</varname> and &man.chflags.1;
for details about the various file flags.</para>
<literal>noschg</literal> or similar flags have been set
on the kernel binary, drop the system into single-user
mode first. Otherwise, this command can be run from
multi-user mode without problems. See &man.init.8; for
details about <varname>kern.securelevel</varname> and
&man.chflags.1; for details about the various file
flags.</para>
<screen>&prompt.root; <userinput>make installkernel</userinput></screen>
</step>