Whitespace-only fixes, translators please ignore.

This commit is contained in:
Warren Block 2014-01-30 01:21:13 +00:00
parent cb7318168f
commit 8a4ddc9b49
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=43685

View file

@ -4,28 +4,57 @@
$FreeBSD$ $FreeBSD$
--> -->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="updating-upgrading"> <chapter xmlns="http://docbook.org/ns/docbook"
<info><title>Updating and Upgrading &os;</title> xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="updating-upgrading">
<info>
<title>Updating and Upgrading &os;</title>
<authorgroup> <authorgroup>
<author><personname><firstname>Jim</firstname><surname>Mock</surname></personname><contrib>Restructured, reorganized, and parts updated <author>
by </contrib></author> <personname>
<firstname>Jim</firstname>
<surname>Mock</surname>
</personname>
<contrib>Restructured, reorganized, and parts updated
by </contrib>
</author>
<!-- Mar 2000 --> <!-- Mar 2000 -->
</authorgroup> </authorgroup>
<authorgroup> <authorgroup>
<author><personname><firstname>Jordan</firstname><surname>Hubbard</surname></personname><contrib>Original work by </contrib></author> <author>
<personname>
<firstname>Jordan</firstname>
<surname>Hubbard</surname>
</personname>
<contrib>Original work by </contrib>
</author>
<author><personname><firstname>Poul-Henning</firstname><surname>Kamp</surname></personname></author> <author>
<personname>
<firstname>Poul-Henning</firstname>
<surname>Kamp</surname>
</personname>
</author>
<author><personname><firstname>John</firstname><surname>Polstra</surname></personname></author> <author>
<personname>
<firstname>John</firstname>
<surname>Polstra</surname>
</personname>
</author>
<author><personname><firstname>Nik</firstname><surname>Clayton</surname></personname></author> <author>
<personname>
<firstname>Nik</firstname>
<surname>Clayton</surname>
</personname>
</author>
</authorgroup> </authorgroup>
</info> </info>
<sect1 xml:id="updating-upgrading-synopsis"> <sect1 xml:id="updating-upgrading-synopsis">
<title>Synopsis</title> <title>Synopsis</title>
@ -80,7 +109,8 @@
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para>Properly set up the network connection (<xref linkend="advanced-networking"/>).</para> <para>Properly set up the network connection
(<xref linkend="advanced-networking"/>).</para>
</listitem> </listitem>
<listitem> <listitem>
@ -98,17 +128,33 @@
</sect1> </sect1>
<sect1 xml:id="updating-upgrading-freebsdupdate"> <sect1 xml:id="updating-upgrading-freebsdupdate">
<info><title>&os; Update</title> <info>
<title>&os; Update</title>
<authorgroup> <authorgroup>
<author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Written by </contrib></author> <author>
<personname>
<firstname>Tom</firstname>
<surname>Rhodes</surname>
</personname>
<contrib>Written by </contrib>
</author>
</authorgroup> </authorgroup>
<authorgroup> <authorgroup>
<author><personname><firstname>Colin</firstname><surname>Percival</surname></personname><contrib>Based on notes provided by </contrib></author> <author>
<personname>
<firstname>Colin</firstname>
<surname>Percival</surname>
</personname>
<contrib>Based on notes provided by </contrib>
</author>
</authorgroup> </authorgroup>
</info> </info>
<indexterm><primary>Updating and Upgrading</primary></indexterm> <indexterm>
<primary>Updating and Upgrading</primary>
</indexterm>
<indexterm> <indexterm>
<primary>freebsd-update</primary> <primary>freebsd-update</primary>
<see>updating-upgrading</see> <see>updating-upgrading</see>
@ -133,7 +179,8 @@
releases currently supported by the security team. Before releases currently supported by the security team. Before
updating to a new release, its release announcement should be updating to a new release, its release announcement should be
reviewed as it contains important information pertinent to the reviewed as it contains important information pertinent to the
release. Release announcements are available from <uri xlink:href="http://www.FreeBSD.org/releases/">http://www.FreeBSD.org/releases/</uri>.</para> release. Release announcements are available from <uri
xlink:href="http://www.FreeBSD.org/releases/">http://www.FreeBSD.org/releases/</uri>.</para>
</note> </note>
<para>If a <command>crontab</command> utilizing the features <para>If a <command>crontab</command> utilizing the features
@ -253,8 +300,9 @@ MergeChanges /etc/ /var/named/etc/</programlisting>
<command>freebsd-update</command> will only check if updates <command>freebsd-update</command> will only check if updates
exist. If patches exist, they will automatically be exist. If patches exist, they will automatically be
downloaded to the local disk but will not be applied. The downloaded to the local disk but will not be applied. The
<systemitem class="username">root</systemitem> user will be sent an email so that <systemitem class="username">root</systemitem> user will be
they may be reviewed and manually installed.</para> sent an email so that they may be reviewed and manually
installed.</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
@ -353,7 +401,8 @@ MergeChanges /etc/ /var/named/etc/</programlisting>
<title>Custom Kernels with &os;&nbsp;8.X</title> <title>Custom Kernels with &os;&nbsp;8.X</title>
<para>A copy of the <filename>GENERIC</filename> kernel is <para>A copy of the <filename>GENERIC</filename> kernel is
needed, and should be placed in <filename>/boot/GENERIC</filename>. If the needed, and should be placed in
<filename>/boot/GENERIC</filename>. If the
<filename>GENERIC</filename> kernel is not present in the <filename>GENERIC</filename> kernel is not present in the
system, it may be obtained using one of the following system, it may be obtained using one of the following
methods:</para> methods:</para>
@ -363,7 +412,8 @@ MergeChanges /etc/ /var/named/etc/</programlisting>
<para>If a custom kernel has only been built once, the <para>If a custom kernel has only been built once, the
kernel in <filename>/boot/kernel.old</filename> is kernel in <filename>/boot/kernel.old</filename> is
actually <filename>GENERIC</filename>. Rename this actually <filename>GENERIC</filename>. Rename this
directory to <filename>/boot/GENERIC</filename>.</para> directory to
<filename>/boot/GENERIC</filename>.</para>
</listitem> </listitem>
<listitem> <listitem>
@ -413,10 +463,10 @@ MergeChanges /etc/ /var/named/etc/</programlisting>
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para>If a custom kernel has only been built once, the <para>If a custom kernel has only been built once, the
kernel in kernel in <filename>/boot/kernel.old</filename> is
<filename>/boot/kernel.old</filename> actually the <literal>GENERIC</literal> kernel.
is actually the <literal>GENERIC</literal> kernel. Rename this directory to
Rename this directory to <filename>/boot/kernel</filename>.</para> <filename>/boot/kernel</filename>.</para>
</listitem> </listitem>
<listitem> <listitem>
@ -581,7 +631,8 @@ before running "/usr/sbin/freebsd-update install"</screen>
needs to be rebuilt and re-installed. This is required as needs to be rebuilt and re-installed. This is required as
installed software may depend on libraries which have been installed software may depend on libraries which have been
removed during the upgrade process. This process can be removed during the upgrade process. This process can be
automated using <package>ports-mgmt/portmaster</package>:</para> automated using
<package>ports-mgmt/portmaster</package>:</para>
<screen>&prompt.root; <userinput>portmaster -af</userinput></screen> <screen>&prompt.root; <userinput>portmaster -af</userinput></screen>
@ -658,17 +709,33 @@ before running "/usr/sbin/freebsd-update install"</screen>
</sect1> </sect1>
<sect1 xml:id="updating-upgrading-portsnap"> <sect1 xml:id="updating-upgrading-portsnap">
<info><title>Portsnap: a Ports Collection Update Tool</title> <info>
<title>Portsnap: a Ports Collection Update Tool</title>
<authorgroup> <authorgroup>
<author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Written by </contrib></author> <author>
<personname>
<firstname>Tom</firstname>
<surname>Rhodes</surname>
</personname>
<contrib>Written by </contrib>
</author>
</authorgroup> </authorgroup>
<authorgroup> <authorgroup>
<author><personname><firstname>Colin</firstname><surname>Percival</surname></personname><contrib>Based on notes provided by </contrib></author> <author>
<personname>
<firstname>Colin</firstname>
<surname>Percival</surname>
</personname>
<contrib>Based on notes provided by </contrib>
</author>
</authorgroup> </authorgroup>
</info> </info>
<indexterm><primary>Updating and Upgrading</primary></indexterm> <indexterm>
<primary>Updating and Upgrading</primary>
</indexterm>
<indexterm> <indexterm>
<primary>Portsnap</primary> <primary>Portsnap</primary>
<see>Updating and Upgrading</see> <see>Updating and Upgrading</see>
@ -751,10 +818,12 @@ Fetching 133 new ports or files... done.</screen>
<para>Documentation is an integral part of the &os; operating <para>Documentation is an integral part of the &os; operating
system. While an up-to-date version of the &os; Documentation system. While an up-to-date version of the &os; Documentation
Set is always available on the <link xlink:href="http://www.freebsd.org/doc/">&os; web site</link>, Set is always available on the
some users might have slow or no permanent network connectivity. <link xlink:href="http://www.freebsd.org/doc/">&os; web
There are several ways to update the local copy of documentation site</link>, some users might have slow or no permanent
with the latest &os; Documentation Set.</para> network connectivity. There are several ways to update the
local copy of documentation with the latest &os; Documentation
Set.</para>
<sect2 xml:id="dsvn-doc"> <sect2 xml:id="dsvn-doc">
<title>Using <application>Subversion</application> to Update the <title>Using <application>Subversion</application> to Update the
@ -779,7 +848,8 @@ Fetching 133 new ports or files... done.</screen>
<listitem> <listitem>
<para>Rebuild the &os; documentation from its source, and <para>Rebuild the &os; documentation from its source, and
install it under <filename>/usr/share/doc</filename>.</para> install it under
<filename>/usr/share/doc</filename>.</para>
</listitem> </listitem>
<listitem> <listitem>
@ -810,13 +880,14 @@ Fetching 133 new ports or files... done.</screen>
<note> <note>
<para>When no &postscript; or PDF documentation required, one <para>When no &postscript; or PDF documentation required, one
might consider installing the <package>textproc/docproj-nojadetex</package> port might consider installing the
instead. This version of the documentation toolchain <package>textproc/docproj-nojadetex</package> port instead.
includes everything except the This version of the documentation toolchain includes
<application>teTeX</application> typesetting engine. everything except the <application>teTeX</application>
<application>teTeX</application> is a very large collection typesetting engine. <application>teTeX</application> is a
of tools, so it may be quite sensible to omit its very large collection of tools, so it may be quite sensible
installation if PDF output is not really necessary.</para> to omit its installation if PDF output is not really
necessary.</para>
</note> </note>
</sect2> </sect2>
@ -829,7 +900,9 @@ Fetching 133 new ports or files... done.</screen>
<screen>&prompt.root; <userinput>svn checkout https://svn0.us-west.FreeBSD.org/doc/head /usr/doc</userinput></screen> <screen>&prompt.root; <userinput>svn checkout https://svn0.us-west.FreeBSD.org/doc/head /usr/doc</userinput></screen>
<para>Select the closest mirror from the available <link linkend="svn-mirrors">Subversion mirror sites</link>.</para> <para>Select the closest mirror from the available
<link linkend="svn-mirrors">Subversion mirror
sites</link>.</para>
<para>The initial download of the documentation sources may take <para>The initial download of the documentation sources may take
a while. Let it run until it completes.</para> a while. Let it run until it completes.</para>
@ -908,8 +981,8 @@ Fetching 133 new ports or files... done.</screen>
<title>Installing the &os; Documentation from Source</title> <title>Installing the &os; Documentation from Source</title>
<para>Once an up-to-date snapshot of the documentation sources <para>Once an up-to-date snapshot of the documentation sources
has been fetched to <filename>/usr/doc</filename>, everything is has been fetched to <filename>/usr/doc</filename>, everything
ready for an update of the installed documentation.</para> is ready for an update of the installed documentation.</para>
<para>A full update of all the languages defined in <para>A full update of all the languages defined in
<varname>DOC_LANG</varname> may be performed by typing:</para> <varname>DOC_LANG</varname> may be performed by typing:</para>
@ -932,20 +1005,29 @@ Fetching 133 new ports or files... done.</screen>
&prompt.root; <userinput>make FORMATS='html html-split' install clean</userinput></screen> &prompt.root; <userinput>make FORMATS='html html-split' install clean</userinput></screen>
<para>For information on editing and submitting corrections to <para>For information on editing and submitting corrections to
the documentation, refer to the <link xlink:href="&url.books.fdp-primer;">&os; Documentation the documentation, refer to the
<link xlink:href="&url.books.fdp-primer;">&os; Documentation
Project Primer for New Contributors</link>.</para> Project Primer for New Contributors</link>.</para>
</sect2> </sect2>
<sect2 xml:id="doc-ports"> <sect2 xml:id="doc-ports">
<info><title>Using Documentation Ports</title> <info>
<title>Using Documentation Ports</title>
<authorgroup> <authorgroup>
<author><personname><firstname>Marc</firstname><surname>Fonvieille</surname></personname><contrib>Based on the work of </contrib></author> <author>
<personname>
<firstname>Marc</firstname>
<surname>Fonvieille</surname>
</personname>
<contrib>Based on the work of </contrib>
</author>
</authorgroup> </authorgroup>
</info> </info>
<indexterm>
<primary>Updating and Upgrading</primary>
<indexterm><primary>Updating and Upgrading</primary></indexterm> </indexterm>
<indexterm> <indexterm>
<primary>documentation package</primary> <primary>documentation package</primary>
@ -977,10 +1059,11 @@ Fetching 133 new ports or files... done.</screen>
</itemizedlist> </itemizedlist>
<para>These two methods of updating the &os; documentation are <para>These two methods of updating the &os; documentation are
supported by a set of <emphasis>documentation supported by a set of
ports</emphasis>, updated by the &a.doceng; on a monthly <emphasis>documentation ports</emphasis>, updated by the
basis. These are listed in the &os; Ports&nbsp;Collection, &a.doceng; on a monthly basis. These are listed in the &os;
under the <link xlink:href="http://www.freshports.org/docs/">docs</link> Ports&nbsp;Collection, under the <link
xlink:href="http://www.freshports.org/docs/">docs</link>
category.</para> category.</para>
<sect3 xml:id="doc-ports-install-make"> <sect3 xml:id="doc-ports-install-make">
@ -1006,28 +1089,31 @@ Fetching 133 new ports or files... done.</screen>
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para>The <quote>master port</quote>, <package>misc/freebsd-doc-en</package>, <para>The <quote>master port</quote>,
which installs all of the English documentation <package>misc/freebsd-doc-en</package>, which installs
ports.</para> all of the English documentation ports.</para>
</listitem> </listitem>
<listitem> <listitem>
<para>The <quote>all in one port</quote>, <package>misc/freebsd-doc-all</package>, <para>The <quote>all in one port</quote>,
builds and installs all documentation in all available <package>misc/freebsd-doc-all</package>, builds and
installs all documentation in all available
languages.</para> languages.</para>
</listitem> </listitem>
<listitem> <listitem>
<para>There is a <quote>slave port</quote> for each <para>There is a <quote>slave port</quote> for each
translation, such as <package>misc/freebsd-doc-hu</package> for the translation, such as
<package>misc/freebsd-doc-hu</package> for the
Hungarian-language documents.</para> Hungarian-language documents.</para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
<para>For example, to build and install the English <para>For example, to build and install the English
documentation in split <acronym>HTML</acronym> format, documentation in split <acronym>HTML</acronym> format,
similar to the format used on <uri xlink:href="http://www.FreeBSD.org">http://www.FreeBSD.org</uri>, to similar to the format used on <uri
<filename>/usr/local/share/doc/freebsd</filename>, xlink:href="http://www.FreeBSD.org">http://www.FreeBSD.org</uri>,
to <filename>/usr/local/share/doc/freebsd</filename>,
install the following port</para> install the following port</para>
<screen>&prompt.root; <userinput>cd /usr/ports/misc/freebsd-doc-en</userinput> <screen>&prompt.root; <userinput>cd /usr/ports/misc/freebsd-doc-en</userinput>
@ -1069,7 +1155,8 @@ Fetching 133 new ports or files... done.</screen>
<listitem> <listitem>
<para>Specifies where to install the documentation. <para>Specifies where to install the documentation.
It defaults to <filename>/usr/local/share/doc/freebsd</filename>.</para> It defaults to
<filename>/usr/local/share/doc/freebsd</filename>.</para>
<note> <note>
<para>The default target directory differs from the <para>The default target directory differs from the
@ -1272,8 +1359,9 @@ Fetching 133 new ports or files... done.</screen>
<orderedlist> <orderedlist>
<listitem> <listitem>
<para>Use <link linkend="svn">svn</link><indexterm> <para>Use <link linkend="svn">svn</link>
<primary>Subversion</primary> <indexterm>
<primary>Subversion</primary>
</indexterm> </indexterm>
<indexterm> <indexterm>
<primary>-CURRENT</primary> <primary>-CURRENT</primary>
@ -1284,24 +1372,27 @@ Fetching 133 new ports or files... done.</screen>
branch. This is the recommended method, providing branch. This is the recommended method, providing
access to &os; development as it occurs. Checkout access to &os; development as it occurs. Checkout
the -CURRENT code from the <literal>head</literal> the -CURRENT code from the <literal>head</literal>
branch of one of the <link linkend="svn-mirrors">Subversion mirror branch of one of the <link
linkend="svn-mirrors">Subversion mirror
sites</link>. Due to the size of the repository, sites</link>. Due to the size of the repository,
it is recommended that only desired subtrees be it is recommended that only desired subtrees be
checked out.</para> checked out.</para>
</listitem> </listitem>
<listitem> <listitem>
<para>Use the <application>CTM</application><indexterm> <para>Use the
<application>CTM</application>
<indexterm>
<primary>-CURRENT</primary> <primary>-CURRENT</primary>
<secondary>Syncing with CTM</secondary> <secondary>Syncing with CTM</secondary>
</indexterm> facility. If you have bad connectivity </indexterm> facility. If you have bad connectivity
such as high price connections or only email access, such as high price connections or only email access,
<application>CTM</application> is an option, but it <application>CTM</application> is an option, but it
is not as reliable as <application> is not as reliable as
Subversion</application>. <application>Subversion</application>. For this
For this reason, <application>Subversion</application> reason, <application>Subversion</application> is the
is the recommended method for any system with recommended method for any system with Internet
Internet connectivity.</para> connectivity.</para>
</listitem> </listitem>
</orderedlist> </orderedlist>
</listitem> </listitem>
@ -1315,7 +1406,8 @@ Fetching 133 new ports or files... done.</screen>
problems.</para> problems.</para>
<para>Before compiling <para>Before compiling
&os.current;<indexterm> &os.current;
<indexterm>
<primary>-CURRENT</primary> <primary>-CURRENT</primary>
<secondary>compiling</secondary> <secondary>compiling</secondary>
</indexterm>, read </indexterm>, read
@ -1374,7 +1466,8 @@ Fetching 133 new ports or files... done.</screen>
<footnote> <footnote>
<para>For a complete description of the current security <para>For a complete description of the current security
policy for old releases of FreeBSD, refer to <link xlink:href="&url.base;/security/">http://www.FreeBSD.org/security/</link>.</para></footnote>.</para> policy for old releases of FreeBSD, refer to <link
xlink:href="&url.base;/security/">http://www.FreeBSD.org/security/</link>.</para></footnote>.</para>
<para>While the &os.stable; branch should compile and run at <para>While the &os.stable; branch should compile and run at
all times, this cannot be guaranteed. While code is all times, this cannot be guaranteed. While code is
@ -1430,11 +1523,13 @@ Fetching 133 new ports or files... done.</screen>
</listitem> </listitem>
<listitem> <listitem>
<para>To install a new system running monthly <para>To install a new system running monthly snapshots
snapshots built from &os.stable;, refer to <link xlink:href="&url.base;/snapshots/">Snapshots</link> for more built from &os.stable;, refer to <link
information. Alternatively, it is possible to install xlink:href="&url.base;/snapshots/">Snapshots</link>
the most recent &os.stable; release from the <link linkend="mirrors">mirror sites</link> and follow the for more information. Alternatively, it is possible to
instructions below to upgrade the system to the most install the most recent &os.stable; release from the
<link linkend="mirrors">mirror sites</link> and follow
the instructions below to upgrade the system to the most
up-to-date &os.stable; source code.</para> up-to-date &os.stable; source code.</para>
<para>Several methods are available to upgrade from a &os; <para>Several methods are available to upgrade from a &os;
@ -1443,9 +1538,9 @@ Fetching 133 new ports or files... done.</screen>
<orderedlist> <orderedlist>
<listitem> <listitem>
<para>Use <link linkend="svn">svn</link><indexterm> <para>Use <link linkend="svn">svn</link>
<indexterm>
<primary>Subversion</primary> <primary>Subversion</primary>
</indexterm> to check out the desired development or </indexterm> to check out the desired development or
release branch. This is the recommended method, release branch. This is the recommended method,
providing access to &os; development as it occurs. providing access to &os; development as it occurs.
@ -1453,22 +1548,24 @@ Fetching 133 new ports or files... done.</screen>
current development head, and branches identified in current development head, and branches identified in
<link xlink:href="&url.base;/releng/">the release <link xlink:href="&url.base;/releng/">the release
engineering page</link>, such as engineering page</link>, such as
<literal>stable/9</literal><indexterm> <literal>stable/9</literal>
<indexterm>
<primary>-STABLE</primary> <primary>-STABLE</primary>
<secondary>syncing with <secondary>syncing with
<application>Subversion</application></secondary> <application>Subversion</application></secondary>
</indexterm> </indexterm>
or <literal>releng/9.2</literal>. URL prefixes for or <literal>releng/9.2</literal>. URL prefixes for
<application>Subversion</application> checkout of <application>Subversion</application> checkout of
the base system are shown in <link linkend="svn-mirrors">Subversion mirror the base system are shown in <link
sites</link>. linkend="svn-mirrors">Subversion mirror
Because of the size of the repository, it is sites</link>. Because of the size of the
recommended that only desired subtrees be checked repository, it is recommended that only desired
out.</para> subtrees be checked out.</para>
</listitem> </listitem>
<listitem> <listitem>
<para>Consider using <application>CTM</application><indexterm> <para>Consider using <application>CTM</application>
<indexterm>
<primary>-STABLE</primary> <primary>-STABLE</primary>
<secondary>syncing with CTM</secondary> <secondary>syncing with CTM</secondary>
</indexterm> if you do not have a fast connection to </indexterm> if you do not have a fast connection to
@ -1501,7 +1598,9 @@ Fetching 133 new ports or files... done.</screen>
<para>There are various ways of using an Internet or email <para>There are various ways of using an Internet or email
connection to stay up-to-date with any given area, or all areas, connection to stay up-to-date with any given area, or all areas,
of the &os; project sources. The primary services are <link linkend="svn">Subversion</link> and <link linkend="ctm">CTM</link>.</para> of the &os; project sources. The primary services are
<link linkend="svn">Subversion</link> and
<link linkend="ctm">CTM</link>.</para>
<warning> <warning>
<para>While it is possible to update only parts of the source <para>While it is possible to update only parts of the source
@ -1750,9 +1849,9 @@ Fetching 133 new ports or files... done.</screen>
password database. This is often necessary when new password database. This is often necessary when new
groups or special system-user accounts have been added groups or special system-user accounts have been added
since the last update, so that the since the last update, so that the
<buildtarget>installworld</buildtarget> step will be able to <buildtarget>installworld</buildtarget> step will be able
use the newly installed system user or system group names to use the newly installed system user or system group
without problems.</para> names without problems.</para>
</listitem> </listitem>
<listitem> <listitem>
@ -1846,8 +1945,7 @@ Fetching 133 new ports or files... done.</screen>
successfully, boot into single user mode using <command>boot successfully, boot into single user mode using <command>boot
-s</command> from the loader prompt.</para> -s</command> from the loader prompt.</para>
<para>If using UFS, run:</para> <para>If using UFS, run:</para>
<screen>&prompt.root; <userinput>mount -u /</userinput> <screen>&prompt.root; <userinput>mount -u /</userinput>
&prompt.root; <userinput>mount -a -t ufs</userinput></screen> &prompt.root; <userinput>mount -a -t ufs</userinput></screen>
@ -1859,7 +1957,7 @@ Fetching 133 new ports or files... done.</screen>
<para>Then run:</para> <para>Then run:</para>
<screen>&prompt.root; <userinput>adjkerntz -i</userinput> <screen>&prompt.root; <userinput>adjkerntz -i</userinput>
&prompt.root; <userinput>mergemaster -p</userinput> &prompt.root; <userinput>mergemaster -p</userinput>
&prompt.root; <userinput>cd /usr/src</userinput> &prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make installworld</userinput> &prompt.root; <userinput>make installworld</userinput>
@ -2070,10 +2168,12 @@ Script started, output file is /var/tmp/mw.out
&prompt.root; <userinput>exit</userinput> &prompt.root; <userinput>exit</userinput>
Script done, &hellip;</screen> Script done, &hellip;</screen>
<para><emphasis>Do not</emphasis> save the output in <filename>/tmp</filename> as this directory may be <para><emphasis>Do not</emphasis> save the output in
cleared at next reboot. A better place to save the file is <filename>/tmp</filename> as this directory may be cleared
at next reboot. A better place to save the file is
<filename>/var/tmp</filename> or in <filename>/var/tmp</filename> or in
<systemitem class="username">root</systemitem>'s home directory.</para> <systemitem class="username">root</systemitem>'s home
directory.</para>
</sect3> </sect3>
<sect3 xml:id="make-buildworld"> <sect3 xml:id="make-buildworld">
@ -2084,7 +2184,9 @@ Script done, &hellip;</screen>
<screen>&prompt.root; <userinput>cd /usr/src</userinput></screen> <screen>&prompt.root; <userinput>cd /usr/src</userinput></screen>
<indexterm><primary><command>make</command></primary></indexterm> <indexterm>
<primary><command>make</command></primary>
</indexterm>
<para>To rebuild the world, use &man.make.1;. This command <para>To rebuild the world, use &man.make.1;. This command
reads instructions from the <filename>Makefile</filename>, reads instructions from the <filename>Makefile</filename>,
@ -2135,36 +2237,39 @@ Script done, &hellip;</screen>
build options. The first target should always be build options. The first target should always be
<varname>buildworld</varname>.</para> <varname>buildworld</varname>.</para>
<para>As the names imply, <buildtarget>buildworld</buildtarget> <para>As the names imply,
builds a complete new tree under <buildtarget>buildworld</buildtarget> builds a complete new
<filename>/usr/obj</filename> and tree under <filename>/usr/obj</filename> and
<buildtarget>installworld</buildtarget> installs this tree on <buildtarget>installworld</buildtarget> installs this tree
the current machine.</para> on the current machine.</para>
<para>Having separate options is useful for two reasons. <para>Having separate options is useful for two reasons.
First, it allows for a <quote>self hosted</quote> build that First, it allows for a <quote>self hosted</quote> build that
does not affect any components of a running system. Because does not affect any components of a running system. Because
of this, <buildtarget>buildworld</buildtarget> can be run on a of this, <buildtarget>buildworld</buildtarget> can be run on
machine running in multi-user mode with no fear of a machine running in multi-user mode with no fear of
ill-effects. It is still recommended that ill-effects. It is still recommended that
<buildtarget>installworld</buildtarget> be run in part in <buildtarget>installworld</buildtarget> be run in part in
single user mode, though.</para> single user mode, though.</para>
<para>Secondly, it allows NFS mounts to be used to upgrade <para>Secondly, it allows NFS mounts to be used to upgrade
multiple machines on a network. If order to upgrade three multiple machines on a network. If order to upgrade three
machines, <systemitem>A</systemitem>, <systemitem>B</systemitem> and machines, <systemitem>A</systemitem>,
<systemitem>C</systemitem>, run <command>make buildworld</command> <systemitem>B</systemitem> and <systemitem>C</systemitem>,
and <command>make installworld</command> on run <command>make buildworld</command> and
<command>make installworld</command> on
<systemitem>A</systemitem>. <systemitem>B</systemitem> and <systemitem>A</systemitem>. <systemitem>B</systemitem> and
<systemitem>C</systemitem> should then NFS mount <systemitem>C</systemitem> should then NFS mount
<filename>/usr/src</filename> and <filename>/usr/src</filename> and
<filename>/usr/obj</filename> from <systemitem>A</systemitem>, and <filename>/usr/obj</filename> from
run <command>make installworld</command> to install the <systemitem>A</systemitem>, and run
results of the build on <systemitem>B</systemitem> and <command>make installworld</command> to install the results
of the build on <systemitem>B</systemitem> and
<systemitem>C</systemitem>.</para> <systemitem>C</systemitem>.</para>
<para>Although the <buildtarget>world</buildtarget> target still <para>Although the <buildtarget>world</buildtarget> target
exists, users are strongly encouraged not to use it.</para> still exists, users are strongly encouraged not to use
it.</para>
<para>Instead, run:</para> <para>Instead, run:</para>
@ -2250,9 +2355,9 @@ Script done, &hellip;</screen>
above 1 <emphasis>and</emphasis> <literal>noschg</literal> or above 1 <emphasis>and</emphasis> <literal>noschg</literal> or
similar flags have been set on the kernel binary, drop into similar flags have been set on the kernel binary, drop into
single user mode to use single user mode to use
<buildtarget>installkernel</buildtarget>. Otherwise, both these <buildtarget>installkernel</buildtarget>. Otherwise, both
commands can be run from multi user mode without problems. these commands can be run from multi user mode without
See &man.init.8; for details about problems. See &man.init.8; for details about
<varname>kern.securelevel</varname> and &man.chflags.1; for <varname>kern.securelevel</varname> and &man.chflags.1; for
details about the various file flags.</para> details about the various file flags.</para>
</sect2> </sect2>
@ -2263,14 +2368,15 @@ Script done, &hellip;</screen>
<indexterm><primary>single-user mode</primary></indexterm> <indexterm><primary>single-user mode</primary></indexterm>
<para>Reboot into single user mode to test that the new kernel <para>Reboot into single user mode to test that the new kernel
works using the instructions in <xref linkend="makeworld-singleuser"/>.</para> works using the instructions in
<xref linkend="makeworld-singleuser"/>.</para>
</sect2> </sect2>
<sect2 xml:id="make-installworld"> <sect2 xml:id="make-installworld">
<title>Install the New System Binaries</title> <title>Install the New System Binaries</title>
<para>Next, use <buildtarget>installworld</buildtarget> to install <para>Next, use <buildtarget>installworld</buildtarget> to
the new system binaries:</para> install the new system binaries:</para>
<screen>&prompt.root; <userinput>cd /usr/src</userinput> <screen>&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make installworld</userinput></screen> &prompt.root; <userinput>make installworld</userinput></screen>
@ -2312,12 +2418,19 @@ Script done, &hellip;</screen>
wrong.</para> wrong.</para>
<sect3 xml:id="mergemaster"> <sect3 xml:id="mergemaster">
<info><title><command>mergemaster</command></title> <info>
<title><command>mergemaster</command></title>
<authorgroup> <authorgroup>
<author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Contributed by </contrib></author> <author>
<personname>
<firstname>Tom</firstname>
<surname>Rhodes</surname>
</personname>
<contrib>Contributed by </contrib>
</author>
</authorgroup> </authorgroup>
</info> </info>
<indexterm> <indexterm>
<primary> <primary>
@ -2327,10 +2440,9 @@ Script done, &hellip;</screen>
<para>&man.mergemaster.8; is a Bourne script to aid in <para>&man.mergemaster.8; is a Bourne script to aid in
determining the differences between the configuration files determining the differences between the configuration files
in <filename>/etc</filename>, and the in <filename>/etc</filename>, and the configuration files in
configuration files in the source tree the source tree <filename>/usr/src/etc</filename>. This is
<filename>/usr/src/etc</filename>. This the recommended solution for keeping the system
is the recommended solution for keeping the system
configuration files up to date with those located in the configuration files up to date with those located in the
source tree.</para> source tree.</para>
@ -2437,8 +2549,8 @@ Script done, &hellip;</screen>
<para>This will build the necessary directory structure and <para>This will build the necessary directory structure and
install the files. A lot of the subdirectories that have install the files. A lot of the subdirectories that have
been created under <filename>/var/tmp/root</filename> are empty and been created under <filename>/var/tmp/root</filename> are
should be deleted. The simplest way to do this is empty and should be deleted. The simplest way to do this is
to:</para> to:</para>
<screen>&prompt.root; <userinput>cd /var/tmp/root</userinput> <screen>&prompt.root; <userinput>cd /var/tmp/root</userinput>
@ -2455,9 +2567,10 @@ Script done, &hellip;</screen>
Go through each of these files, determining how they differ Go through each of these files, determining how they differ
from the system's existing files.</para> from the system's existing files.</para>
<para>Some of the files installed into <filename>/var/tmp/root</filename> have a <para>Some of the files installed into
leading <quote>.</quote>. Make sure to use <command>ls <filename>/var/tmp/root</filename> have a leading
-a</command> in order to catch them.</para> <quote>.</quote>. Make sure to use
<command>ls -a</command> in order to catch them.</para>
<para>The simplest way to compare files is to use <para>The simplest way to compare files is to use
&man.diff.1;:</para> &man.diff.1;:</para>
@ -2521,11 +2634,11 @@ Script done, &hellip;</screen>
&prompt.root; <userinput>diff -r root-20130214 root-20130221</userinput></screen> &prompt.root; <userinput>diff -r root-20130214 root-20130221</userinput></screen>
<para>Typically, this will be a much smaller set of <para>Typically, this will be a much smaller set of
differences than those between <filename>/var/tmp/root-20130221/etc</filename> differences than those between
and <filename>/etc</filename>. <filename>/var/tmp/root-20130221/etc</filename> and
Because the set of differences is smaller, it is <filename>/etc</filename>. Because the set of
easier to migrate those changes across into differences is smaller, it is easier to migrate those
<filename>/etc</filename>.</para> changes across into <filename>/etc</filename>.</para>
</step> </step>
<step> <step>
@ -2551,12 +2664,19 @@ Script done, &hellip;</screen>
</sect2> </sect2>
<sect2 xml:id="make-delete-old"> <sect2 xml:id="make-delete-old">
<info><title>Deleting Obsolete Files and Directories</title> <info>
<title>Deleting Obsolete Files and Directories</title>
<authorgroup> <authorgroup>
<author><personname><firstname>Anton</firstname><surname>Shterenlikht</surname></personname><contrib>Based on notes provided by </contrib></author> <author>
<personname>
<firstname>Anton</firstname>
<surname>Shterenlikht</surname>
</personname>
<contrib>Based on notes provided by </contrib>
</author>
</authorgroup> </authorgroup>
</info> </info>
<indexterm> <indexterm>
<primary>Deleting obsolete files and directories</primary> <primary>Deleting obsolete files and directories</primary>
@ -2668,8 +2788,8 @@ Script done, &hellip;</screen>
<para>If things went slightly wrong, it is easy to rebuild a <para>If things went slightly wrong, it is easy to rebuild a
particular piece of the system. For example, if particular piece of the system. For example, if
<filename>/etc/magic</filename> was accidentally deleted as <filename>/etc/magic</filename> was accidentally deleted as
part of the upgrade or merge of <filename>/etc</filename>, &man.file.1; will stop part of the upgrade or merge of <filename>/etc</filename>,
working. To fix this, run:</para> &man.file.1; will stop working. To fix this, run:</para>
<screen>&prompt.root; <userinput>cd /usr/src/usr.bin/file</userinput> <screen>&prompt.root; <userinput>cd /usr/src/usr.bin/file</userinput>
&prompt.root; <userinput>make all install</userinput></screen> &prompt.root; <userinput>make all install</userinput></screen>
@ -2866,20 +2986,22 @@ Building everything..
<screen>&prompt.root; <userinput>mount -u -o noatime /usr/src</userinput></screen> <screen>&prompt.root; <userinput>mount -u -o noatime /usr/src</userinput></screen>
<warning> <warning>
<para>This example assumes <filename>/usr/src</filename> is on its <para>This example assumes
own file system. If it is part of <filename>/usr/src</filename> is on its own file
<filename>/usr</filename>, then system. If it is part of
use that file system mount point instead.</para> <filename>/usr</filename>, then use that file
system mount point instead.</para>
</warning> </warning>
</listitem> </listitem>
<listitem> <listitem>
<para>The file system holding <filename>/usr/obj</filename> can be <para>The file system holding
mounted or remounted with <option>async</option> <filename>/usr/obj</filename> can be mounted or
so that disk writes happen asynchronously. The remounted with <option>async</option> so that disk
write completes immediately, and the data is written writes happen asynchronously. The write completes
to the disk a few seconds later. This allows writes immediately, and the data is written to the disk a
to be clustered together, and can provide a dramatic few seconds later. This allows writes to be
clustered together, and can provide a dramatic
performance boost.</para> performance boost.</para>
<warning> <warning>
@ -2941,14 +3063,20 @@ Building everything..
</sect1> </sect1>
<sect1 xml:id="small-lan"> <sect1 xml:id="small-lan">
<info><title>Tracking for Multiple Machines</title> <info>
<title>Tracking for Multiple Machines</title>
<authorgroup> <authorgroup>
<author><personname><firstname>Mike</firstname><surname>Meyer</surname></personname><contrib>Contributed by </contrib></author> <author>
<personname>
<firstname>Mike</firstname>
<surname>Meyer</surname>
</personname>
<contrib>Contributed by </contrib>
</author>
</authorgroup> </authorgroup>
</info> </info>
<indexterm> <indexterm>
<primary>NFS</primary> <primary>NFS</primary>
<secondary>installing multiple machines</secondary> <secondary>installing multiple machines</secondary>
@ -3031,16 +3159,17 @@ Building everything..
<title>Ports</title> <title>Ports</title>
<para>The same ideas can be used for the ports tree. The first <para>The same ideas can be used for the ports tree. The first
critical step is to mount <filename>/usr/ports</filename> from the same critical step is to mount <filename>/usr/ports</filename> from
machine to all the machines in the build set. Then, configure the same machine to all the machines in the build set. Then,
<filename>/etc/make.conf</filename> properly to share configure <filename>/etc/make.conf</filename> properly to
distfiles. Set <varname>DISTDIR</varname> to a common shared share distfiles. Set <varname>DISTDIR</varname> to a common
directory that is writable by whichever user shared directory that is writable by whichever user
<systemitem class="username">root</systemitem> is mapped to by the NFS mounts. <systemitem class="username">root</systemitem> is mapped to by
Each machine should set <varname>WRKDIRPREFIX</varname> to a the NFS mounts. Each machine should set
local build directory. Finally, if the system is to build and <varname>WRKDIRPREFIX</varname> to a local build directory.
distribute packages, set <varname>PACKAGES</varname> to a Finally, if the system is to build and distribute packages,
directory similar to <varname>DISTDIR</varname>.</para> set <varname>PACKAGES</varname> to a directory similar to
<varname>DISTDIR</varname>.</para>
</sect2> </sect2>
</sect1> </sect1>
</chapter> </chapter>