diff options
Diffstat (limited to 'en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml')
-rw-r--r-- | en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml | 640 |
1 files changed, 269 insertions, 371 deletions
diff --git a/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml b/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml index 8f7638c6fe..17e54a11f0 100644 --- a/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml +++ b/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml @@ -4,47 +4,29 @@ $FreeBSD$ --> - -<chapter id="updating-upgrading"> - <chapterinfo> +<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="updating-upgrading"> + <info><title>Updating and Upgrading &os;</title> <authorgroup> - <author> - <firstname>Jim</firstname> - <surname>Mock</surname> - <contrib>Restructured, reorganized, and parts updated - by </contrib> - </author> + <author><personname><firstname>Jim</firstname><surname>Mock</surname></personname><contrib>Restructured, reorganized, and parts updated + by </contrib></author> <!-- Mar 2000 --> </authorgroup> <authorgroup> - <author> - <firstname>Jordan</firstname> - <surname>Hubbard</surname> - <contrib>Original work by </contrib> - </author> - - <author> - <firstname>Poul-Henning</firstname> - <surname>Kamp</surname> - </author> - - <author> - <firstname>John</firstname> - <surname>Polstra</surname> - </author> - - <author> - <firstname>Nik</firstname> - <surname>Clayton</surname> - </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>John</firstname><surname>Polstra</surname></personname></author> + + <author><personname><firstname>Nik</firstname><surname>Clayton</surname></personname></author> </authorgroup> - <!-- with feedback from various others --> - </chapterinfo> + + </info> - <title>Updating and Upgrading &os;</title> + - <sect1 id="updating-upgrading-synopsis"> + <sect1 xml:id="updating-upgrading-synopsis"> <title>Synopsis</title> <para>&os; is under constant development between releases. Some @@ -98,8 +80,7 @@ <itemizedlist> <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> @@ -111,29 +92,21 @@ <note> <para>Throughout this chapter, <command>svn</command> is used to obtain and update &os; sources. To use it, first install the - <filename role="package">devel/subversion</filename> port or + <package>devel/subversion</package> port or package.</para> </note> </sect1> - <sect1 id="updating-upgrading-freebsdupdate"> - <sect1info> + <sect1 xml:id="updating-upgrading-freebsdupdate"> + <info><title>&os; Update</title> <authorgroup> - <author> - <firstname>Tom</firstname> - <surname>Rhodes</surname> - <contrib>Written by </contrib> - </author> + <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Written by </contrib></author> </authorgroup> <authorgroup> - <author> - <firstname>Colin</firstname> - <surname>Percival</surname> - <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> - </sect1info> - <title>&os; Update</title> + </info> + <indexterm><primary>Updating and Upgrading</primary></indexterm> <indexterm> @@ -160,15 +133,14 @@ releases currently supported by the security team. Before updating to a new release, its release announcement should be reviewed as it contains important information pertinent to the - release. Release announcements are available from <ulink - url="http://www.FreeBSD.org/releases/"></ulink>.</para> + release. Release announcements are available from <uri xlink:href="http://www.FreeBSD.org/releases/">http://www.FreeBSD.org/releases/</uri>.</para> </note> <para>If a <command>crontab</command> utilizing the features of &man.freebsd-update.8; exists, it must be disabled before the following operation is started.</para> - <sect2 id="freebsdupdate-config-file"> + <sect2 xml:id="freebsdupdate-config-file"> <title>The Configuration File</title> <para>Some users may wish to tweak the default configuration @@ -186,7 +158,7 @@ Components src world kernel</programlisting> as those available during installation. For instance, adding <literal>world/games</literal> would allow game patches to be applied. Using <literal>src/bin</literal> would allow the - source code in <filename class="directory">src/bin</filename> + source code in <filename>src/bin</filename> to be updated.</para> <para>The best option is to leave this at the default as @@ -200,8 +172,8 @@ Components src world kernel</programlisting> IgnorePaths</programlisting> <para>To leave specified directories, such as - <filename class="directory">/bin</filename> or - <filename class="directory">/sbin</filename>, untouched during + <filename>/bin</filename> or + <filename>/sbin</filename>, untouched during the update process, add their paths to this statement. This option may be used to prevent <command>freebsd-update</command> from overwriting local @@ -230,7 +202,7 @@ MergeChanges /etc/ /var/named/etc/</programlisting> similar to &man.mergemaster.8;, but with fewer options. Merges are either accepted, open an editor, or <command>freebsd-update</command> will abort. When in doubt, - backup <filename class="directory">/etc</filename> and just + backup <filename>/etc</filename> and just accept the merges. See <xref linkend="mergemaster"/> for more information about <command>mergemaster</command>.</para> @@ -258,7 +230,7 @@ MergeChanges /etc/ /var/named/etc/</programlisting> list.</para> </sect2> - <sect2 id="freebsdupdate-security-patches"> + <sect2 xml:id="freebsdupdate-security-patches"> <title>Security Patches</title> <para>&os; security patches may be downloaded and installed @@ -281,7 +253,7 @@ MergeChanges /etc/ /var/named/etc/</programlisting> <command>freebsd-update</command> will only check if updates exist. If patches exist, they will automatically be downloaded to the local disk but will not be applied. The - <username>root</username> user will be sent an email so that + <systemitem class="username">root</systemitem> user will be sent an email so that they may be reviewed and manually installed.</para> <para>If anything goes wrong, <command>freebsd-update</command> @@ -301,14 +273,14 @@ MergeChanges /etc/ /var/named/etc/</programlisting> finishes installing the rest of the updates. However, <command>freebsd-update</command> will detect and update the <filename>GENERIC</filename> kernel if - <filename class="directory">/boot/GENERIC</filename> exists, + <filename>/boot/GENERIC</filename> exists, even if it is not the current running kernel of the system.</para> <note> <para>It is a good idea to always keep a copy of the <filename>GENERIC</filename> kernel in - <filename class="directory">/boot/GENERIC</filename>. It + <filename>/boot/GENERIC</filename>. It will be helpful in diagnosing a variety of problems, and in performing version upgrades using <command>freebsd-update</command> as described in @@ -341,7 +313,7 @@ MergeChanges /etc/ /var/named/etc/</programlisting> </note> </sect2> - <sect2 id="freebsdupdate-upgrade"> + <sect2 xml:id="freebsdupdate-upgrade"> <title>Major and Minor Version Upgrades</title> <para>Upgrades from one minor version of &os; to another, like @@ -357,7 +329,7 @@ MergeChanges /etc/ /var/named/etc/</programlisting> party applications. It is recommended that all installed ports either be removed and re-installed or upgraded after a major version upgrade using a utility such as - <filename role="package">ports-mgmt/portmaster</filename>. A + <package>ports-mgmt/portmaster</package>. A brute-force rebuild of all installed applications can be accomplished with this command:</para> @@ -365,24 +337,23 @@ MergeChanges /etc/ /var/named/etc/</programlisting> <para>This will ensure everything will be re-installed correctly. Note that setting the - <makevar>BATCH</makevar> environment variable to + <varname>BATCH</varname> environment variable to <literal>yes</literal> will answer <literal>yes</literal> to any prompts during this process, removing the need for manual intervention during the build process.</para> - <sect3 id="freebsd-update-custom-kernel"> + <sect3 xml:id="freebsd-update-custom-kernel"> <title>Dealing with Custom Kernels</title> <para>If a custom kernel is in use, the upgrade process is slightly more involved, and the procedure varies depending on the version of &os;.</para> - <sect4 id="freebsd-update-custom-kernel-8x"> + <sect4 xml:id="freebsd-update-custom-kernel-8x"> <title>Custom Kernels with &os; 8.X</title> <para>A copy of the <filename>GENERIC</filename> kernel is - needed, and should be placed in <filename - class="directory">/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 system, it may be obtained using one of the following methods:</para> @@ -390,11 +361,9 @@ MergeChanges /etc/ /var/named/etc/</programlisting> <itemizedlist> <listitem> <para>If a custom kernel has only been built once, the - kernel in <filename - class="directory">/boot/kernel.old</filename> is + kernel in <filename>/boot/kernel.old</filename> is actually <filename>GENERIC</filename>. Rename this - directory to <filename - class="directory">/boot/GENERIC</filename>.</para> + directory to <filename>/boot/GENERIC</filename>.</para> </listitem> <listitem> @@ -404,15 +373,13 @@ MergeChanges /etc/ /var/named/etc/</programlisting> using the following commands:</para> <screen>&prompt.root; <userinput>mount /cdrom</userinput> -&prompt.root; <userinput>cd /cdrom/<replaceable>X.Y-RELEASE</replaceable>/kernels</userinput> +&prompt.root; <userinput>cd /cdrom/X.Y-RELEASE/kernels</userinput> &prompt.root; <userinput>./install.sh GENERIC</userinput></screen> - <para>Replace <filename - class="directory"><replaceable>X.Y-RELEASE</replaceable></filename> + <para>Replace <filename>X.Y-RELEASE</filename> with the actual version of the release being used. The <filename>GENERIC</filename> kernel will be - installed in <filename - class="directory">/boot/GENERIC</filename> by + installed in <filename>/boot/GENERIC</filename> by default.</para> </listitem> @@ -440,18 +407,16 @@ MergeChanges /etc/ /var/named/etc/</programlisting> is not required at this stage.</para> </sect4> - <sect4 id="freebsd-update-custom-kernel-9x"> + <sect4 xml:id="freebsd-update-custom-kernel-9x"> <title>Custom Kernels with &os; 9.X and Later</title> <itemizedlist> <listitem> <para>If a custom kernel has only been built once, the kernel in - <filename - class="directory">/boot/kernel.old</filename> + <filename>/boot/kernel.old</filename> is actually the <literal>GENERIC</literal> kernel. - Rename this directory to <filename - class="directory">/boot/kernel</filename>.</para> + Rename this directory to <filename>/boot/kernel</filename>.</para> </listitem> <listitem> @@ -488,7 +453,7 @@ MergeChanges /etc/ /var/named/etc/</programlisting> </sect4> </sect3> - <sect3 id="freebsdupdate-using"> + <sect3 xml:id="freebsdupdate-using"> <title>Performing the Upgrade</title> <para>Major and minor version upgrades may be performed by @@ -548,7 +513,7 @@ before running "/usr/sbin/freebsd-update install"</screen> 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 class="directory">/etc</filename> and + 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> @@ -569,7 +534,7 @@ before running "/usr/sbin/freebsd-update install"</screen> this point, the machine must be rebooted. 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 class="directory">/boot/GENERIC</filename>:</para> + <filename>/boot/GENERIC</filename>:</para> <screen>&prompt.root; <userinput>nextboot -k GENERIC</userinput></screen> @@ -609,15 +574,14 @@ before running "/usr/sbin/freebsd-update install"</screen> </note> </sect3> - <sect3 id="freebsdupdate-portsrebuild"> + <sect3 xml:id="freebsdupdate-portsrebuild"> <title>Rebuilding Ports After a Major Version Upgrade</title> <para>After a major version upgrade, all third party software needs to be rebuilt and re-installed. This is required as installed software may depend on libraries which have been removed during the upgrade process. This process can be - automated using <filename - role="package">ports-mgmt/portmaster</filename>:</para> + automated using <package>ports-mgmt/portmaster</package>:</para> <screen>&prompt.root; <userinput>portmaster -f</userinput></screen> @@ -636,7 +600,7 @@ before running "/usr/sbin/freebsd-update install"</screen> </sect3> </sect2> - <sect2 id="freebsdupdate-system-comparison"> + <sect2 xml:id="freebsdupdate-system-comparison"> <title>System State Comparison</title> <para><command>freebsd-update</command> can be used to test the @@ -650,7 +614,7 @@ before running "/usr/sbin/freebsd-update install"</screen> <warning> <para>While the command name is <acronym>IDS</acronym> it is not a replacement for a real intrusion detection system such - as <filename role="package">security/snort</filename>. As + 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 @@ -693,24 +657,16 @@ before running "/usr/sbin/freebsd-update install"</screen> </sect2> </sect1> - <sect1 id="updating-upgrading-portsnap"> - <sect1info> + <sect1 xml:id="updating-upgrading-portsnap"> + <info><title>Portsnap: a Ports Collection Update Tool</title> <authorgroup> - <author> - <firstname>Tom</firstname> - <surname>Rhodes</surname> - <contrib>Written by </contrib> - </author> + <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Written by </contrib></author> </authorgroup> <authorgroup> - <author> - <firstname>Colin</firstname> - <surname>Percival</surname> - <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> - </sect1info> - <title>Portsnap: a Ports Collection Update Tool</title> + </info> + <indexterm><primary>Updating and Upgrading</primary></indexterm> <indexterm> @@ -780,10 +736,10 @@ Fetching 133 new ports or files... done.</screen> <para>This command downloads the latest version of the Ports Collection and updates the local version under - <filename class="directory">/usr/ports</filename>.</para> + <filename>/usr/ports</filename>.</para> </sect1> - <sect1 id="updating-upgrading-documentation"> + <sect1 xml:id="updating-upgrading-documentation"> <title>Updating the Documentation Set</title> <indexterm><primary>Updating and Upgrading</primary></indexterm> @@ -795,13 +751,12 @@ Fetching 133 new ports or files... done.</screen> <para>Documentation is an integral part of the &os; operating system. While an up-to-date version of the &os; Documentation - Set is always available on the <ulink - url="http://www.freebsd.org/doc/">&os; web site</ulink>, + Set is always available on the <link xlink:href="http://www.freebsd.org/doc/">&os; web site</link>, some users might have slow or no permanent network connectivity. There are several ways to update the local copy of documentation with the latest &os; Documentation Set.</para> - <sect2 id="dsvn-doc"> + <sect2 xml:id="dsvn-doc"> <title>Using <application>Subversion</application> to Update the Documentation</title> @@ -818,14 +773,13 @@ Fetching 133 new ports or files... done.</screen> <listitem> <para>Download a copy of the documentation source at - <filename class="directory">/usr/doc</filename>, using + <filename>/usr/doc</filename>, using <application>svn</application>.</para> </listitem> <listitem> <para>Rebuild the &os; documentation from its source, and - install it under <filename - class="directory">/usr/share/doc</filename>.</para> + install it under <filename>/usr/share/doc</filename>.</para> </listitem> <listitem> @@ -838,7 +792,7 @@ Fetching 133 new ports or files... done.</screen> </itemizedlist> </sect2> - <sect2 id="installing-documentation-toolchain"> + <sect2 xml:id="installing-documentation-toolchain"> <title>Installing <application>svn</application> and the Documentation Toolchain</title> @@ -851,13 +805,12 @@ Fetching 133 new ports or files... done.</screen> <para>The required tools, including <application>svn</application>, are available in the - <filename role="package">textproc/docproj</filename> meta-port + <package>textproc/docproj</package> meta-port developed by the &os; Documentation Project.</para> <note> <para>When no &postscript; or PDF documentation required, one - might consider installing the <filename - role="package">textproc/docproj-nojadetex</filename> port + might consider installing the <package>textproc/docproj-nojadetex</package> port instead. This version of the documentation toolchain includes everything except the <application>teTeX</application> typesetting engine. @@ -867,17 +820,16 @@ Fetching 133 new ports or files... done.</screen> </note> </sect2> - <sect2 id="updating-documentation-sources"> + <sect2 xml:id="updating-documentation-sources"> <title>Updating the Documentation Sources</title> <para>In this example, <application>svn</application> is used to fetch a clean copy of the documentation sources from the western US mirror using the HTTPS protocol:</para> - <screen>&prompt.root; <userinput>svn checkout <replaceable>https://svn0.us-west.FreeBSD.org</replaceable>/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 a while. Let it run until it completes.</para> @@ -885,7 +837,7 @@ Fetching 133 new ports or files... done.</screen> <para>Future updates of the documentation sources may be fetched by running:</para> - <screen>&prompt.root; <userinput>svn update <filename class="directory">/usr/doc</filename></userinput></screen> + <screen>&prompt.root; <userinput>svn update /usr/doc</userinput></screen> <para>After checking out the sources, an alternative way of updating the documentation is supported by the @@ -896,7 +848,7 @@ Fetching 133 new ports or files... done.</screen> &prompt.root; <userinput>make update</userinput></screen> </sect2> - <sect2 id="updating-documentation-options"> + <sect2 xml:id="updating-documentation-options"> <title>Tunable Options of the Documentation Sources</title> <para>The updating and build system of the &os; documentation @@ -910,7 +862,7 @@ Fetching 133 new ports or files... done.</screen> <variablelist> <varlistentry> - <term><makevar>DOC_LANG</makevar></term> + <term><varname>DOC_LANG</varname></term> <listitem> <para>The list of languages and encodings to build and @@ -920,7 +872,7 @@ Fetching 133 new ports or files... done.</screen> </varlistentry> <varlistentry> - <term><makevar>FORMATS</makevar></term> + <term><varname>FORMATS</varname></term> <listitem> <para>A single format or a list of output formats to be @@ -932,12 +884,11 @@ Fetching 133 new ports or files... done.</screen> </varlistentry> <varlistentry> - <term><makevar>DOCDIR</makevar></term> + <term><varname>DOCDIR</varname></term> <listitem> <para>Where to install the documentation. It defaults to - <filename - class="directory">/usr/share/doc</filename>.</para> + <filename>/usr/share/doc</filename>.</para> </listitem> </varlistentry> </variablelist> @@ -948,21 +899,20 @@ Fetching 133 new ports or files... done.</screen> <para>For more <command>make</command> variables supported by the build system of the &os; documentation, refer to the - <ulink url="&url.doc.langbase;/books/fdp-primer">&os; + <link xlink:href="&url.doc.langbase;/books/fdp-primer">&os; Documentation Project Primer for New - Contributors</ulink>.</para> + Contributors</link>.</para> </sect2> - <sect2 id="updating-installed-documentation"> + <sect2 xml:id="updating-installed-documentation"> <title>Installing the &os; Documentation from Source</title> <para>Once an up-to-date snapshot of the documentation sources - has been fetched to <filename - class="directory">/usr/doc</filename>, everything is + has been fetched to <filename>/usr/doc</filename>, everything is ready for an update of the installed documentation.</para> <para>A full update of all the languages defined in - <makevar>DOC_LANG</makevar> may be performed by typing:</para> + <varname>DOC_LANG</varname> may be performed by typing:</para> <screen>&prompt.root; <userinput>cd /usr/doc</userinput> &prompt.root; <userinput>make install clean</userinput></screen> @@ -970,35 +920,30 @@ Fetching 133 new ports or files... done.</screen> <para>If an update of only a specific language is desired, &man.make.1; can be invoked in a language specific subdirectory of - <filename class="directory">/usr/doc</filename>:</para> + <filename>/usr/doc</filename>:</para> <screen>&prompt.root; <userinput>cd /usr/doc/en_US.ISO8859-1</userinput> &prompt.root; <userinput>make update install clean</userinput></screen> <para>The output formats that will be installed may be specified - by setting <makevar>FORMATS</makevar>:</para> + by setting <varname>FORMATS</varname>:</para> <screen>&prompt.root; <userinput>cd /usr/doc</userinput> &prompt.root; <userinput>make FORMATS='html html-split' install clean</userinput></screen> <para>For information on editing and submitting corrections to - the documentation, refer to the <ulink - url="&url.books.fdp-primer;">&os; Documentation - Project Primer for New Contributors</ulink>.</para> + the documentation, refer to the <link xlink:href="&url.books.fdp-primer;">&os; Documentation + Project Primer for New Contributors</link>.</para> </sect2> - <sect2 id="doc-ports"> - <sect2info> + <sect2 xml:id="doc-ports"> + <info><title>Using Documentation Ports</title> <authorgroup> - <author> - <firstname>Marc</firstname> - <surname>Fonvieille</surname> - <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> - </sect2info> + </info> - <title>Using Documentation Ports</title> + <indexterm><primary>Updating and Upgrading</primary></indexterm> @@ -1035,11 +980,10 @@ Fetching 133 new ports or files... done.</screen> supported by a set of <emphasis>documentation ports</emphasis>, updated by the &a.doceng; on a monthly basis. These are listed in the &os; Ports Collection, - under the <ulink - url="http://www.freshports.org/docs/">docs</ulink> + under the <link xlink:href="http://www.freshports.org/docs/">docs</link> category.</para> - <sect3 id="doc-ports-install-make"> + <sect3 xml:id="doc-ports-install-make"> <title>Building and Installing Documentation Ports</title> <para>The documentation ports use the ports building framework @@ -1062,39 +1006,34 @@ Fetching 133 new ports or files... done.</screen> <itemizedlist> <listitem> - <para>The <quote>master port</quote>, <filename - role="package">misc/freebsd-doc-en</filename>, + <para>The <quote>master port</quote>, <package>misc/freebsd-doc-en</package>, which installs all of the English documentation ports.</para> </listitem> <listitem> - <para>The <quote>all in one port</quote>, <filename - role="package">misc/freebsd-doc-all</filename>, + <para>The <quote>all in one port</quote>, <package>misc/freebsd-doc-all</package>, builds and installs all documentation in all available languages.</para> </listitem> <listitem> <para>There is a <quote>slave port</quote> for each - translation, such as <filename - role="package">misc/freebsd-doc-hu</filename> for the + translation, such as <package>misc/freebsd-doc-hu</package> for the Hungarian-language documents.</para> </listitem> </itemizedlist> <para>For example, to build and install the English documentation in split <acronym>HTML</acronym> format, - similar to the format used on <ulink - url="http://www.FreeBSD.org"></ulink>, to - <filename - class="directory">/usr/local/share/doc/freebsd</filename>, + similar to the format used on <uri xlink:href="http://www.FreeBSD.org">http://www.FreeBSD.org</uri>, to + <filename>/usr/local/share/doc/freebsd</filename>, install the following port</para> <screen>&prompt.root; <userinput>cd /usr/ports/misc/freebsd-doc-en</userinput> &prompt.root; <userinput>make install clean</userinput></screen> - <sect4 id="doc-ports-options"> + <sect4 xml:id="doc-ports-options"> <title>Common Knobs and Options</title> <para>There are many options for modifying the default @@ -1102,7 +1041,7 @@ Fetching 133 new ports or files... done.</screen> <variablelist> <varlistentry> - <term><makevar>WITH_HTML</makevar></term> + <term><varname>WITH_HTML</varname></term> <listitem> <para>Builds the HTML format with a single HTML file @@ -1114,7 +1053,7 @@ Fetching 133 new ports or files... done.</screen> </varlistentry> <varlistentry> - <term><makevar>WITH_PDF</makevar></term> + <term><varname>WITH_PDF</varname></term> <listitem> <para>Builds the &adobe; Portable Document Format @@ -1126,20 +1065,19 @@ Fetching 133 new ports or files... done.</screen> </varlistentry> <varlistentry> - <term><makevar>DOCBASE</makevar></term> + <term><varname>DOCBASE</varname></term> <listitem> <para>Specifies where to install the documentation. - It defaults to <filename - class="directory">/usr/local/share/doc/freebsd</filename>.</para> + It defaults to <filename>/usr/local/share/doc/freebsd</filename>.</para> <note> <para>The default target directory differs from the directory used <application>svn</application>. This is because ports are usually installed within - <filename class="directory">/usr/local</filename>. + <filename>/usr/local</filename>. This can be overridden by using - <makevar>PREFIX</makevar>.</para> + <varname>PREFIX</varname>.</para> </note> </listitem> </varlistentry> @@ -1153,7 +1091,7 @@ Fetching 133 new ports or files... done.</screen> </sect4> </sect3> - <sect3 id="doc-ports-install-package"> + <sect3 xml:id="doc-ports-install-package"> <title>Using Documentation Packages</title> <para>Building the documentation ports from source, as @@ -1185,7 +1123,7 @@ Fetching 133 new ports or files... done.</screen> <note> <para>Packages use a format that differs from the corresponding port's name: - <literal><replaceable>lang</replaceable>-freebsd-doc</literal>, + <literal>lang-freebsd-doc</literal>, where <replaceable>lang</replaceable> is the short format of the language code, such as <literal>hu</literal> for Hungarian, or <literal>zh_cn</literal> for Simplified @@ -1193,13 +1131,13 @@ Fetching 133 new ports or files... done.</screen> </note> </sect3> - <sect3 id="doc-ports-update"> + <sect3 xml:id="doc-ports-update"> <title>Updating Documentation Ports</title> <para>Documentation ports can be updated like any other port. For example, the following command updates the installed Hungarian documentation using - <filename role="package">ports-mgmt/portmaster</filename> + <package>ports-mgmt/portmaster</package> by using packages only:</para> <screen>&prompt.root; <userinput>portmaster -PP hu-freebsd-doc</userinput></screen> @@ -1207,7 +1145,7 @@ Fetching 133 new ports or files... done.</screen> </sect2> </sect1> - <sect1 id="current-stable"> + <sect1 xml:id="current-stable"> <title>Tracking a Development Branch</title> <indexterm><primary>-CURRENT</primary></indexterm> @@ -1219,7 +1157,7 @@ Fetching 133 new ports or files... done.</screen> respective tree. &os.current; will be discussed first, then &os.stable;.</para> - <sect2 id="current"> + <sect2 xml:id="current"> <title>Staying Current with &os;</title> <para>&os.current; is the <quote>bleeding edge</quote> of &os; @@ -1334,8 +1272,7 @@ Fetching 133 new ports or files... done.</screen> <orderedlist> <listitem> - <para>Use <link - linkend="svn">svn</link><indexterm> + <para>Use <link linkend="svn">svn</link><indexterm> <primary>Subversion</primary> </indexterm> <indexterm> @@ -1347,25 +1284,22 @@ Fetching 133 new ports or files... done.</screen> branch. This is the recommended method, providing access to &os; development as it occurs. Checkout 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, it is recommended that only desired subtrees be checked out.</para> </listitem> <listitem> - <para>Use the <application><link - linkend="ctm">CTM</link></application><indexterm> + <para>Use the <application>CTM</application><indexterm> <primary>-CURRENT</primary> <secondary>Syncing with CTM</secondary> </indexterm> facility. If you have bad connectivity such as high price connections or only email access, <application>CTM</application> is an option, but it is not as reliable as <application> - <link linkend="svn">Subversion</link></application>. - For this reason, <application><link - linkend="svn">Subversion</link></application> + Subversion</application>. + For this reason, <application>Subversion</application> is the recommended method for any system with Internet connectivity.</para> </listitem> @@ -1405,7 +1339,7 @@ Fetching 133 new ports or files... done.</screen> </sect3> </sect2> - <sect2 id="stable"> + <sect2 xml:id="stable"> <title>Staying Stable with &os;</title> <sect3> @@ -1440,8 +1374,7 @@ Fetching 133 new ports or files... done.</screen> <footnote> <para>For a complete description of the current security - policy for old releases of FreeBSD, refer to <ulink - url="&url.base;/security/">http://www.FreeBSD.org/security/</ulink>.</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 all times, this cannot be guaranteed. While code is @@ -1498,11 +1431,9 @@ Fetching 133 new ports or files... done.</screen> <listitem> <para>To install a new system running monthly - snapshots built from &os.stable;, refer to <ulink - url="&url.base;/snapshots/">Snapshots</ulink> for more + snapshots built from &os.stable;, refer to <link xlink:href="&url.base;/snapshots/">Snapshots</link> for more information. Alternatively, it is possible to install - the most recent &os.stable; release from the <link - linkend="mirrors">mirror sites</link> and follow the + 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> @@ -1520,8 +1451,8 @@ Fetching 133 new ports or files... done.</screen> providing access to &os; development as it occurs. Branch names include <literal>head</literal> for the current development head, and branches identified in - <ulink url="&url.base;/releng/">the release - engineering page</ulink>, such as + <link xlink:href="&url.base;/releng/">the release + engineering page</link>, such as <literal>stable/9</literal><indexterm> <primary>-STABLE</primary> <secondary>syncing with @@ -1529,8 +1460,7 @@ Fetching 133 new ports or files... done.</screen> </indexterm> or <literal>releng/9.2</literal>. URL prefixes for <application>Subversion</application> checkout of - the base system are shown in <link - linkend="svn-mirrors">Subversion mirror + the base system are shown in <link linkend="svn-mirrors">Subversion mirror sites</link>. Because of the size of the repository, it is recommended that only desired subtrees be checked @@ -1538,8 +1468,7 @@ Fetching 133 new ports or files... done.</screen> </listitem> <listitem> - <para>Consider using <application><link - linkend="ctm">CTM</link></application><indexterm> + <para>Consider using <application>CTM</application><indexterm> <primary>-STABLE</primary> <secondary>syncing with CTM</secondary> </indexterm> if you do not have a fast connection to @@ -1567,14 +1496,12 @@ Fetching 133 new ports or files... done.</screen> </sect2> </sect1> - <sect1 id="synching"> + <sect1 xml:id="synching"> <title>Synchronizing Source</title> <para>There are various ways of using an Internet or email 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> <para>While it is possible to update only parts of the source @@ -1629,7 +1556,7 @@ Fetching 133 new ports or files... done.</screen> it all with <application>CTM</application>.</para> </sect1> - <sect1 id="makeworld"> + <sect1 xml:id="makeworld"> <title>Rebuilding <quote>world</quote></title> <indexterm> @@ -1689,7 +1616,7 @@ Fetching 133 new ports or files... done.</screen> used instead.</para> </warning> - <sect2 id="canonical-build"> + <sect2 xml:id="canonical-build"> <title>The Canonical Way to Update Your System</title> <para>Before updating the system, read @@ -1739,10 +1666,10 @@ Fetching 133 new ports or files... done.</screen> </itemizedlist> <para>These first two issues are the basis for the - core <maketarget>buildworld</maketarget>, - <maketarget>buildkernel</maketarget>, - <maketarget>installkernel</maketarget>, - <maketarget>installworld</maketarget> sequence described in + core <buildtarget>buildworld</buildtarget>, + <buildtarget>buildkernel</buildtarget>, + <buildtarget>installkernel</buildtarget>, + <buildtarget>installworld</buildtarget> sequence described in the following paragraphs. Other reasons for using these steps are listed below:</para> @@ -1778,27 +1705,26 @@ Fetching 133 new ports or files... done.</screen> <orderedlist> <listitem> <para><command>make - <maketarget>buildworld</maketarget></command></para> + buildworld</command></para> <para>This first compiles the new compiler and a few related tools, then uses the new compiler to compile the rest of the new world. The result ends up in - <filename class="directory">/usr/obj</filename>.</para> + <filename>/usr/obj</filename>.</para> </listitem> <listitem> <para><command>make - <maketarget>buildkernel</maketarget></command></para> + buildkernel</command></para> <para>This uses the <emphasis>new</emphasis> compiler - residing in <filename - class="directory">/usr/obj</filename> in order to + residing in <filename>/usr/obj</filename> in order to protect against compiler-kernel mismatches.</para> </listitem> <listitem> <para><command>make - <maketarget>installkernel</maketarget></command></para> + installkernel</command></para> <para>Place the new kernel and kernel modules onto the disk, making it possible to boot with the newly updated @@ -1816,7 +1742,7 @@ Fetching 133 new ports or files... done.</screen> <listitem> <para><command>mergemaster - <option>-p</option></command></para> + -p</command></para> <para>This does some initial configuration file updates in preparation for the new world. For instance, it may add @@ -1824,17 +1750,17 @@ Fetching 133 new ports or files... done.</screen> password database. This is often necessary when new groups or special system-user accounts have been added since the last update, so that the - <maketarget>installworld</maketarget> step will be able to + <buildtarget>installworld</buildtarget> step will be able to use the newly installed system user or system group names without problems.</para> </listitem> <listitem> <para><command>make - <maketarget>installworld</maketarget></command></para> + installworld</command></para> <para>Copies the world - from <filename class="directory">/usr/obj</filename>. The + from <filename>/usr/obj</filename>. The new kernel and new world are now installed on disk.</para> </listitem> @@ -1847,7 +1773,7 @@ Fetching 133 new ports or files... done.</screen> <listitem> <para><command>make - <maketarget>delete-old</maketarget></command></para> + delete-old</command></para> <para>This target deletes old (obsolete) files. This is important because sometimes they cause problems if left on @@ -1866,7 +1792,7 @@ Fetching 133 new ports or files... done.</screen> <listitem> <para><command>make - <maketarget>delete-old-libs</maketarget></command></para> + delete-old-libs</command></para> <para>Remove any obsolete libraries to avoid conflicts with newer ones. Make sure that all ports have been rebuilt @@ -1879,7 +1805,7 @@ Fetching 133 new ports or files... done.</screen> 9.1, may not need this procedure since it is less likely to run into serious mismatches between compiler, kernel, userland, and configuration files. The approach of - <command>make <maketarget>world</maketarget></command> + <command>make world</command> followed by building and installing a new kernel might work well enough for minor updates.</para> @@ -1910,13 +1836,13 @@ Fetching 133 new ports or files... done.</screen> <note> <para>There are a few rare cases when an extra run of <command>mergemaster -p</command> is needed before the - <maketarget>buildworld</maketarget> step. These are + <buildtarget>buildworld</buildtarget> step. These are described in <filename>UPDATING</filename>. In general, though, this step can safely be omitted when not updating across one or more major &os; versions.</para> </note> - <para>After <maketarget>installkernel</maketarget> finishes + <para>After <buildtarget>installkernel</buildtarget> finishes successfully, boot into single user mode using <command>boot -s</command> from the loader prompt.</para> @@ -1950,7 +1876,7 @@ Fetching 133 new ports or files... done.</screen> </warning> </sect2> - <sect2 id="src-updating"> + <sect2 xml:id="src-updating"> <title>Read <filename>/usr/src/UPDATING</filename></title> <para>Before updating, read @@ -1969,7 +1895,7 @@ Fetching 133 new ports or files... done.</screen> </important> </sect2> - <sect2 id="make-conf"> + <sect2 xml:id="make-conf"> <title>Check <filename>/etc/make.conf</filename></title> <indexterm> @@ -1992,7 +1918,7 @@ Fetching 133 new ports or files... done.</screen> programs, or building the &os; operating system.</para> </sect2> - <sect2 id="src-conf"> + <sect2 xml:id="src-conf"> <title>Check <filename>/etc/src.conf</filename></title> <indexterm> @@ -2010,10 +1936,10 @@ Fetching 133 new ports or files... done.</screen> are unexpected or subtle interactions.</para> </sect2> - <sect2 id="updating-etc"> + <sect2 xml:id="updating-etc"> <title>Update the Files in <filename>/etc</filename></title> - <para><filename class="directory">/etc</filename> contains a + <para><filename>/etc</filename> contains a large part of the system's configuration information, as well as scripts that are run at system startup. Some of these scripts change between &os; versions.</para> @@ -2032,14 +1958,14 @@ Fetching 133 new ports or files... done.</screen> <para>The solution is to run &man.mergemaster.8; in pre-buildworld mode with <option>-p</option>. This compares only those files that are essential for the success of - <maketarget>buildworld</maketarget> or - <maketarget>installworld</maketarget>.</para> + <buildtarget>buildworld</buildtarget> or + <buildtarget>installworld</buildtarget>.</para> <tip> <para>To check which files are owned by the group being renamed or deleted:</para> - <screen>&prompt.root; <userinput>find / -group <replaceable>GID</replaceable> -print</userinput></screen> + <screen>&prompt.root; <userinput>find / -group GID -print</userinput></screen> <para>This command will show all files owned by group <replaceable>GID</replaceable>, which can be either a group @@ -2047,7 +1973,7 @@ Fetching 133 new ports or files... done.</screen> </tip> </sect2> - <sect2 id="makeworld-singleuser"> + <sect2 xml:id="makeworld-singleuser"> <title>Drop to Single User Mode</title> <indexterm><primary>single-user mode</primary></indexterm> @@ -2064,8 +1990,8 @@ Fetching 133 new ports or files... done.</screen> mode, and then drop into single user mode for the installation. With this method, hold off on the following steps until the build has completed. Drop to single user mode - in order to run <maketarget>installkernel</maketarget> or - <maketarget>installworld</maketarget>.</para> + in order to run <buildtarget>installkernel</buildtarget> or + <buildtarget>installworld</buildtarget>.</para> <para>To enter single user mode from a running system:</para> @@ -2098,7 +2024,7 @@ Fetching 133 new ports or files... done.</screen> </note> </sect2> - <sect2 id="cleaning-usr-obj"> + <sect2 xml:id="cleaning-usr-obj"> <title>Remove <filename>/usr/obj</filename></title> <para>As parts of the system are rebuilt, they are, by default, @@ -2119,7 +2045,7 @@ Fetching 133 new ports or files... done.</screen> &prompt.root; <userinput>rm -rf *</userinput></screen> </sect2> - <sect2 id="updating-upgrading-compilebase"> + <sect2 xml:id="updating-upgrading-compilebase"> <title>Recompile the Base System</title> <sect3> @@ -2144,17 +2070,16 @@ Script started, output file is /var/tmp/mw.out &prompt.root; <userinput>exit</userinput> Script done, …</screen> - <para><emphasis>Do not</emphasis> save the output in <filename - class="directory">/tmp</filename> as this directory may be + <para><emphasis>Do not</emphasis> save the output in <filename>/tmp</filename> as this directory may be cleared at next reboot. A better place to save the file is - <filename class="directory">/var/tmp</filename> or in - <username>root</username>'s home directory.</para> + <filename>/var/tmp</filename> or in + <systemitem class="username">root</systemitem>'s home directory.</para> </sect3> - <sect3 id="make-buildworld"> + <sect3 xml:id="make-buildworld"> <title>Compile the Base System</title> - <para>While in <filename class="directory">/usr/src</filename> + <para>While in <filename>/usr/src</filename> type:</para> <screen>&prompt.root; <userinput>cd /usr/src</userinput></screen> @@ -2168,7 +2093,7 @@ Script done, …</screen> <para>The general format of the command is as follows:</para> - <screen>&prompt.root; <userinput>make -<replaceable>x</replaceable> -D<replaceable>VARIABLE</replaceable> <replaceable>target</replaceable></userinput></screen> + <screen>&prompt.root; <userinput>make -x -DVARIABLE target</userinput></screen> <para>In this example, <option>-<replaceable>x</replaceable></option> is an option @@ -2182,7 +2107,7 @@ Script done, …</screen> in <filename>/etc/make.conf</filename>, and this provides another way of setting them. For example:</para> - <screen>&prompt.root; <userinput>make -DNO_PROFILE <replaceable>target</replaceable></userinput></screen> + <screen>&prompt.root; <userinput>make -DNO_PROFILE target</userinput></screen> <para>is another way of specifying that profiled libraries should not be built, and corresponds with the</para> @@ -2204,41 +2129,41 @@ Script done, …</screen> <para>Most of the time, no parameters need to be passed to &man.make.1; and the command looks like this:</para> - <screen>&prompt.root; <userinput>make <replaceable>target</replaceable></userinput></screen> + <screen>&prompt.root; <userinput>make target</userinput></screen> <para>Where <replaceable>target</replaceable> is one of many build options. The first target should always be - <makevar>buildworld</makevar>.</para> + <varname>buildworld</varname>.</para> - <para>As the names imply, <maketarget>buildworld</maketarget> + <para>As the names imply, <buildtarget>buildworld</buildtarget> builds a complete new tree under <filename>/usr/obj</filename> and - <maketarget>installworld</maketarget> installs this tree on + <buildtarget>installworld</buildtarget> installs this tree on the current machine.</para> <para>Having separate options is useful for two reasons. First, it allows for a <quote>self hosted</quote> build that does not affect any components of a running system. Because - of this, <maketarget>buildworld</maketarget> can be run on a + of this, <buildtarget>buildworld</buildtarget> can be run on a machine running in multi-user mode with no fear of ill-effects. It is still recommended that - <maketarget>installworld</maketarget> be run in part in + <buildtarget>installworld</buildtarget> be run in part in single user mode, though.</para> <para>Secondly, it allows NFS mounts to be used to upgrade multiple machines on a network. If order to upgrade three - machines, <hostid>A</hostid>, <hostid>B</hostid> and - <hostid>C</hostid>, run <command>make buildworld</command> + machines, <systemitem>A</systemitem>, <systemitem>B</systemitem> and + <systemitem>C</systemitem>, run <command>make buildworld</command> and <command>make installworld</command> on - <hostid>A</hostid>. <hostid>B</hostid> and - <hostid>C</hostid> should then NFS mount + <systemitem>A</systemitem>. <systemitem>B</systemitem> and + <systemitem>C</systemitem> should then NFS mount <filename>/usr/src</filename> and - <filename>/usr/obj</filename> from <hostid>A</hostid>, and + <filename>/usr/obj</filename> from <systemitem>A</systemitem>, and run <command>make installworld</command> to install the - results of the build on <hostid>B</hostid> and - <hostid>C</hostid>.</para> + results of the build on <systemitem>B</systemitem> and + <systemitem>C</systemitem>.</para> - <para>Although the <maketarget>world</maketarget> target still + <para>Although the <buildtarget>world</buildtarget> target still exists, users are strongly encouraged not to use it.</para> <para>Instead, run:</para> @@ -2282,7 +2207,7 @@ Script done, …</screen> </sect3> </sect2> - <sect2 id="new-kernel"> + <sect2 xml:id="new-kernel"> <title>Compile and Install a New Kernel</title> <indexterm> @@ -2313,11 +2238,11 @@ Script done, …</screen> <note> <para>To build a custom kernel with an existing customized configuration file, use - <literal>KERNCONF=<replaceable>MYKERNEL</replaceable></literal>:</para> + <literal>KERNCONF=MYKERNEL</literal>:</para> <screen>&prompt.root; <userinput>cd /usr/src</userinput> -&prompt.root; <userinput>make buildkernel KERNCONF=<replaceable>MYKERNEL</replaceable></userinput> -&prompt.root; <userinput>make installkernel KERNCONF=<replaceable>MYKERNEL</replaceable></userinput></screen> +&prompt.root; <userinput>make buildkernel KERNCONF=MYKERNEL</userinput> +&prompt.root; <userinput>make installkernel KERNCONF=MYKERNEL</userinput></screen> </note> @@ -2325,27 +2250,26 @@ Script done, …</screen> above 1 <emphasis>and</emphasis> <literal>noschg</literal> or similar flags have been set on the kernel binary, drop into single user mode to use - <maketarget>installkernel</maketarget>. Otherwise, both these + <buildtarget>installkernel</buildtarget>. Otherwise, both these commands 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> </sect2> - <sect2 id="new-kernel-singleuser"> + <sect2 xml:id="new-kernel-singleuser"> <title>Reboot into Single User Mode</title> <indexterm><primary>single-user mode</primary></indexterm> <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 id="make-installworld"> + <sect2 xml:id="make-installworld"> <title>Install the New System Binaries</title> - <para>Next, use <maketarget>installworld</maketarget> to install + <para>Next, use <buildtarget>installworld</buildtarget> to install the new system binaries:</para> <screen>&prompt.root; <userinput>cd /usr/src</userinput> @@ -2356,7 +2280,7 @@ Script done, …</screen> <command>make buildworld</command>, specify the same variables to <command>make installworld</command>. However, <option>-j</option> must never be used with - <maketarget>installworld</maketarget>.</para> + <buildtarget>installworld</buildtarget>.</para> <para>For example, if you ran:</para> @@ -2372,14 +2296,14 @@ Script done, …</screen> </note> </sect2> - <sect2 id="post-installworld-updates"> + <sect2 xml:id="post-installworld-updates"> <title>Update Files Not Updated by <command>make installworld</command></title> <para>Remaking the world will not update certain directories, - such as <filename class="directory">/etc</filename>, - <filename class="directory">/var</filename> and - <filename class="directory">/usr</filename>, with + such as <filename>/etc</filename>, + <filename>/var</filename> and + <filename>/usr</filename>, with new or changed configuration files.</para> <para>The simplest way to update the files in these directories @@ -2387,17 +2311,13 @@ Script done, …</screen> of <filename>/etc</filename> in case anything goes wrong.</para> - <sect3 id="mergemaster"> - <sect3info> + <sect3 xml:id="mergemaster"> + <info><title><command>mergemaster</command></title> <authorgroup> - <author> - <firstname>Tom</firstname> - <surname>Rhodes</surname> - <contrib>Contributed by </contrib> - </author> + <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Contributed by </contrib></author> </authorgroup> - </sect3info> - <title><command>mergemaster</command></title> + </info> + <indexterm> <primary> @@ -2407,9 +2327,9 @@ Script done, …</screen> <para>&man.mergemaster.8; is a Bourne script to aid in determining the differences between the configuration files - in <filename class="directory">/etc</filename>, and the + in <filename>/etc</filename>, and the configuration files in the source tree - <filename class="directory">/usr/src/etc</filename>. This + <filename>/usr/src/etc</filename>. This is the recommended solution for keeping the system configuration files up to date with those located in the source tree.</para> @@ -2473,12 +2393,12 @@ Script done, …</screen> <para>To perform the update manually instead, do not just copy over the files from - <filename class="directory">/usr/src/etc</filename> to - <filename class="directory">/etc</filename> and expect it to + <filename>/usr/src/etc</filename> to + <filename>/etc</filename> and expect it to work. Some files must be <quote>installed</quote> first as - <filename class="directory">/usr/src/etc</filename> + <filename>/usr/src/etc</filename> <emphasis>is not</emphasis> a copy of what - <filename class="directory">/etc</filename> should look + <filename>/etc</filename> should look like. In addition, some files that should be in <filename>/etc</filename> are not in <filename>/usr/src/etc</filename>.</para> @@ -2497,7 +2417,7 @@ Script done, …</screen> <filename>/etc</filename></title> <para>It is recommended to first copy the existing - <filename class="directory">/etc</filename> somewhere + <filename>/etc</filename> somewhere safe, like so:</para> <screen>&prompt.root; <userinput>cp -Rp /etc /etc.old</userinput></screen> @@ -2508,7 +2428,7 @@ Script done, …</screen> </warning> <para>Build a temporary set of directories into which the new - <filename class="directory">/etc</filename> and other files + <filename>/etc</filename> and other files can be installed:</para> <screen>&prompt.root; <userinput>mkdir /var/tmp/root</userinput> @@ -2517,8 +2437,7 @@ Script done, …</screen> <para>This will build the necessary directory structure and install the files. A lot of the subdirectories that have - been created under <filename - class="directory">/var/tmp/root</filename> are empty and + been created under <filename>/var/tmp/root</filename> are empty and should be deleted. The simplest way to do this is to:</para> @@ -2530,14 +2449,13 @@ Script done, …</screen> the warnings about the directories that are not empty.</para> - <para><filename class="directory">/var/tmp/root</filename> now + <para><filename>/var/tmp/root</filename> now contains all the files that should be placed in appropriate - locations below <filename class="directory">/</filename>. + locations below <filename>/</filename>. Go through each of these files, determining how they differ from the system's existing files.</para> - <para>Some of the files installed into <filename - class="directory">/var/tmp/root</filename> have a + <para>Some of the files installed into <filename>/var/tmp/root</filename> have a leading <quote>.</quote>. Make sure to use <command>ls -a</command> in order to catch them.</para> @@ -2554,23 +2472,22 @@ Script done, …</screen> <tip> <title>Name the New Root Directory - (<filename class="directory">/var/tmp/root</filename>) + (<filename>/var/tmp/root</filename>) with a Time Stamp, so You Can Easily Compare Differences Between Versions</title> <para>Frequently rebuilding world entails frequently - updating <filename class="directory">/etc</filename> + updating <filename>/etc</filename> as well, which can be a bit of a chore.</para> <para>To speed up this process, use the following procedure to keep a copy of the last set of changed files - that were merged into <filename - class="directory">/etc</filename>.</para> + that were merged into <filename>/etc</filename>.</para> <procedure> <step> <para>Make the world as normal. When updating - <filename class="directory">/etc</filename> and the + <filename>/etc</filename> and the other directories, give the target directory a name based on the current date:</para> @@ -2604,17 +2521,16 @@ Script done, …</screen> &prompt.root; <userinput>diff -r root-20130214 root-20130221</userinput></screen> <para>Typically, this will be a much smaller set of - differences than those between <filename - class="directory">/var/tmp/root-20130221/etc</filename> - and <filename class="directory">/etc</filename>. + differences than those between <filename>/var/tmp/root-20130221/etc</filename> + and <filename>/etc</filename>. Because the set of differences is smaller, it is easier to migrate those changes across into - <filename class="directory">/etc</filename>.</para> + <filename>/etc</filename>.</para> </step> <step> <para>When finished, remove the older of the two - <filename class="directory">/var/tmp/root-*</filename> + <filename>/var/tmp/root-*</filename> directories:</para> <screen>&prompt.root; <userinput>rm -rf /var/tmp/root-20130214</userinput></screen> @@ -2622,8 +2538,7 @@ Script done, …</screen> <step> <para>Repeat this process whenever merging - in changes to <filename - class="directory">/etc</filename>.</para> + in changes to <filename>/etc</filename>.</para> </step> </procedure> @@ -2635,17 +2550,13 @@ Script done, …</screen> </sect3> </sect2> - <sect2 id="make-delete-old"> - <sect2info> + <sect2 xml:id="make-delete-old"> + <info><title>Deleting Obsolete Files and Directories</title> <authorgroup> - <author> - <firstname>Anton</firstname> - <surname>Shterenlikht</surname> - <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> - </sect2info> - <title>Deleting Obsolete Files and Directories</title> + </info> + <indexterm> <primary>Deleting obsolete files and directories</primary> @@ -2669,7 +2580,7 @@ Script done, …</screen> during the system upgrade process.</para> <para>After the - <command>make <maketarget>installworld</maketarget></command> + <command>make installworld</command> and the subsequent <command>mergemaster</command> have finished successfully, check for obsolete files and libraries as follows:</para> @@ -2690,7 +2601,7 @@ Script done, …</screen> <para>A prompt is displayed before deleting each obsolete file. To skip the prompt and let the system remove these files automatically, use - <makevar>BATCH_DELETE_OLD_FILES</makevar>:</para> + <varname>BATCH_DELETE_OLD_FILES</varname>:</para> <screen>&prompt.root; <userinput>make -DBATCH_DELETE_OLD_FILES delete-old</userinput></screen> @@ -2700,7 +2611,7 @@ Script done, …</screen> <screen>&prompt.root; <userinput>yes|make delete-old</userinput></screen> </sect2> - <sect2 id="updating-upgrading-rebooting"> + <sect2 xml:id="updating-upgrading-rebooting"> <title>Rebooting</title> <para>Verify that everything appears to be in the right place, @@ -2709,7 +2620,7 @@ Script done, …</screen> <screen>&prompt.root; <userinput>shutdown -r now</userinput></screen> </sect2> - <sect2 id="make-delete-old-libs"> + <sect2 xml:id="make-delete-old-libs"> <title>Deleting obsolete libraries</title> <warning> @@ -2720,15 +2631,14 @@ Script done, …</screen> true for old libraries. In most cases, the programs, ports, or libraries that used the old library need to be recompiled before <command>make - <maketarget>delete-old-libs</maketarget></command> is + delete-old-libs</command> is executed.</para> </warning> <para>Utilities for checking shared library dependencies are available from the Ports Collection in - <filename role="package">sysutils/libchk</filename> or - <filename - role="package">sysutils/bsdadminscripts</filename>.</para> + <package>sysutils/libchk</package> or + <package>sysutils/bsdadminscripts</package>.</para> <para>Obsolete shared libraries can conflict with newer libraries, causing messages like these:</para> @@ -2745,7 +2655,7 @@ Script done, …</screen> /usr/local/lib/libXext.so was installed by package libXext-1.1.1,1</screen> <para>Then deinstall, rebuild and reinstall the port. - <filename role="package">ports-mgmt/portmaster</filename> can + <package>ports-mgmt/portmaster</package> can be used to automate this process. After all ports are rebuilt and no longer use the old libraries, delete the old libraries using the following command:</para> @@ -2758,15 +2668,14 @@ Script done, …</screen> <para>If things went slightly wrong, it is easy to rebuild a particular piece of the system. For example, if <filename>/etc/magic</filename> was accidentally deleted as - part of the upgrade or merge of <filename - class="directory">/etc</filename>, &man.file.1; will stop + part of the upgrade or merge of <filename>/etc</filename>, &man.file.1; will stop working. To fix this, run:</para> <screen>&prompt.root; <userinput>cd /usr/src/usr.bin/file</userinput> &prompt.root; <userinput>make all install</userinput></screen> </sect2> - <sect2 id="updating-questions"> + <sect2 xml:id="updating-questions"> <title>Questions</title> <qandaset> @@ -2836,19 +2745,19 @@ Script done, …</screen> <qandaentry> <question> - <para>Can <filename class="directory">/usr/obj</filename> + <para>Can <filename>/usr/obj</filename> be removed when finished?</para> </question> <answer> <para>The short answer is yes.</para> - <para><filename class="directory">/usr/obj</filename> + <para><filename>/usr/obj</filename> contains all the object files that were produced during the compilation phase. Normally, one of the first steps in the <command>make buildworld</command> process is to remove this directory and start afresh. Keeping - <filename class="directory">/usr/obj</filename> around + <filename>/usr/obj</filename> around when finished makes little sense, and its removal frees up a approximately 2 GB of disk space.</para> @@ -2919,9 +2828,8 @@ Building everything.. </listitem> <listitem> - <para>Put <filename - class="directory">/usr/src</filename> and - <filename class="directory">/usr/obj</filename> + <para>Put <filename>/usr/src</filename> and + <filename>/usr/obj</filename> on separate file systems held on separate disks. If possible, put these disks on separate disk controllers.</para> @@ -2948,7 +2856,7 @@ Building everything.. <listitem> <para>The file system holding - <filename class="directory">/usr/src</filename> can + <filename>/usr/src</filename> can be mounted or remounted with <option>noatime</option>. This prevents the file system from recording the @@ -2958,17 +2866,15 @@ Building everything.. <screen>&prompt.root; <userinput>mount -u -o noatime /usr/src</userinput></screen> <warning> - <para>This example assumes <filename - class="directory">/usr/src</filename> is on its + <para>This example assumes <filename>/usr/src</filename> is on its own file system. If it is part of - <filename class="directory">/usr</filename>, then + <filename>/usr</filename>, then use that file system mount point instead.</para> </warning> </listitem> <listitem> - <para>The file system holding <filename - class="directory">/usr/obj</filename> can be + <para>The file system holding <filename>/usr/obj</filename> can be mounted or remounted with <option>async</option> so that disk writes happen asynchronously. The write completes immediately, and the data is written @@ -2983,8 +2889,7 @@ Building everything.. file system will be in an unrecoverable state when the machine restarts.</para> - <para>If <filename - class="directory">/usr/obj</filename> is the + <para>If <filename>/usr/obj</filename> is the only directory on this file system, this is not a problem. If you have other, valuable data on the same file system, ensure that there are verified @@ -2994,8 +2899,7 @@ Building everything.. <screen>&prompt.root; <userinput>mount -u -o async /usr/obj</userinput></screen> <warning> - <para>If <filename - class="directory">/usr/obj</filename> is + <para>If <filename>/usr/obj</filename> is not on its own file system, replace it in the example with the name of the appropriate mount point.</para> @@ -3036,18 +2940,14 @@ Building everything.. </sect2> </sect1> - <sect1 id="small-lan"> - <sect1info> + <sect1 xml:id="small-lan"> + <info><title>Tracking for Multiple Machines</title> <authorgroup> - <author> - <firstname>Mike</firstname> - <surname>Meyer</surname> - <contrib>Contributed by </contrib> - </author> + <author><personname><firstname>Mike</firstname><surname>Meyer</surname></personname><contrib>Contributed by </contrib></author> </authorgroup> - </sect1info> + </info> - <title>Tracking for Multiple Machines</title> + <indexterm> <primary>NFS</primary> @@ -3061,7 +2961,7 @@ Building everything.. the rest of the machines mount that work via NFS. This section outlines a method of doing so.</para> - <sect2 id="small-lan-preliminaries"> + <sect2 xml:id="small-lan-preliminaries"> <title>Preliminaries</title> <para>First, identify a set of machines which will run the @@ -3080,12 +2980,12 @@ Building everything.. machine, but need not be.</para> <para>All the machines in this build set need to mount - <filename class="directory">/usr/obj</filename> and - <filename class="directory">/usr/src</filename> from the same + <filename>/usr/obj</filename> and + <filename>/usr/src</filename> from the same machine, and at the same point. Ideally, those directories are on two different drives on the build machine, but they can be NFS mounted on that machine as well. For multiple - build sets, <filename class="directory">/usr/src</filename> + build sets, <filename>/usr/src</filename> should be on one build machine, and NFS mounted on the rest.</para> @@ -3095,25 +2995,24 @@ Building everything.. the build machine must build all the parts of the base system that any machine in the build set is going to install. Also, each build machine should have its kernel name set with - <makevar>KERNCONF</makevar> in + <varname>KERNCONF</varname> in <filename>/etc/make.conf</filename>, and the build machine - should list them all in <makevar>KERNCONF</makevar>, listing + should list them all in <varname>KERNCONF</varname>, listing its own kernel first. The build machine must have the kernel configuration files for each machine in - <filename - class="directory">/usr/src/sys/<replaceable>arch</replaceable>/conf</filename> + <filename>/usr/src/sys/arch/conf</filename> if it is going to build their kernels.</para> </sect2> - <sect2 id="small-lan-base-system"> + <sect2 xml:id="small-lan-base-system"> <title>The Base System</title> <para>On the build machine, build the kernel and world as described in <xref linkend="make-buildworld"/>, but do not install anything. After the build has finished, go to the test machine, and install the built kernel. If this machine - mounts <filename class="directory">/usr/src</filename> and - <filename class="directory">/usr/obj</filename> via NFS, + mounts <filename>/usr/src</filename> and + <filename>/usr/obj</filename> via NFS, enable the network and mount these directories after rebooting to single user mode. The easiest way to do this is to boot to multi-user, then run <command>shutdown now</command> to go to @@ -3128,21 +3027,20 @@ Building everything.. set.</para> </sect2> - <sect2 id="small-lan-ports"> + <sect2 xml:id="small-lan-ports"> <title>Ports</title> <para>The same ideas can be used for the ports tree. The first - critical step is to mount <filename - class="directory">/usr/ports</filename> from the same + critical step is to mount <filename>/usr/ports</filename> from the same machine to all the machines in the build set. Then, configure <filename>/etc/make.conf</filename> properly to share - distfiles. Set <makevar>DISTDIR</makevar> to a common shared + distfiles. Set <varname>DISTDIR</varname> to a common shared directory that is writable by whichever user - <username>root</username> is mapped to by the NFS mounts. - Each machine should set <makevar>WRKDIRPREFIX</makevar> to a + <systemitem class="username">root</systemitem> is mapped to by the NFS mounts. + Each machine should set <varname>WRKDIRPREFIX</varname> to a local build directory. Finally, if the system is to build and - distribute packages, set <makevar>PACKAGES</makevar> to a - directory similar to <makevar>DISTDIR</makevar>.</para> + distribute packages, set <varname>PACKAGES</varname> to a + directory similar to <varname>DISTDIR</varname>.</para> </sect2> </sect1> </chapter> |