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