Page MenuHomeFreeBSD

No OneTemporary

Size
369 KB
Referenced Files
None
Subscribers
None
This file is larger than 256 KB, so syntax highlighting was skipped.
This document is not UTF8. It was detected as ISO-8859-1 (Latin 1) and converted to UTF8 for display.
diff --git a/zh_CN.GB2312/books/handbook/cutting-edge/chapter.sgml b/zh_CN.GB2312/books/handbook/cutting-edge/chapter.sgml
index 90532b12ca..d4b8b315ac 100644
--- a/zh_CN.GB2312/books/handbook/cutting-edge/chapter.sgml
+++ b/zh_CN.GB2312/books/handbook/cutting-edge/chapter.sgml
@@ -1,2749 +1,2749 @@
<!--
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
- Original Revision: 1.246
+ Original Revision: 1.247
$FreeBSD$
-->
<chapter id="updating-upgrading">
<chapterinfo>
<authorgroup>
<author>
<firstname>Jim</firstname>
<surname>Mock</surname>
<contrib>ÖØÐÂ×éÖ¯ºÍ²¿·Ö¸üУ¬ÓÉ</contrib>
</author>
<!-- Mar 2000 -->
</authorgroup>
<authorgroup>
<author>
<firstname>Jordan</firstname>
<surname>Hubbard</surname>
<contrib>Ô­´´£º</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>
</authorgroup>
<authorgroup>
<author>
<firstname>ÕÅ</firstname>
<surname>ѩƽ</surname>
<contrib>ÖÐÎÄ·­Ò룺</contrib>
</author>
</authorgroup>
<!-- with feedback from various others -->
</chapterinfo>
<title>¸üÐÂÓëÉý¼¶ &os;</title>
<sect1 id="updating-upgrading-synopsis">
<title>¸ÅÊö</title>
<para>&os; ÔÚ·¢ÐаæÖ®¼äʼÖÕÊdzÖÐø¿ª·¢µÄ¡£ һЩÈËϲ»¶Ê¹Óùٷ½·¢Ðеİ汾£¬
ÁíһЩϲ»¶Óë×îеĿª·¢±£³Öͬ²½¡£ È»¶ø£¬
¼´Ê¹Êǹٷ½µÄ·¢Ðа汾Ҳ³£³£ÐèÒª°²È«²¹¶¡ºÍÖØ´óÐÞÕý·½ÃæµÄ¸üС£
²»ÂÛÄãʹÓÃÁ˺ÎÖÖ°æ±¾£¬ &os; ¶¼ÌṩÁËËùÓиüÐÂϵͳËùÐèµÄ¹¤¾ß£¬
ÈÃÄãÇáËɵÄÔÚ²»Í¬°æ±¾¼äÉý¼¶¡£
ÕâÒ»Õ½ڽ«°ïÖúÄã¾ö¶¨ÊǸú×Ù¿ª·¢ÏµÍ³»¹ÊǼá³ÖʹÓÃij¸ö·¢Ðеİ汾¡£
ͬʱ»¹ÁгöÁËһЩ±£³Öϵͳ¸üÐÂËùÐèµÄ»ù±¾¹¤¾ß¡£</para>
<para>¶ÁÁ˱¾Õºó£¬Äú½«Á˽⵽£º</para>
<itemizedlist>
<listitem>
<para>ʹÓÃÄÄЩ¹¤¾ßÀ´¸üÐÂϵͳÓë Ports Collection¡£</para>
</listitem>
<listitem>
<para>ÈçºÎʹÓÃ
<application>freebsd-update</application>,
<application>CVSup</application>,
<application>CVS</application>, or
<application>CTM</application>
ÈÃÄãµÄϵͳ±£³Ö¸üС£</para>
</listitem>
<listitem>
<para>ÈçºÎ±È½ÏÒѰ²×°µÄϵͳÓëÔ­À´ÒÑÖª¿½±´µÄ״̬¡£</para>
</listitem>
<listitem>
<para>ÈçºÎʹÓÃ
<application>CVSup</application> »òÕßÎĵµ ports<!-- ºÍ
<application>Docsnap</application>--> À´¸üб¾µØµÄÎĵµ¡£</para>
</listitem>
<listitem>
<para>Á½¸ö¿ª·¢·ÖÖ§ &os.stable; ºÍ &os.current;
µÄÇø±ð¡£</para>
</listitem>
<listitem>
<para>ÈçºÎͨ¹ý <command>make buildworld</command>
ÖØÐ±àÒë°²×°Õû¸ö»ù±¾ÏµÍ³(µÈµÈ)¡£</para>
</listitem>
</itemizedlist>
<para>ÔÚ¶Á±¾ÕÂÕâǰ£¬ÄúÓ¦¸ÃÁ˽âµÄ£º</para>
<itemizedlist>
<listitem><para>ÕýÈ·ÉèÖÃÍøÂçÁ¬½Ó (<xref
linkend="advanced-networking">)¡£</para>
</listitem>
<listitem><para>ÖªµÀÔõÑù°²×°¸½¼ÓµÄµÚÈý·½Èí¼þ(<xref
linkend="ports">)¡£</para></listitem>
</itemizedlist>
<note>
<para>Õû¸öÕâÒ»ÕÂÖУ¬<command>cvsup</command>
ÃüÁî¶¼±»ÓÃÀ´»ñÈ¡ &os; Ô´´úÂëµÄ¸üС£
ÄãÐèÒª°²×°Ò»¸öÏñ
<filename role="package">net/cvsup-without-gui</filename>
ÕâÑùµÄ port »òÕß¶þ½øÖưü¡£
Èç¹ûÄãʹÓõÄÊÇ &os;&nbsp;6.2-RELEASE »òÖ®ºóµÄ°æ±¾£¬
Äã¿ÉÒÔʹÓà &man.csup.1; ´úÌæ£¬
ÏÖÔÚËüÒѾ­ÊÇ»ù±¾ÏµÍ³µÄÒ»²¿·ÖÁË¡£</para>
</note>
</sect1>
<sect1 id="updating-upgrading-freebsdupdate">
<sect1info>
<authorgroup>
<author>
<firstname>Tom</firstname>
<surname>Rhodes</surname>
<contrib>Written by </contrib>
</author>
</authorgroup>
<authorgroup>
<author>
<firstname>Colin</firstname>
<surname>Percival</surname>
<contrib>Based on notes provided by </contrib>
</author>
</authorgroup>
</sect1info>
<title>FreeBSD ¸üÐÂ</title>
<indexterm><primary>Updating and Upgrading</primary></indexterm>
<indexterm>
<primary>freebsd-update</primary>
<see>updating-upgrading</see>
</indexterm>
<para>´ò°²È«²¹¶¡ÊǶÔÓÚά»¤¼ÆËã»úÈí¼þµÄÒ»¸öÖØÒª²¿·Ö£¬
ÌØ±ðÊǶÔÓÚ²Ù×÷ϵͳ¡£¶ÔÓÚ &os; À´Ëµ£¬
ºÜ³¤µÄÒ»¶Îʱ¼äÒÔÀ´Õâ¶¼²»ÊÇÒ»¼þÈÝÒ×µÄÊÂÇé¡£
²¹¶¡´òÔÚÔ´´úÂëÉÏ£¬´úÂëÐèÒª±»ÖØÐ±àÒëΪ¶þ½øÖÆ£¬
È»ºóÔÙÖØÐ°²×°±àÒëºóµÄ³ÌÐò¡£</para>
<para>&os; ÒýÈëÁË <command>freebsd-update</command>
¹¤¾ßÖ®ºóÕâ±ã²»ÔÙÊÇÎÊÌâÁË¡£Õâ¸ö¹¤¾ßÌṩÁË 2 ÖÖ¹¦ÄÜ¡£
µÚÒ»£¬Ëü¿ÉÒ԰Ѷþ½øÖƵݲȫºÍ¿±Îó¸üÐÂÖ±½ÓÓ¦ÓÃÓÚ &os;
µÄ»ù±¾ÏµÍ³£¬¶ø²»ÐèÒªÖØÐ±àÒëºÍ°²×°¡£µÚ¶þ£¬
Õâ¸ö¹¤¾ß»¹Ö§³ÖÖ÷Òª¸ú´ÎÒªµÄ·¢ÐаæµÄÉý¼¶¡£</para>
<note>
<para>Óɰ²È«Ð¡×éÖ§³ÖµÄ¸÷ÖÖÌåϵ½á¹¹ºÍ·¢Ðа涼¿ÉʹÓöþ½øÖƸüС£
È»¶øÓÐÐ©ÌØÐÔ£¬±ÈÈçÉý¼¶ &os; ²Ù×÷ϵͳÐèÒª×î½üµÄ &man.freebsd-update.8;
- ºÍ &os; 6.3¡£ÔÚÉý¼¶µ½Ò»¸öеķ¢Ðа汾֮ǰ£¬
- Ó¦ÏÈÔĶÁһϵ±Ç°·¢ÐаæµÄÉùÃ÷£¬
+ ºÍ &os;&nbsp;6.3 »ò¸ü¸ß°æ±¾¡£
+ ÔÚÉý¼¶µ½Ò»¸öеķ¢Ðа汾֮ǰ£¬ Ó¦ÏÈÔĶÁһϵ±Ç°·¢ÐаæµÄÉùÃ÷£¬
ÒòΪËûÃÇ¿ÉÄܰüº¬ÓйØÓÚÄãÆÚÍûÉý¼¶°æ±¾µÄÖØÒªÏûÏ¢¡£
ÕâЩ·¢ÐÐÉùÃ÷¿ÉÒÔͨ¹ýÒÔÏÂÁ´½Ó²éÔÄ£º
<ulink url="http://www.FreeBSD.org/releases/"></ulink>¡£</para>
</note>
<para>Èç¹û <command>crontab</command> ÖдæÔÚÓÐÓõ½
<command>freebsd-update</command> ÌØÐԵIJ¿·Ö£¬
ÄÇôÕâЩÔÚ¿ªÊ¼ÒÔϲÙ×÷ǰ±ØÐëÏȱ»½ûÖ¹¡£</para>
<sect2 id="freebsdupdate-config-file">
<title>ÅäÖÃÎļþ</title>
<para>ÓÐЩÓû§¿ÉÄÜÏ£Íûͨ¹ýµ÷ÕûÅäÖÃÎļþ
<filename>/etc/freebsd-update.conf</filename>
ÖеÄĬÈÏÅäÖÃÀ´¸üºÃµØ¿ØÖÆÉý¼¶µÄ¹ý³Ì¡£
¿ÉÓõIJÎÊýÔÚÎĵµÖнéÉܵĺÜÏêϸ£¬
µ«ÏÂÃæµÄÕâЩ¿ÉÄÜÐèÒª½øÒ»²½µÄ½âÊÍ£º</para>
<programlisting># Components of the base system which should be kept updated.
Components src world kernel</programlisting>
<para>Õâ¸ö²ÎÊýÊÇ¿ØÖÆ &os; µÄÄÄÒ»²¿·Ö½«±»±£³Ö¸üС£
ĬÈϵÄÊǸüÐÂÔ´´úÂ룬Õû¸ö»ù±¾ÏµÍ³»¹ÓÐÄںˡ£
ÕâЩ²¿¼þ¸ú°²×°Ê±µÄÄÇЩÏàͬ£¬¾ÙÀýÀ´Ëµ£¬
ÔÚÕâÀï¼ÓÈë ¡°world/games¡± ¾Í»áÔÊÐí´òÈëÓÎÏ·Ïà¹ØµÄ²¹¶¡¡£
ʹÓà ¡°src/bin¡± ÔòÊÇÔÊÐí¸üÐÂ
<filename class="directory">src/bin</filename>
Ŀ¼ÖеÄÔ´´úÂë¡£</para>
<para>×îºÃµÄÑ¡ÔñÊǰÑÕâ¸öÑ¡Ïî±£ÁôΪĬÈÏÖµ£¬
ÒòΪÈç¹ûÒªÐÞ¸ÄËüÈ¥°üº¬Ò»Ð©Ö¸¶¨µÄÑ¡Ï
¾ÍÐèÒªÓû§Áгöÿһ¸öÏëÒª¸üеÄÏîÄ¿¡£
Õâ¿ÉÄÜ»áÒýÆð¿Éŵĺó¹û£¬
ÒòΪ²¿·ÖµÄÔ´´úÂëºÍ¶þ½øÖƳÌÐòµÃ²»µ½Í¬²½¡£</para>
<programlisting># Paths which start with anything matching an entry in an IgnorePaths
# statement will be ignored.
IgnorePaths</programlisting>
<para>Ìí¼Ó·¾¶£¬±ÈÈç
<filename class="directory">/bin</filename> »òÕß
<filename class="directory">/sbin</filename>
ÈÃÕâЩָ¶¨µÄĿ¼ÔÚ¸üйý³ÌÖв»±»Ð޸ġ£
Õâ¸öÑ¡ÏîÄܹ»·ÀÖ¹±¾µØµÄÐ޸ı»
<command>freebsd-update</command> ¸²¸Ç¡£</para>
<programlisting># Paths which start with anything matching an entry in an UpdateIfUnmodified
# statement will only be updated if the contents of the file have not been
# modified by the user (unless changes are merged; see below).
UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile</programlisting>
<para>¸üÐÂÖ¸¶¨Ä¿Â¼ÖеÄδ±»Ð޸ĵÄÅäÖÃÎļþ¡£
Óû§µÄÈκÎÐ޸ͼ»áʹÕâЩÎļþµÄ×Ô¶¯¸üÐÂʧЧ¡£
»¹ÓÐÁíÍâÒ»¸öÑ¡Ï
<literal>KeepModifiedMetadata</literal>£¬
Õâ¸öÄÜÈà <command>freebsd-update</command>
Ôںϲ¢Ê±±£´æÐ޸ġ£</para>
<programlisting># When upgrading to a new &os; release, files which match MergeChanges
# will have any local changes merged into the version from the new release.
MergeChanges /etc/ /var/named/etc/</programlisting>
<para>Ò»¸ö <command>freebsd-update</command>
Ó¦¸Ã³¢ÊԺϲ¢µÄÅäÖÃÎļþµÄÁÐ±í¡£ÎļþºÏ²¢µÄ¹ý³ÌÊÇ
һϵÁÐµÄ &man.diff.1; ²¹¶¡ÀàËÆÓÚ¸üÉÙÑ¡ÏîµÄ &man.mergemaster.8;
ºÏ²¢µÄÑ¡ÏîÊǽÓÊÜ£¬´ò¿ªÒ»¸öÎı¾±à¼­Æ÷£¬»òÕß
<command>freebsd-update</command> »á±»ÖÐÖ¹¡£
ÔÚ²»ÄÜÈ·¶¨µÄʱºò£¬ÇëÏȱ¸·Ý <filename class="directory">/etc</filename>
È»ºó½ÓÊܺϲ¢¡£¸ü¶à¹ØÓÚ <command>mergemaster</command>
µÄÐÅÏ¢Çë²ÎÔÄ <xref linkend="mergemaster">¡£</para>
<programlisting># Directory in which to store downloaded updates and temporary
# files used by &os; Update.
# WorkDir /var/db/freebsd-update</programlisting>
<para>Õâ¸öĿ¼ÊÇ·ÅÖÃËùÓв¹¶¡ºÍÁÙʱÎļþµÄ¡£
Óû§×öÒ»¸ö°æ±¾Éý¼¶µÄ»°£¬ÇëÈ·ÈÏ´Ë´¦ÖÁÉÙÓÐ 1 GB
µÄ¿ÉÓôÅÅ̿ռ䡣</para>
<programlisting># When upgrading between releases, should the list of Components be
# read strictly (StrictComponents yes) or merely as a list of components
# which *might* be installed of which &os; Update should figure out
# which actually are installed and upgrade those (StrictComponents no)?
# StrictComponents no</programlisting>
<para>µ±ÉèÖÃ³É <literal>yes</literal> ʱ£¬
<command>freebsd-update</command> ½«¼ÙÉèÕâ¸ö
<literal>Components</literal> ÁбíʱÍêÕûµÄ£¬
²¢ÇÒ¶Ô´ËÁбíÒÔÍâµÄÏîÄ¿²»»áÐ޸ġ£Êµ¼ÊÉϾÍÊÇ
<command>freebsd-update</command> »á³¢ÊÔ¸üÐÂ
<literal>Componets</literal>
ÁбíÀïµÄÿһ¸öÎļþ¡£</para>
</sect2>
<sect2 id="freebsdupdate-security-patches">
<title>°²È«²¹¶¡</title>
<para>°²È«²¹¶¡´æ´¢ÔÚÔ¶³ÌµÄ»úÆ÷ÉÏ£¬
¿ÉÒÔʹÓÃÈçϵÄÃüÁîÏÂÔØ²¢°²×°£º</para>
<screen>&prompt.root; <userinput>freebsd-update fetch</userinput>
&prompt.root; <userinput>freebsd-update install</userinput></screen>
<para>Èç¹û¸øÄں˴òÁ˲¹¶¡£¬ÄÇôϵͳÐèÒªÖØÐÂÆô¶¯¡£
Èç¹ûÒ»Çж¼½øÕ¹Ë³Àû£¬ÏµÍ³¾ÍÓ¦¸Ã±»´òºÃÁ˲¹¶¡¶øÇÒ
<command>freebsd-update</command> ¿ÉÓÉÒ¹¼ä
&man.cron.8; Ö´ÐС£ÔÚ <filename>/etc/crontab</filename>
ÖмÓÈëÒÔÏÂÌõÄ¿×ãÒÔÍê³ÉÕâÏîÈÎÎñ£º</para>
<programlisting>@daily root freebsd-update cron</programlisting>
<para>ÕâÌõ¼Ç¼ÊÇ˵Ã÷ÿÌìÔËÐÐÒ»´Î
<command>freebsd-update</command> ¹¤¾ß¡£ ÓÃÕâÖÖ·½·¨£¬
ʹÓÃÁË <option>cron</option> ²ÎÊý£¬
<command>freebsd-update</command> ½ö¼ì²éÊÇ·ñ´æÔÚ¸üС£
Èç¹ûÓÐÁËеIJ¹¶¡£¬¾Í»á×Ô¶¯ÏÂÔØµ½±¾µØµÄ´ÅÅÌ£¬
µ«²»»á×Ô¶¯¸øÏµÍ³´òÉÏ¡£<username>root</username>
»áÊÕµ½Ò»·âµç×ÓÓʼþ¸æÖªÐèÊÖ¶¯°²×°²¹¶¡¡£</para>
<para>Èç¹û³öÏÖÁË´íÎ󣬿ÉÒÔʹÓÃÏÂÃæµÄ
<command>freebsd-update</command>
ÃüÁî»ØÍ˵½ÉÏÒ»´ÎµÄÐ޸ģº</para>
<screen>&prompt.root; <userinput>freebsd-update rollback</userinput></screen>
<para>Íê³ÉÒÔºóÈç¹ûÄں˻òÈκεÄÄÚºËÄ£¿é±»Ð޸ĵϰ£¬
¾ÍÐèÒªÖØÐÂÆô¶¯ÏµÍ³¡£Õ⽫ʹ &os;
×°ÔØÐµĶþ½øÖƳÌÐò½øÄÚ´æ¡£</para>
<para><command>freebsd-update</command> ¹¤¾ßÖ»ÄÜ×Ô¶¯¸üР<literal>GENERIC</literal> Äںˡ£
Èç¹ûÄúʹÓÃ×ÔÐÐÁª±àµÄÄںˣ¬ ÔòÔÚ <command>freebsd-update</command>
°²×°Íê¸üÐÂµÄÆäÓಿ·ÖÖ®ºóÐèÒªÊÖ¹¤ÖØÐÂÁª±àºÍ°²×°Äںˡ£ ²»¹ý£¬
<command>freebsd-update</command> »á¼ì²â²¢¸üÐÂλÓÚ <filename
class="directory">/boot/GENERIC</filename> (Èç¹û´æÔÚ) ÖеÄ
<literal>GENERIC</literal> Äںˣ¬ ¼´Ê¹Ëü²»Êǵ±Ç° (ÕýÔÚÔËÐеÄ)
ϵͳµÄÄںˡ£</para>
<note>
<para>±£´æÒ»·Ý <literal>GENERIC</literal> Äں˵ĸ±±¾µ½ <filename
class="directory">/boot/GENERIC</filename> ÊÇÒ»¸öÃ÷ÖǵÄÖ÷Òâ¡£
ÔÚÕï¶ÏÐí¶àÎÊÌ⣬ ÒÔ¼°ÔÚ
<xref linkend="freebsdupdate-upgrade"> ÖнéÉܵÄʹÓÃ
<command>freebsd-update</command> ¸üÐÂϵͳʱ»áºÜÓÐÓá£</para>
</note>
<para>³ý·ÇÐÞ¸ÄλÓÚ
<filename>/etc/freebsd-update.conf</filename> ÖеÄÅäÖã¬
<command>freebsd-update</command> »áËæÆäËû°²×°Ò»Æð¶ÔÄں˵ÄÔ´´úÂë½øÐиüС£
ÖØÐÂÁª±à²¢°²×°¶¨ÖƵÄÄں˿ÉÒÔÒÔͨ³£µÄ·½Ê½À´½øÐС£</para>
<note>
<para>ͨ¹ý <command>freebsd-update</command> ·¢²¼µÄ¸üÐÂÓÐʱ²¢²»»áÉæ¼°Äںˡ£
Èç¹ûÔÚÖ´ÐÐ
<command>freebsd-update install</command> µÄ¹ý³ÌÖÐÄں˴úÂëûÓнøÐб䶯£¬
¾ÍûÓбØÒªÖØÐÂÁª±àÄÚºËÁË¡£ ²»¹ý£¬ ÓÉÓÚ
<command>freebsd-update</command> ÿ´Î¶¼»á¸üÐÂ
<filename>/usr/src/sys/conf/newvers.sh</filename> Îļþ£¬
¶øÐÞ¶©°æ±¾ (<command>uname -r</command> ±¨¸æµÄ
<literal>-p</literal> Êý×Ö) À´×ÔÕâ¸öÎļþ£¬ Òò´Ë£¬
¼´Ê¹ÄÚºËûÓз¢Éú±ä»¯£¬ ÖØÐÂÁª±àÄÚºËÒ²¿ÉÒÔÈà &man.uname.1; ±¨¸æ×¼È·µÄÐÞ¶©°æ±¾¡£
ÔÚά»¤Ðí¶àϵͳʱÕâÑù×ö»á±È½ÏÓаïÖú£¬
ÒòΪÕâÒ»ÐÅÏ¢¿ÉÒÔѸËÙ·´Ó³»úÆ÷Éϰ²×°µÄÈí¼þ¸üÐÂÇé¿ö¡£</para>
</note>
</sect2>
<sect2 id="freebsdupdate-upgrade">
<title>ÖØ´óºÍ´ÎÒªµÄ¸üÐÂ</title>
<para>Õâ¸ö¹ý³Ì»áɾ³ý¾ÉµÄÄ¿±êÎļþºÍ¿â£¬
Õ⽫ʹ´ó²¿·ÖµÄµÚÈý·½Ó¦ÓóÌÐòÎÞ·¨É¾³ý¡£
½¨Ò齫ËùÓа²×°µÄ ports ÏÈɾ³ýÈ»ºóÖØÐ°²×°£¬»òÕßÉÔºóʹÓÃ
<filename role="package">ports-mgmt/portupgrade</filename>
¹¤¾ßÉý¼¶¡£ ´ó¶àÊýÓû§½«»áʹÓÃÈçÏÂÃüÁî³¢ÊÔ±àÒ룺</para>
<screen>&prompt.root; <userinput>portupgrade -af</userinput></screen>
<para>Õ⽫ȷ±£ËùÓеĶ«Î÷¶¼»á±»ÕýÈ·µÄÖØÐ°²×°¡£
Çë×¢Òâ»·¾³±äÁ¿ <makevar>BATCH</makevar> ÉèÖóÉ
<literal>yes</literal> µÄ»°½«ÔÚÕû¸ö¹ý³ÌÖжÔËùÓÐѯÎʻشð
<literal>yes</literal>£¬Õâ»á°ïÖúÔÚ±àÒë¹ý³ÌÖÐÃâÈ¥È˹¤µÄ½éÈë¡£</para>
<para>Èç¹ûÕýÔÚʹÓõÄÊǶ¨ÖƵÄÄںˣ¬ ÔòÉý¼¶²Ù×÷»á¸´ÔÓһЩ¡£
Äú»áÐèÒª½«Ò»·Ý <literal>GENERIC</literal> Äں˵ĸ±±¾·Åµ½ <filename
class="directory">/boot/GENERIC</filename>¡£ Èç¹ûϵͳÖÐûÓÐ
<literal>GENERIC</literal> Äںˣ¬ ¿ÉÒÔÓÃÒÔÏÂÁ½ÖÖ·½·¨Ö®Ò»À´°²×°£º</para>
<itemizedlist>
<listitem>
<para>Èç¹ûÖ»Áª±à¹ýÒ»´ÎÄںˣ¬ ÔòλÓÚ
<filename class="directory">/boot/kernel.old</filename> ÖеÄÄںˣ¬
¾ÍÊÇ <literal>GENERIC</literal> µÄÄÇÒ»¸ö¡£ Ö»Ð轫Õâ¸öĿ¼¸ÄÃûΪ
<filename class="directory">/boot/GENERIC</filename> ¼´¿É¡£</para>
</listitem>
<listitem>
<para>¼ÙÈçÄܹ»Ö±½Ó½Ó´¥»úÆ÷£¬ Ôò¿ÉÒÔͨ¹ý CD-ROM ½éÖÊÀ´°²×° <literal>GENERIC</literal>
Äںˡ£ ½«°²×°Å̲åÈë¹âÇý£¬ ²¢Ö´ÐÐÏÂÁÐÃüÁ</para>
<screen>&prompt.root; <userinput>mount /cdrom</userinput>
&prompt.root; <userinput>cd /cdrom/<replaceable>X.Y-RELEASE</replaceable>/kernels</userinput>
&prompt.root; <userinput>./install.sh GENERIC</userinput></screen>
<para>ÄúÐèÒª½« <filename
class="directory"><replaceable>X.Y-RELEASE</replaceable></filename>
Ìæ»»ÎªÄúÕýÔÚʹÓõİ汾¡£
<literal>GENERIC</literal> ÄÚºËĬÈÏÇé¿öÏ»ᰲװµ½ <filename
class="directory">/boot/GENERIC</filename>¡£</para>
</listitem>
<listitem>
<para>Èç¹ûÇ°ÃæµÄ·½·¨¶¼²»¿ÉÓ㬠»¹¿ÉÒÔʹÓÃÔ´´úÂëÀ´ÖØÐÂÁª±àºÍ°²×° <literal>GENERIC</literal>
Äںˣº</para>
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>env DESTDIR=/boot/GENERIC make kernel</userinput>
&prompt.root; <userinput>mv /boot/GENERIC/boot/kernel/* /boot/GENERIC</userinput>
&prompt.root; <userinput>rm -rf /boot/GENERIC/boot</userinput></screen>
<para>Èç¹ûÏ£Íû <command>freebsd-update</command> Äܹ»ÕýÈ·µØ½«ÄÚºËʶ±ðΪ
<literal>GENERIC</literal>£¬ Äú±ØÐëÈ·±£Ã»ÓжÔ
<literal>GENERIC</literal> ÅäÖÃÎļþ½øÐйýÈκα䶯¡£
´ËÍ⣬ ½¨ÒéÄúÈ¡ÏûÈÎºÎÆäËûÌØÊâµÄ±àÒëÑ¡Ïî (ÀýÈçʹÓÿյÄ
<filename>/etc/make.conf</filename>)¡£</para>
</listitem>
</itemizedlist>
<para>ÉÏÊö²½Öè²¢²»ÐèҪʹÓÃÕâ¸ö <literal>GENERIC</literal> ÄÚºËÀ´Òýµ¼ÏµÍ³¡£</para>
<para>ÖØ´óºÍ´ÎÒªµÄ¸üпÉÒÔÓÉ
<command>freebsd-update</command> ÃüÁîºóÖ¸¶¨Ò»¸ö·¢Ðа汾À´Ö´ÐУ¬
¾ÙÀýÀ´Ëµ£¬ÏÂÃæµÄÃüÁ°ïÖúÄãÉý¼¶µ½ &os;&nbsp;6.4£º</para>
<screen>&prompt.root; <userinput>freebsd-update -r 6.4-RELEASE upgrade</userinput></screen>
<para>ÔÚÕâ¸öÃüÁî±»Ö´Ðкó£¬<command>freebsd-update</command>
½«»áÏȽâÎöÅäÖÃÎļþºÍÆÀ¹Àµ±Ç°µÄϵͳÒÔ»ñµÃ¸üÐÂϵͳËùÐèµÄ±ØÒªÐÅÏ¢¡£
È»ºó±ã»áÏÔʾ³öÒ»¸ö°üº¬ÁËÒѼì²âµ½Óëδ¼ì²âµ½µÄ×é¼þÁÐ±í¡£
ÀýÈ磺</para>
<screen>Looking up update.FreeBSD.org mirrors... 1 mirrors found.
Fetching metadata signature for 6.3-RELEASE from update1.FreeBSD.org... done.
Fetching metadata index... done.
Inspecting system... done.
The following components of FreeBSD seem to be installed:
kernel/smp src/base src/bin src/contrib src/crypto src/etc src/games
src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue
src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin
world/base world/info world/lib32 world/manpages
The following components of FreeBSD do not seem to be installed:
kernel/generic world/catpages world/dict world/doc world/games
world/proflibs
Does this look reasonable (y/n)? y</screen>
<para>´Ëʱ£¬<command>freebsd-update</command>
½«»á³¢ÊÔÏÂÔØËùÓÐÉý¼¶ËùÐèµÄÎļþ¡£ÔÚijЩÇé¿öÏ£¬
Óû§¿ÉÄܱ»Îʼ°Ð谲װЩʲôºÍÈçºÎ½øÐÐÖ®ÀàµÄÎÊÌâ¡£<para>
<para>µ±Ê¹Óö¨ÖÆÄÚºËʱ£¬ Ç°ÃæµÄ²½Öè»á²úÉúÀàËÆÏÂÃæµÄ¾¯¸æ£º</para>
<screen>WARNING: This system is running a "<replaceable>MYKERNEL</replaceable>" kernel, which is not a
kernel configuration distributed as part of FreeBSD 6.3-RELEASE.
This kernel will not be updated: you MUST update the kernel manually
before running "/usr/sbin/freebsd-update install"</screen>
<para>´ËʱÄú¿ÉÒÔÔÝʱ°²È«µØÎÞÊÓÕâ¸ö¾¯¸æ¡£ ¸üеÄ
<literal>GENERIC</literal> Äں˽«ÔÚÉý¼¶¹ý³ÌµÄÖм䲽ÖèÖÐʹÓá£</para>
<para>ÔÚÏÂÔØÍêÕë¶Ô±¾µØÏµÍ³µÄ²¹¶¡Ö®ºó£¬ ÕâЩ²¹¶¡»á±»Ó¦Óõ½ÏµÍ³ÉÏ¡£
Õâ¸ö¹ý³ÌÐèÒªÏûºÄµÄʱ¼äÈ¡¾öÓÚ»úÆ÷µÄËÙ¶ÈºÍÆä¸ºÔØ¡£
Õâ¸ö¹ý³ÌÖн«»á¶ÔÅäÖÃÎļþËù×öµÄ±ä¶¯½øÐкϲ¢ &mdash; ÕâÒ»²¿·ÖÐèÒªÓû§µÄ²ÎÓ룬
Îļþ¿ÉÄÜ»á×Ô¶¯ºÏ²¢£¬ ÆÁÄ»ÉÏÒ²¿ÉÄÜ»á¸ø³öÒ»¸ö±à¼­Æ÷£¬ ÓÃÓÚÊÖ¹¤Íê³ÉºÏ²¢²Ù×÷¡£
ÔÚ´¦Àí¹ý³ÌÖУ¬ ºÏ²¢³É¹¦µÄ½á¹û»áÏÔʾ¸øÓû§¡£ ʧ°Ü»ò±»ºöÂԵĺϲ¢£¬
Ôò»áµ¼ÖÂÕâÒ»¹ý³ÌµÄÖÕÖ¹¡£ Óû§¿ÉÄÜ»áÏ£Íû±¸·ÝÒ»·Ý
<filename class="directory">/etc</filename> ²¢ÔÚÕâÖ®ºóÊÖ¹¤ºÏ²¢ÖØÒªµÄÎļþ£¬
ÀýÈç <filename>master.passwd</filename>
ºÍ <filename>group</filename>¡£</para>
<note>
<para>ϵͳÖÁ´Ë»¹Ã»Óб»Ð޸ģ¬ËùÓеIJ¹¶¡ºÍºÏ²¢¶¼ÔÚÁíÍâÒ»¸öĿ¼ÖнøÐС£
µ±ËùÓеIJ¹¶¡¶¼±»³É¹¦µÄ´òÉÏÁËÒÔºó£¬ËùÓеÄÅäÖÃÎļþ¶¼±»ºÏ²¢ºó£¬
ÎÒÃǾÍÒѾ­Íê³ÉÁËÕû¸öÉý¼¶¹ý³ÌÖÐ×îÀ§ÄѵIJ¿·Ö£¬
ÏÂÃæ¾ÍÐèÒªÓû§À´°²×°ÕâЩ±ä¸üÁË¡£</para>
</note>
<para>Ò»µ©Õâ¸ö²½ÖèÍê³Éºó£¬Ê¹ÓÃÈçϵÄÃüÁÉý¼¶ºóµÄÎļþ°²×°µ½´ÅÅÌÉÏ¡£</para>
<screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
<para>Äں˺ÍÄÚºËÄ£¿é»áÊ×Ïȱ»´òÉϲ¹¶¡¡£ ´Ëʱ±ØÐëÖØÐÂÆô¶¯¼ÆËã»ú¡£
Èç¹ûÄúʹÓõÄÊǶ¨ÖƵÄÄںˣ¬ ÇëʹÓà &man.nextboot.8;
ÃüÁîÀ´½«ÏÂÒ»´ÎÓÃÓÚÒýµ¼ÏµÍ³µÄÄÚºË <filename
class="directory">/boot/GENERIC</filename> (Ëü»á±»¸üÐÂ)£º</para>
<screen>&prompt.root; <userinput>nextboot -k GENERIC</userinput></screen>
<warning>
<para>ÔÚʹÓà <literal>GENERIC</literal> ÄÚºËÆô¶¯Ö®Ç°£¬
ÇëÈ·ÐÅËü°üº¬ÁËÓÃÓÚÒýµ¼ÏµÍ³ËùÐèµÄÈ«²¿Çý¶¯³ÌÐò (Èç¹ûÄúÊÇÔÚÔ¶³Ì½øÐÐÉý¼¶²Ù×÷£¬
»¹Ó¦È·ÐÅÍø¿¨Çý¶¯Ò²ÊÇ´æÔÚµÄ)¡£ ÌØ±ðҪעÒâµÄÇéÐÎÊÇ£¬
Èç¹û֮ǰµÄÄÚºËÖо²Ì¬Áª±àÁËͨ³£ÒÔÄÚºËÄ£¿éÐÎʽ´æÔÚµÄÇý¶¯³ÌÐò£¬ Ò»¶¨ÒªÍ¨¹ý
<filename>/boot/loader.conf</filename> »úÖÆÀ´½«ÕâЩģ¿é¼ÓÔØµ½
<literal>GENERIC</literal> Äں˵Ļù´¡ÉÏ¡£ ´ËÍ⣬
Äú¿ÉÄÜҲϣÍûÁÙʱȡÏû²»ÖØÒªµÄ·þÎñ¡¢
´ÅÅ̺ÍÍøÂç¹ÒÔØµÈµÈ£¬ Ö±µ½Éý¼¶¹ý³ÌÍê³ÉΪֹ¡£</para>
</warning>
<para>ÏÖÔÚ¿ÉÒÔÓøüкóµÄÄÚºËÒýµ¼ÏµÍ³ÁË£º</para>
<screen>&prompt.root; <userinput>shutdown -r now</userinput></screen>
<para>ÔÚÏµÍ³ÖØÐÂÉÏÏߺó£¬ÐèÒªÔÙ´ÎÔËÐÐ <command>freebsd-update</command>¡£
Éý¼¶µÄ״̬±»±£´æ×Å£¬ÕâÑù <command>freebsd-update</command>
¾ÍÎÞÐèÖØÍ·¿ªÊ¼£¬µ«ÊÇ»áɾ³ýËùÓоɵĹ²Ïí¿âºÍÄ¿±êÎļþ¡£
Ö´ÐÐÈçÏÂÃüÁî¼ÌÐøÕâ¸ö½×¶ÎµÄÉý¼¶£º</para>
<screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
<note>
<para>È¡¾öÓëÊÇ·ñÓпâµÄ°æ±¾¸üУ¬Í¨³£Ö»ÓÐ 2 ¸ö¶ø²»ÊÇ
3 ¸ö°²×°½×¶Î¡£</para>
</note>
<para>ÏÖÔÚÐèÒªÖØÐ±àÒëºÍ°²×°µÚÈý·½Èí¼þ¡£
Õâô×öµÄÔ­ÒòÊÇijЩÒѰ²×°µÄÈí¼þ¿ÉÄÜÒÀÀµÓÚÔÚÉý¼¶¹ý³ÌÖÐÒÑɾ³ýµÄ¿â¡£
¿ÉʹÓà <filename role="package">ports-mgmt/portupgrade</filename>
×Ô¶¯»¯Õâ¸ö²½Ö裬ÒÔÈçϵÄÃüÁʼ£º</para>
<screen>&prompt.root; <userinput>portupgrade -f ruby</userinput>
&prompt.root; <userinput>rm /var/db/pkg/pkgdb.db</userinput>
&prompt.root; <userinput>portupgrade -f ruby18-bdb</userinput>
&prompt.root; <userinput>rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db</userinput>
&prompt.root; <userinput>portupgrade -af</userinput></screen>
<para>Ò»µ©Õâ¸öÍê³ÉÁËÒÔºó£¬ÔÙ×îºóÒ»´ÎÔËÐÐ
<command>freebsd-update</command> À´½áÊøÉý¼¶¹ý³Ì¡£
Ö´ÐÐÈçÏÂÃüÁî´¦ÀíÉý¼¶ÖеÄËùÓÐϸ½Ú£º</para>
<screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
<para>Èç¹ûÄúÁÙʱÓùý <literal>GENERIC</literal> ÄÚºËÀ´Òýµ¼ÏµÍ³£¬
ÏÖÔÚÊǰ´ÕÕͨ³£µÄ·½·¨ÖØÐÂÁª±à²¢°²×°ÐµĶ¨ÖÆÄں˵ÄʱºòÁË¡£</para>
<para>ÖØÐÂÆô¶¯»úÆ÷½øÈëа汾µÄ &os; Éý¼¶¹ý³ÌÖÁ´Ë¾ÍÍê³ÉÁË¡£</para>
</sect2>
<sect2 id="freebsdupdate-system-comparison">
<title>ϵͳ״̬¶ÔÕÕ</title>
<para><command>freebsd-update</command>
¹¤¾ßÒ²¿É±»ÓÃÀ´¶Ô×ÅÒ»¸öÒÑÖªÍêºÃµÄ &os; ¿½±´²âÊÔµ±Ç°µÄ°æ±¾¡£
Õâ¸öÑ¡ÏîÆÀ¹Àµ±Ç°µÄϵͳ¹¤¾ß£¬¿âºÍÅäÖÃÎļþ¡£
ʹÓÃÒÔϵÄÃüÁʼ¶ÔÕÕ£º</para>
<screen>&prompt.root; <userinput>freebsd-update IDS &gt;&gt; outfile.ids</userinput></screen>
<warning>
<para>Õâ¸öÃüÁîµÄÃû³ÆÊÇ <acronym>IDS</acronym>£¬
Ëü²¢²»ÊÇÒ»¸öÏñ
<filename role="package">security/snort</filename>
ÕâÑùµÄÈëÇÖ¼ì²âϵͳµÄÌæ´úÆ·¡£ÒòΪ
<command>freebsd-update</command> ÔÚ´ÅÅÌÉÏ´æ´¢Êý¾Ý£¬
ºÜÏÔÈ»ËüÃÇÓб»´Û¸ÄµÄ¿ÉÄÜ¡£
µ±È»Ò²¿ÉÒÔʹÓÃһЩ·½·¨À´½µµÍ±»´Û¸ÄµÄ¿ÉÄÜÐÔ£¬±ÈÈçÉèÖÃ
<varname>kern.securelevel</varname> ºÍ²»Ê¹ÓÃʱ°Ñ
<command>freebsd-update</command>
Êý¾Ý·ÅÔÚÖ»¶ÁÎļþϵͳÉÏ£¬ÀýÈç <acronym>DVD</acronym> »ò
°²È«´æ·ÅµÄÍâÖà <acronym>USB</acronym> ´ÅÅÌÉÏ¡£
</warning>
<para>ÏÖÔÚϵͳ½«»á±»¼ì²é£¬Éú³ÉÒ»·Ý°üº¬ÁËÎļþºÍËüÃÇµÄ &man.sha256.1;
¹þÏ£ÖµµÄÇåµ¥£¬ÒÑÖª·¢ÐаæÖеÄÖµÓ뵱ǰϵͳÖа²×°µÄÖµ½«»á±»´òÓ¡µ½ÆÁÄ»ÉÏ¡£
Õâ¾ÍÊÇΪʲôÊä³ö±»Ë͵½ÁË <filename>outfile.ids</filename> Îļþ¡£
Ëü¹ö¶¯µÄÌ«¿éÎÞ·¨ÓÃÈâÑÛ¶ÔÕÕ£¬¶øÇÒ»áºÜ¿ìÌîÂú¿ØÖÆÌ¨µÄ»º³åÇø¡£</para>
<para>Õâ¸öÎļþÖÐÓзdz£³¤µÄÐУ¬µ«Êä³öµÄ¸ñʽºÜÈÝÒ×·ÖÎö¡£
¾ÙÀýÀ´Ëµ£¬Òª»ñµÃÒ»·ÝÓë·¢ÐаæÖв»Í¬¹þÏ£ÖµµÄÎļþÁÐ±í£¬
ÒÑ¿ÉʹÓÃÈçϵÄÃüÁ</para>
<screen>&prompt.root; <userinput>cat outfile.ids | awk '{ print $1 }' | more</userinput>
/etc/master.passwd
/etc/motd
/etc/passwd
/etc/pf.conf</screen>
<para>Õâ·ÝÊä³öʱɾ½ÚËõ¶ÌºóµÄ£¬ÆäʵÊÇÓиü¶àµÄÎļþ¡£
ÆäÖÐÓÐЩÎļþ²¢·ÇÈËΪÐ޸쬱ÈÈç
<filename>/etc/passwd</filename>
±»ÐÞ¸ÄÊÇÒòΪÌí¼ÓÁËÓû§½øÏµÍ³¡£ÔÚijЩÇé¿öÏ£¬
»¹ÓÐÁíÍâµÄһЩÎļþ£¬ÖîÈçÄÚºËÄ£¿éÓë
<command>freebsd-update</command> µÄ²»Í¬ÊÇÒòΪËüÃDZ»¸üйýÁË¡£
ΪÁËÖ¸¶¨µÄÎļþ»òĿ¼ÅųýÔÚÍ⣬°ÑËüÃǼӵ½
<filename>/etc/freebsd-update.conf</filename> µÄ
<literal>IDSIgnorePaths</literal> Ñ¡ÏîÖС£</para>
<para>³ýÁËÇ°ÃæÌÖÂÛ¹ýµÄ²¿·ÖÖ®Í⣬
ÕâÒ²Äܱ»µ±×÷ÊǶÔÉý¼¶·½·¨µÄÏêϸ²¹³ä¡£</para>
</sect2>
</sect1>
<sect1 id="updating-upgrading-portsnap">
<sect1info>
<authorgroup>
<author>
<firstname>Tom</firstname>
<surname>Rhodes</surname>
<contrib>Written by </contrib>
</author>
</authorgroup>
<authorgroup>
<author>
<firstname>Colin</firstname>
<surname>Percival</surname>
<contrib>Based on notes provided by </contrib>
</author>
</authorgroup>
</sect1info>
<title>Portsnap£º Ò»¸ö Ports Collection ¸üй¤¾ß</title>
<indexterm><primary>Updating and Upgrading</primary></indexterm>
<indexterm>
<primary>Portsnap</primary>
<see>Updating and Upgrading</see>
</indexterm>
<para>&os; »ù±¾ÏµÍ³Ò²°üÀ¨ÁËÒ»¸ö¸üРPorts Collection µÄ¹¤¾ß£º
&man.portsnap.8;¡£ÔÚÔËÐÐÖ®ºó£¬Ëü»áÁ¬ÉÏÒ»¸öÔ¶³ÌÍøÕ¾£¬
УÑ鰲ȫÃÜÔ¿£¬È»ºóÏÂÔØÒ»·Ý Ports Collection µÄ¿½±´¡£
ÃÜÔ¿ÊÇÓÃÀ´Ð£ÑéËùÓÐÏÂÔØÎļþµÄÍêÕûÐÔ£¬È·±£ËüÃÇÔÚ´«ÊäÊÇδ±»Ð޸ġ£
ʹÓÃÒÔϵÄÃüÁîÏÂÔØ×îÐ嵀 Ports Collection£º</para>
<screen>&prompt.root; <userinput>portsnap fetch</userinput>
Looking up portsnap.FreeBSD.org mirrors... 3 mirrors found.
Fetching snapshot tag from portsnap1.FreeBSD.org... done.
Fetching snapshot metadata... done.
Updating from Wed Aug 6 18:00:22 EDT 2008 to Sat Aug 30 20:24:11 EDT 2008.
Fetching 3 metadata patches.. done.
Applying metadata patches... done.
Fetching 3 metadata files... done.
Fetching 90 patches.....10....20....30....40....50....60....70....80....90. done.
Applying patches... done.
Fetching 133 new ports or files... done.</screen>
<para>Õâ¸öÀý×ÓչʾµÄÊÇ &man.portsnap.8;
·¢ÏÖ²¢Ð£ÑéÁ˼¸¸öÓÃÓÚµ±Ç° ports µÄ²¹¶¡¡£Õ⻹±íÃ÷ÒÔǰÔËÐйý£¬
Èç¹ûÊǵÚÒ»´ÎÔËÐеϰ£¬ÄÇô½ö½öÖ»»áÏÂÔØ Ports Collection¡£</para>
<para>ÔÚ &man.portsnap.8; ³É¹¦µØÍê³ÉÒ»´Î
<command>fetch</command> ²Ù×÷Ö®ºó£¬
»á½«Ð£Ñé¹ýµÄ Ports Ì×¼þºÍºóÐøµÄ²¹¶¡±£´æÔÚ±¾µØ¡£
Ê×´ÎÖ´ÐÐ <command>portsnap</command> Ö®ºó£¬
ÐèÒªÓà <literal>extract</literal> À´°²×°Õâ·Ý¿ìÕÕÖеÄÎļþ£º</para>
<screen>&prompt.root; <userinput>portsnap extract</userinput>
/usr/ports/.cvsignore
/usr/ports/CHANGES
/usr/ports/COPYRIGHT
/usr/ports/GIDs
/usr/ports/KNOBS
/usr/ports/LEGAL
/usr/ports/MOVED
/usr/ports/Makefile
/usr/ports/Mk/bsd.apache.mk
/usr/ports/Mk/bsd.autotools.mk
/usr/ports/Mk/bsd.cmake.mk
<replaceable>...</replaceable></screen>
<para>ÒÔºóÔËÐÐ <command>portsnap fetch</command> Ö®ºó£¬ ÔòÖ»ÐèʹÓÃ
<literal>update</literal> °²×°¸üм´¿É£º</para>
<screen>&prompt.root; <userinput>portsnap update</userinput></screen>
<para>ÖÁ´Ë¸üоÍÍê³ÉÁË£¬È»ºó±ã¿ÉÒÔʹÓøüкóµÄ
Ports Collection À´°²×°»òÉý¼¶Ó¦ÓóÌÐò¡£</para>
<para><literal>fetch</literal> ºÍ <literal>extract</literal> »ò
<literal>update</literal> ¿ÉÒÔ×÷ΪÁ¬ÐøµÄ¶¯×÷Ö´ÐУ¬
ÈçÏÂÀýËùʾ£º</para>
<screen>&prompt.root; <userinput>portsnap fetch update</userinput></screen>
</sect1>
<sect1 id="updating-upgrading-documentation">
<title>¸üÐÂϵͳ¸½´øµÄÎĵµ</title>
<indexterm><primary>¸üкÍÉý¼¶</primary></indexterm>
<indexterm>
<primary>Îĵµ</primary>
<see>¸üкÍÉý¼¶</see>
</indexterm>
<para>³ýÁË»ù±¾ÏµÍ³ºÍ Ports Ì×¼þÖ®Í⣬ ÎĵµÒ²ÊÇ &os; ²Ù×÷ϵͳµÄÒ»¸ö×é³É²¿·Ö¡£
¾¡¹ÜÄú×ÜÊÇ¿ÉÒÔͨ¹ý <ulink
url="http://www.freebsd.org/doc/">&os; ÍøÕ¾</ulink> À´·ÃÎÊ×îÐ嵀 &os;
Îĵµ£¬ һЩÓû§µÄÍøÂçÁ¬½Ó¿ÉÄܺÜÂý£¬ ÉõÖÁÍêȫûÓÐÍøÂçÁ¬½Ó¡£
ÐÒÔ˵ÄÊÇ£¬ Óкܶ෽·¨¿ÉÒÔÓÃÀ´¸üÐÂËæ·¢Ðа汾¸½´øµÄ &os; ÎĵµµÄ±¾µØ¸±±¾¡£</para>
<sect2 id="csup-doc">
<title>ʹÓà CVSup À´¸üÐÂÎĵµ</title>
<para>&os; ÎĵµµÄÔ´´úÂëºÍ°²×°°æ±¾¶¼¿ÉÒÔͨ¹ý <application>CVSup</application>
À´ÒÔÓë»ù±¾ÏµÍ³ (²Î¿¼ <xref linkend="makeworld">) ÀàËÆµÄ·½·¨À´Éý¼¶¡£
ÕâÒ»½ÚÖн«»á½éÉÜ£º</para>
<itemizedlist>
<listitem>
<para>ÈçºÎ°²×°Áª±àÎĵµËùÐèµÄ¹¤¾ß¼¯£¬ ÓÃÓÚ´ÓÔ´´úÂëÀ´Áª±à &os;
ÎĵµËùÐèµÄÄÇЩ¹¤¾ß¡£</para>
</listitem>
<listitem>
<para>ÈçºÎʹÓà <application>CVSup</application>
½«ÎĵµÏÂÔØµ½ <filename class="directory">/usr/doc</filename>¡£</para>
</listitem>
<listitem>
<para>ÈçºÎ´ÓÔ´´úÂëÁª±à &os; Îĵµ£¬
²¢½«Æä°²×°µ½ <filename class="directory">/usr/share/doc</filename>¡£</para>
</listitem>
<listitem>
<para>Áª±àÎĵµµÄ¹ý³ÌÖÐÖ§³ÖµÄһЩ±àÒëÑ¡Ï
ÀýÈçÖ»Áª±àijЩÓïÑԵİ汾£¬ »òÖ»Áª±àÌØ¶¨µÄÊä³ö¸ñʽ¡£</para>
</listitem>
</itemizedlist>
</sect2>
<sect2 id="installing-documentation-toolchain">
<title>°²×° CVSup ºÍÎĵµ¹¤¾ß¼¯</title>
<para>´ÓÔ´´úÂëÁª±à &os; ÎĵµÐèÒª´óÁ¿µÄ¹¤¾ß¡£
ÕâЩ¹¤¾ß²¢²»ÊÇ &os; »ù±¾ÏµÍ³µÄÒ»²¿·Ö£¬
ÒòΪÕâЩ¹¤¾ßÐèÒªÕ¼ÓôóÁ¿µÄ´ÅÅ̿ռ䣬
¶øÇÒ²¢²»ÊǶÔËùÓÐ &os; Óû§¶¼ÓÐÓã»
Ö»ÓлîÔ¾µØ×«Ð´ &os; ÐÂÎĵµ£¬
»ò¾­³£´ÓÔ´´úÂë¸üÐÂÎĵµµÄÓû§²ÅÐèÒªÕâЩ¹¤¾ß¡£</para>
<para>È«²¿ËùÐèµÄ¹¤¾ß£¬ ¾ù¿Éͨ¹ý Ports
Ì×¼þÀ´°²×°¡£ <filename
role="package">textproc/docproj</filename> port ÊÇÓÉ
&os; Îĵµ¼Æ»®¿ª·¢µÄ·½±ã°²×°ºÍ¸üÐÂÕâЩ¹¤¾ßµÄÖ÷
port¡£</para>
<note>
<para>Èç¹û²»ÐèÒª &postscript; »ò PDF ÎĵµµÄ»°£¬
Ò²¿ÉÒÔ¿¼Âǰ²×° <filename
role="package">textproc/docproj-nojadetex</filename> port¡£
ÕâÌ×Îĵµ¹¤¾ß¼¯°üº¬³ýÁË <application>teTeX</application>
typesetting ÒýÇæÖ®ÍâµÄÆäËûÈ«²¿¹¤¾ß¡£ <application>teTeX</application>
ÊÇÒ»¸öºÜ´óµÄ¹¤¾ß¼¯£¬ Òò´ËÈç¹û²»ÐèÒª PDF Êä³öµÄ»°£¬
ÅųýËü»á½ÚÊ¡ºÜ¶àʱ¼äºÍ´ÅÅ̿ռ䡣</para>
</note>
<para>ÈçÓûÁË½â¹ØÓÚ°²×°ºÍʹÓÃ
<application>CVSup</application> µÄ½øÒ»²½ÐÅÏ¢£¬ Çë²ÎÔÄ <link
linkend="cvsup">ʹÓà CVSup</link>¡£</para>
</sect2>
<sect2 id="updating-documentation-sources">
<title>¸üÐÂÎĵµÔ´´úÂë</title>
<para><application>CVSup</application> ¹¤¾ßÄܹ»ÏÂÔØÎĵµÔ´´úÂëµÄԭʼ¸±±¾£¬
Äú¿ÉʹÓà <filename>/usr/share/examples/cvsup/doc-supfile</filename>
Îļþ×÷ΪÅäÖÃÄ£°åÀ´Ð޸ġ£ ÔÚ <filename>doc-supfile</filename>
ÖеÄĬÈÏÖ÷»úÃûÊÇÒ»¸öÎÞЧµÄռλÖ÷»úÃû£¬
µ« &man.cvsup.1; Äܹ»Í¨¹ýÃüÁîÐÐÀ´Ö¸¶¨Ö÷»úÃû£¬
Òò´ËÎĵµÔ´´úÂë¿ÉÒÔʹÓÃÏÂÃæµÄÃüÁî´Ó
<application>CVSup</application> ·þÎñÆ÷»ñµÃ£º</para>
<screen>&prompt.root; <userinput>cvsup -h <replaceable>cvsup.FreeBSD.org</replaceable> -g -L 2 <filename>/usr/share/examples/cvsup/doc-supfile</filename></userinput></screen>
<para>ÄúÓ¦½« <replaceable>cvsup.FreeBSD.org</replaceable>
¸ÄΪ×î½üµÄ <application>CVSup</application> ·þÎñÆ÷¡£ ²Î¼û <xref
linkend="cvsup-mirrors"> ¹ØÓÚ¾µÏñÕ¾µãµÄÍêÕûÁÐ±í¡£</para>
<para>³õʼµÄÎĵµÔ´´úÂëÏÂÔØÐèҪһЩʱ¼ä£¬
ÄúÐèÒªÄÍÐĵȴýËüÍê³É¡£</para>
<para>ºóÐøµÄ¸üпÉÒÔÓÃͬÑùµÄÃüÁîÀ´½øÐС£
ÓÉÓÚ <application>CVSup</application> ¹¤¾ßÖ»ÏÂÔØÉÏ´ÎÔËÐÐÖ®ºóËù·¢Éú¹ýµÄ¸üУ¬
Òò´ËÔÚÊ×´ÎÔËÐÐÖ®ºóÔÙÔËÐÐ <application>CVSup</application> Ó¦¸ÃÊǺܿìµÄ¡£</para>
<para>ÔÚÇ©³öÔ´´úÂëÖ®ºó£¬ »¹¿ÉÒÔʹÓÃÁíÒ»ÖÖÓÉ <filename
class="directory">/usr/doc</filename> Ŀ¼ÖеÄ
<filename>Makefile</filename> Ö§³ÖµÄ·½·¨À´¸üÐÂËü¡£ ͨ¹ýÔÚ
<filename>/etc/make.conf</filename> ÖÐÅäÖÃ
<makevar>SUP_UPDATE</makevar>¡¢ <makevar>SUPHOST</makevar> ºÍ
<makevar>DOCSUPFILE</makevar>£¬ ¿ÉÒÔͨ¹ýÔËÐУº</para>
<screen>&prompt.root; <userinput>cd /usr/doc</userinput>
&prompt.root; <userinput>make update</userinput></screen>
<para>À´Íê³É¸üС£ µäÐ굀 <filename>/etc/make.conf</filename>
ÖÐµÄ &man.make.1; Ñ¡ÏîÊÇ£º</para>
<programlisting>SUP_UPDATE= yes
SUPHOST?= cvsup.freebsd.org
DOCSUPFILE?= /usr/share/examples/cvsup/doc-supfile</programlisting>
<note>
<para>½« <makevar>SUPHOST</makevar>
ºÍ <makevar>DOCSUPFILE</makevar> µÄֵʹÓà <literal>?=</literal>
À´Ö¸¶¨µÄºÃ´¦ÊÇʹ make ÃüÁîÐÐÄܹ»¸²¸ÇÕâЩѡÏî¡£
ÔÚÏò <filename>make.conf</filename> ÖÐÔö¼ÓÑ¡ÏîÊ±ÍÆ¼öÕâÑù×ö£¬
ÒÔ±ÜÃâÔÚ²âÊÔʱ·´¸´ÐÞ¸ÄÕâ¸öÎļþ¡£</para>
</note>
</sect2>
<sect2 id="updating-documentation-options">
<title>ÎĵµÔ´´úÂëÖпɵ÷µÄÑ¡Ïî</title>
<para>&os; ÎĵµµÄ¸üкÍÁª±àϵͳ֧³ÖһЩ·½±ãÖ»¸üÐÂÒ»²¿·ÖÎĵµ£¬
»òÖ»Áª±àÌØ¶¨¸ñʽ¼°ÒëÎĵÄÑ¡Ïî¡£
ÕâЩѡÏî¿ÉÒÔÔÚ <filename>/etc/make.conf</filename> ÎļþÖÐÅäÖã¬
Ò²¿ÉÒÔͨ¹ý &man.make.1; ¹¤¾ßÀ´Ö¸¶¨¡£</para>
<para>ÕâЩѡÏî°üÀ¨£º</para>
<variablelist>
<varlistentry>
<term><makevar>DOC_LANG</makevar></term>
<listitem>
<para>×¼±¸Áª±àºÍ°²×°µÄÓïÑÔÁÐ±í¡£
ÀýÈ磬 Ö¸¶¨Îª <literal>en_US.ISO8859-1</literal> ±íʾֻÁª±àÓ¢ÎİæµÄÎĵµ¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><makevar>FORMATS</makevar></term>
<listitem>
<para>×¼±¸Êä³öµÄ¸ñʽÁÐ±í¡£ Ŀǰ£¬
ϵͳ֧³Ö <literal>html</literal>¡¢
<literal>html-split</literal>¡¢ <literal>txt</literal>¡¢
<literal>ps</literal>¡¢ <literal>pdf</literal>¡¢
ºÍ <literal>rtf</literal>¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><makevar>SUPHOST</makevar></term>
<listitem>
<para>ÓÃÓÚÓÃÀ´¸üÐ嵀 <application>CVSup</application>
·þÎñÆ÷µÄÖ÷»úÃû¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><makevar>DOCDIR</makevar></term>
<listitem>
<para>ÓÃÓÚ°²×°ÎĵµµÄĿ¼¡£ ĬÈÏΪ
<filename
class="directory">/usr/share/doc</filename>¡£</para>
</listitem>
</varlistentry>
</variablelist>
<para>ÈçÓûÁ˽â &os; ÖÐÆäËû¿É¹©ÅäÖõÄÈ«¾Ö make ±äÁ¿£¬ Çë²ÎÔÄ &man.make.conf.5;¡£</para>
<para>¹ØÓÚ &os; ÎĵµÁª±àϵͳµÄÆäËûÏêÇ飬 Çë²ÎÔÄ <ulink url="&url.doc.langbase;/books/fdp-primer">&os;
Îĵµ¼Æ»®ÈëÃÅÖ®ÐÂÊֱضÁ²¿·Ö</ulink>¡£</para>
</sect2>
<sect2 id="updating-installed-documentation">
<title>´ÓÔ´´úÂë°²×° &os; Îĵµ</title>
<para>ÔÚ <filename class="directory">/usr/doc</filename>
ÖÐÏÂÔØÁË×îеÄÎĵµÔ´´úÂë¿ìÕÕÖ®ºó£¬
¾Í¿ÉÒÔ¿ªÊ¼¶¯ÊÖÁª±àÎĵµÁË¡£</para>
<para>Òª¸üÐÂÈ«²¿ <makevar>DOC_LANG</makevar> Öж¨ÒåµÄÓïÑÔµÄÎĵµ£¬
ÐèÒªÖ´ÐÐÏÂÃæµÄÃüÁ</para>
<screen>&prompt.root; <userinput>cd /usr/doc</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
<para>Èç¹ûÔÚ <filename>make.conf</filename> ÖÐÅäÖÃÁËÕýÈ·µÄ
<makevar>DOCSUPFILE</makevar>¡¢ <makevar>SUPHOST</makevar>
ºÍ <makevar>SUP_UPDATE</makevar> Ñ¡Ï
Ôò¿ÉÒÔ½«¸üÐÂÔ´´úÂëºÍ°²×°Ò»²½Íê³É£º</para>
<screen>&prompt.root; <userinput>cd /usr/doc</userinput>
&prompt.root; <userinput>make update install clean</userinput></screen>
<para>Èç¹ûÖ»ÐèÒª¸üÐÂij¸öÌØ¶¨ÓïÑÔµÄÎĵµ£¬ ¿ÉÒÔÔÚ
<filename class="directory">/usr/doc</filename> ÖÐÓëÖ®¶ÔÓ¦µÄĿ¼ÖÐÔËÐÐ
&man.make.1;£º</para>
<screen>&prompt.root; <userinput>cd /usr/doc/en_US.ISO8859-1</userinput>
&prompt.root; <userinput>make update install clean</userinput></screen>
<para>´ËÍ⣬ »¹¿ÉÒÔ͸¹ý make ±äÁ¿ <makevar>FORMATS</makevar> À´¿ØÖÆÊä³ö¸ñʽ£¬
ÀýÈ磺</para>
<screen>&prompt.root; <userinput>cd /usr/doc</userinput>
&prompt.root; <userinput>make FORMATS='html html-split' install clean</userinput></screen>
</sect2>
<sect2 id="doc-ports">
<sect2info>
<authorgroup>
<author>
<firstname>Marc</firstname>
<surname>Fonvieille</surname>
<contrib>Ô­×÷£º </contrib>
</author>
</authorgroup>
</sect2info>
<title>ʹÓÃÎĵµ Ports</title>
<indexterm><primary>Updating and Upgrading</primary></indexterm>
<indexterm>
<primary>documentation package</primary>
<see>Updating and Upgrading</see>
</indexterm>
<para>ÔÚ֮ǰµÄÕ½ÚÖУ¬ ÎÒÃÇÒÑչʾÁË´ÓÔ´´úÂë¸üР&os; ÎĵµµÄ·½·¨¡£
»ùÓÚÔ´´úÂëµÄ¸üÐµķ½·¨¿ÉÄܲ¢²»ÊǶÔÓÚËùÓÐµÄ &os; ϵͳ¶¼¿ÉÐÐÓÐЧ¡£
±àÒëÎĵµÔ´´úÂëÐèÒªÒ»´ó¶ÑµÄ¹¤¾ß£¬ <emphasis>Îĵµ¹¤¾ßÁ´</emphasis>£¬
¶ÔÓÚ <application>CVS</application> µÄÒ»¶¨Á˽âºÍ´Ó²Ö¿âÖмì³öÔ´´úÂ룬
»¹ÓÐһЩ±àÒëÒѼì³ö´úÂëµÄÊÖ¹¤²½Öè¡£ ÕâÒ»Õ½ÚÎÒÃǽ«½éÉÜÒ»ÖÖʹÓà Ports
À´¸üÐÂÒѰ²×°µÄ &os; Îĵµ£º</para>
<itemizedlist>
<listitem>
<para>ÏÂÔØ²¢°²×°Ô¤±àÒëºÃµÄÎĵµ¿ìÕÕ£¬ ¶ø²»ÓÃÔÚ±¾µØ±àÒëÈκβ¿·Ý
(ÕâÑù±ã²»ÔÙÐèÒª°²×°Õû¸öÎĵµ¹¤¾ßÁ´ÁË)¡£</para>
</listitem>
<listitem>
<para>ÏÂÔØÎĵµµÄÔ´´úÂ벢ʹÓà ports ¿ò¼Ü±àÒë
(ʹµÃ¼ì³öºÍ±àÒëµÄ²½Öè¸üÈÝÒ×Щ)¡£
</listitem>
</itemizedlist>
<para>ÕâÁ½ÖÖ¸üР&os; ÎĵµµÄ·½·¨¶¼ÓÉÒ»×é &a.doceng; ÿÔ¸üеÄ
<emphasis>Îĵµ ports</emphasis> Ìṩ֧³Ö¡£ ÕâЩ¶¼ÁÐÔÚÁË &os;
Ports <ulink url="http://www.freshports.org/docs/">docs</ulink>
ÐéÄâ·ÖÀàÏÂÃæ¡£</para>
<sect3 id="doc-ports-install-make">
<title>±àÒëºÍ°²×°Îĵµ Ports</title>
<para>Îĵµ ports ʹÓà ports µÄ¹¹½¨¿ò¼ÜʹµÃÎĵµµÄ±àÒë±äµÃ¸ü¼ÓÈÝÒס£
×Ô¶¯»¯Á˼ì³öÎĵµÔ´´úÂ룬 ÅäÒÔÊʺϵĻ·¾³ÉèÖúÍÃüÁîÐвÎÊýÔËÐÐ
&man.make.1;£¬ ËüÃÇʹµÃ°²×°»òÐ¶ÔØÎĵµ±äµÃ¾ÍÏñ°²×° &os; ÆäËû
port »ò¶þ½øÖưüÄÇÑùÈÝÒס£</para>
<note>
<para>ÁíÒ»¸öÌØÐÔ±ãÊǵ±ÔÚ±¾µØ±àÒëÎĵµ ports ʱ£¬
<emphasis>Îĵµ¹¤¾ßÁ´</emphasis> ports »á±»ÁÐÈëÒÀÀµ¹ØÏµ£¬
²¢×Ô¶¯°²×°¡£</para>
</note>
<para>Îĵµ ports °´ÒÔϵķ½Ê½×éÖ¯£º</para>
<itemizedlist>
<listitem>
<para>Ò»¸ö <quote>Ö÷ port</quote>£¬ ÔÚ
<filename role="package">misc/freebsd-doc-en</filename>
Ï¿ÉÒÔÕÒµ½Õâ¸öÎĵµ port¡£ ËüÊÇËùÓÐÎĵµ ports µÄ»ù´¡¡£
ÔÚĬÈϵÄÇé¿öÏ£¬ ËüÖ»°²×°Ó¢ÎİæÎĵµ¡£</para>
</listitem>
<listitem>
<para>Ò»¸ö <quote>ºÏ¼¯ port</quote>£¬
<filename role="package">misc/freebsd-doc-all</filename>£¬
Ëü½«¹¹½¨²¢°²×°ËùÓÐÓïÑÔ°æ±¾µÄËùÓÐÎĵµ¡£</para>
</listitem>
<listitem>
<para>×îºóÊǸ÷ÖÖ·­ÒëµÄ <quote>´ÓÊô port</quote>£¬ ±ÈÈ磺
<filename role="package">misc/freebsd-doc-hu</filename>
ÊÇÐÙÑÀÀûÎİæµÄÎĵµ¡£ ËùÓÐÕâЩ¶¼»ùÓÚÖ÷ port
²¢»á°²×°É϶ÔÓ¦ÓïÑԵķ­ÒëÎĵµ¡£</para>
</listitem>
</itemizedlist>
<para>ÒÔ <username>root</username>
Óû§Éí·ÝÔËÐÐÈçϵÄÃüÁî°²×°Îĵµ£º</para>
<screen>&prompt.root; <userinput>cd /usr/ports/misc/freebsd-doc-en</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
<para>Õ⽫»á°²×°·ÖÕ½ڵÄÓ¢Îİ汾 <acronym>HTML</acronym> ¸ñʽÎĵµ
(Óë<ulink url="http://www.FreeBSD.org"></ulink> ÉϵÄÏàͬ) µ½
<filename class="directory">/usr/local/share/doc/freebsd</filename>
Ŀ¼¡£</para>
<sect4 id="doc-ports-options">
<title>³£¼ûµÄµ÷½ÚÑ¡Ïî</title>
<para>Îĵµ ports ÓÐÐí¶àÓÃÀ´ÐÞ¸ÄĬÈÏÐÐΪµÄÑ¡Ïî¡£
ÒÔÏÂÊÇÒ»¶Î¼òÒªÁÐ±í£º</para>
<variablelist>
<varlistentry>
<term><makevar>WITH_HTML</makevar></term>
<listitem>
<para>ÔÊÐí¹¹½¨ HTML ¸ñʽ£º ÿ·ÝÎĵµÎªÒ»¸öµ¥Ò»µÄ HTML Îļþ¡£
´ËÖÖÎĵµµÄÎļþÃûÊÓÇé¿ö¶ø¶¨Í¨³£ÊÇ
<filename>article.html</filename>£¬
»ò <filename>book.html</filename>£¬
ÁíÍ⸽¼ÓһЩͼƬ¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><makevar>WITH_PDF</makevar></term>
<listitem>
<para>ÔÊÐí¹¹½¨ &adobe; Portable Document Format£¬
¿ÉʹÓà &adobe; &acrobat.reader;£¬
<application>Ghostscript</application> »òÕ߯äËûµÄ
PDF ÔĶÁÆ÷²éÔÄ¡£ ´ËÖÖÎĵµµÄÎļþÃûÊÓÇé¿ö¶ø¶¨Í¨³£ÊÇ
<filename>article.pdf</filename> »ò
<filename>book.pdf</filename>¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><makevar>DOCBASE</makevar></term>
<listitem>
<para>Îĵµ½«±»°²×°µ½µÄĿ¼¡£Ä¬ÈÏÖµ <filename
class="directory">/usr/local/share/doc/freebsd</filename>¡£</para>
<note>
<para>Çë×¢ÒâĬÈϵÄĿ¼Óë <application>CVSup</application>
·½·¨ÖÖËùʹÓõÄĿ¼²»Í¬¡£ ÕâÊÇÒòΪÎÒÃÇÕýÔÚ°²×°µÄÊÇÒ»¸ö port£¬
¶ø ports ͨ³£»á±»°²×°µ½
<filename class="directory">/usr/local</filename> Ŀ¼¡£
Õâ¿ÉÒÔÖ¸¶¨ <makevar>PREFIX</makevar> ±äÁ¿¸²¸ÇĬÈÏÖµ¡£</para>
</note>
</listitem>
</varlistentry>
</variablelist>
<para>ÕâÊÇÒ»·Ý¼ò¶ÌµÄ¹ØÓÚÈçºÎʹÓÃÒÔÉÏÌáµ½±äÁ¿À´°²×°
PDF ¸ñʽµÄÐÙÑÀÀûÎĵµ£º</para>
<screen>&prompt.root; cd /usr/ports/misc/freebsd-doc-hu
&prompt.root; make -DWITH_PDF DOCBASE=share/doc/freebsd/hu install clean</screen>
</sect4>
</sect3>
<sect3 id="doc-ports-install-package">
<title>ʹÓÃÎĵµ Packages</title>
<para>ÕýÈçÉÏÎÄËùÊö£¬ ´Ó ports
¹¹½¨ÎĵµÐèÒªÔÚ±¾µØ°²×°Ò»·ÝÎĵµ¹¤¾ßÁ´ºÍһЩ±àÒëËùÐèµÄ´ÅÅ̿ռ䡣
µ±²»¹»×ÊÔ´°²×°Îĵµ¹¤¾ßÁ´£¬ »òÕß´ÓÔ´´úÂë±àÒëÐèҪ̫¶àµÄ´ÅÅ̿ռäʱ£¬
ÎÒÃÇÈÔÈ»¿ÉÒÔ°²×°Ô¤±àÒëºÃµÄÎĵµ¿ìÕÕµÄ ports¡£</para>
<para>&a.doceng; ÿ¸öÔ¶¼»áÖÆ×÷ &os; Îĵµ¿ìÕյİü¡£
ÕâЩ¶þ½øÖưü¿ÉÒÔͨ¹ý°ü¹¤¾ßÀ´²Ù×÷£¬ ±ÈÈç &man.pkg.add.1;£¬
&man.pkg.delete.1;£¬ µÈµÈ¡£<para>
<note>
<para>µ±Ê¹Óöþ½øÖưüʱ£¬ ½«°²×°ËùÖ¸¶¨ÓïÑÔÏà¹ØµÄ &os; ÎĵµµÄ
<emphasis>ËùÓÐ</emphasis> ¿ÉÓøñʽ¡£</para>
</note>
<para>¾ÙÀýÀ´Ëµ£¬ ÒÔϵÄÃüÁ°²×°×îÐÂÔ¤±àÒëµÄÐÙÑÀÀûÓïÎĵµ£º</para>
<screen>&prompt.root; <userinput>pkg_add -r hu-freebsd-doc</userinput></screen>
<note>
<para>¶þ½øÖưüʹÓÃÁËÒÔÏÂÓë¶ÔÓ¦ ports Ãû³Æ²»Í¬µÄÃüÃû¸ñʽ:
<literal><replaceable>lang</replaceable>-freebsd-doc</literal>¡£
ÕâÀïµÄ <replaceable>lang</replaceable> ÊÇÓïÑÔ´úÂëµÄ¼ò¶ÌÐÎʽ£¬
±ÈÈç <literal>hu</literal> ±íʾÐÙÑÀÀûÓ »òÕß
<literal>zh_cn</literal> ±íʾ¼òÌåÖÐÎÄ¡£</para>
</note>
</sect3>
<sect3 id="doc-ports-update">
<title>¸üÐÂÎĵµ Ports</title>
<para>ÈκÎÓÃÓÚ¸üРports µÄ¹¤¾ß¶¼¿ÉÒÔ±»ÓÃÀ´¸üÐÂÒѰ²×°µÄÎĵµ port¡£
¾ÙÀýÀ´Ëµ£¬ ÏÂÃæµÄÃüÁîͨ¹ý <filename
role="package">ports-mgmt/portupgrade</filename>
¹¤¾ßÀ´¸üÐÂÒѰ²×°µÄÐÙÑÀÀûÓïÎĵµ¶þ½øÖưü¡£
<screen>&prompt.root; <userinput>portupgrade -PP hu-freebsd-doc</userinput></screen>
</sect3>
</sect2>
<!-- FIXME: Waiting for a working docsnap server... -->
<![ IGNORE [
<sect2 id="docsnap">
<sect2info>
<authorgroup>
<author>
<firstname>Pav</firstname>
<surname>Lucistnik</surname>
<contrib>Ô­×÷£º </contrib>
</author>
</authorgroup>
</sect2info>
<title>Using Docsnap</title>
<indexterm><primary>Updating and Upgrading</primary></indexterm>
<indexterm>
<primary>Docsnap</primary>
<see>Updating and Upgrading</see>
</indexterm>
<para><application>Docsnap</application> ÊÇÒ»¸öͨ¹ý &man.rsync.1;
²Ö¿â¸üÐÂÒѰ²×°µÄ &os; Îĵµ¼òµ¥¿ìËٵķ½·¨¡£
һ̨ <quote><application>Docsnap</application> ·þÎñÆ÷</quote>
¸ú×ÙÎĵµÔ­´úÂ룬 ²¢Ã¿¸öСʱ±àÒë×Ô¶¯³É HTML ¸ñʽ¡£ ʹÓÃ
<application>Docsnap</application> ²¢²»ÐèÒª
<filename role="package">textproc/docproj</filename>£¬
ÓеÄÖ»ÊǶÔÒѱàÒëÎĵµÉú³ÉµÄ²¹¶¡¡£</para>
<para>ʹÓÃÕâÏî¼¼ÊõΨһÐèÒªµÄ¾ÍÊÇ
<filename role="package">net/rsync</filename> port
»òÕß¶ÔÓ¦µÄ¶þ½øÖưü¡£ ¿ÉʹÓÃÈçϵÄÃüÁî°²×°£º</para>
<screen>&prompt.root; <userinput>pkg_add -r rsync</userinput></screen>
<note>
<para><application>Docsnap</application> Ô­±¾ÊDZ»ÓÃÀ´¸üа²×°µ½
<filename class="directory">/usr/share/doc</filename>
µÄÎĵµ£¬ µ«ÊÇÒÔϵÄÀý×ÓͬÑùÊÊÓÃÓÚÆäËûµÄĿ¼¡£ ¶ÔÓÚÓû§µÄĿ¼£¬
ÕâÑù¾Í²»ÐèÒª <username>root</username> ȨÏÞÁË¡£</para>
</note>
<para>¸üÐÂÎĵµ£¬ ÔËÐÐÈçϵÄÃüÁ</para>
<screen>&prompt.root; <userinput>rsync -rltvz <replaceable>docsnap.sk.FreeBSD.org</replaceable>::docsnap <replaceable>/usr/share/doc</replaceable></userinput></screen>
<note>
<para>Ŀǰ»¹Ö»ÓÐÉÏÃæËùÏÔʾµÄ <hostid>docsnap.sk.FreeBSD.org</hostid>
Õâһ̨ <application>Docsnap</application> ·þÎñÆ÷¡£</para>
</note>
<para>´Ë´¦²»ÒªÊ¹Óà <option>--delete</option> ±êÖ¾£¬
ÒòΪ»¹ÓÐЩ <command>make installworld</command> ʱ°²×°µ½
<filename class="directory">/usr/share/doc</filename>
ϵÄÎļþ¿ÉÄܻᱻÒâÍâµÄÒÆ³ý¡£ ÇëʹÓÃÈçϵÄÃüÁîÇå³ýÎÞÓõÄÎļþ£º</para>
<screen>&prompt.root; <userinput>rsync -rltvz --delete <replaceable>docsnap.sk.FreeBSD.org</replaceable>::docsnap/??_??\.\* <replaceable>/usr/share/doc</replaceable></userinput></screen>
<para>Èç¹ûÖ»ÐèÉý¼¶ÎĵµµÄijһ×Ó¼¯£¬ ±ÈÈ磬
¿ÉÒÔʹÓÃÈçϵÄÃüÁîÉý¼¶ÎĵµµÄÓ¢ÎIJ¿·Ö£º</para>
<screen>&prompt.root; <userinput>rsync -rltvz <replaceable>docsnap.sk.FreeBSD.org</replaceable>::docsnap/en_US.ISO8859-1 <replaceable>/usr/share/doc</replaceable></userinput></screen>
</sect2>
]]>
</sect1>
<sect1 id="current-stable">
<title>×·×Ù¿ª·¢·ÖÖ§</title>
<indexterm><primary>-CURRENT</primary></indexterm>
<indexterm><primary>-STABLE</primary></indexterm>
<para>FreeBSD ÓÐÁ½¸ö¿ª·¢·ÖÖ§£º &os.current; ºÍ &os.stable;¡£
ÕâÒ»Õ½ڽ«¶Ôÿ¸ö·ÖÖ§×÷ÏàÓ¦½éÉÜÓëÈçºÎ±£³ÖÄãµÄϵͳ¸üС£
ÎÒÃǽ«ÏȽéÉÜ &os.current; È»ºóÊÇ &os.stable;¡£</para>
<sect2 id="current">
<title>ʹÓÃ×îÐ嵀 &os; CURRENT</title>
<para>ÕâÀïÔÙ´ÎÇ¿µ÷£¬ &os.current; ÊÇ &os;
¿ª·¢µÄ <quote>×îÇ°ÑØ</quote>¡£ &os.current;
Óû§ÒªÓнϸߵļ¼ÊõÄÜÁ¦£¬ ²¢ÇÒÓ¦¸ÃÓÐÄÜÁ¦×ÔÒѽâ¾öÀ§ÄѵÄϵͳÎÊÌâ¡£
Èç¹ûÄúÊǸö &os; ÐÂÊÖ£¬ ÄÇôÔÚ°²×°Ö®Ç°×îºÃÈý˼¡£</para>
<sect3>
<title>&os.current; ÊÇʲô£¿</title>
<indexterm><primary>¿ìÕÕ</primary></indexterm>
<para>&os.current; ÊÇ &os; µÄ·¢Õ¹Ç°ÑØ¡£
°üÀ¨ÁËÔÚÏÂÒ»¸ö¹Ù·½·¢ÐеÄÈí¼þÖпÉÄÜ´æÔÚ£¬
Ò²¿ÉÄܲ»´æÔڵķ¢Õ¹¡¢ ÊÔÑéÐԸ͝¡¢ ÒÔ¼°¹ý¶ÉÐԵĻúÖÆ¡£ ¾¡¹ÜÐí¶à
&os; ¿ª·¢ÕßÿÌì¶¼»á±àÒë &os.current; Ô´´úÂ룬
µ«ÓÐʱÕâЩ´úÂëÈÔÈ»»áÊDz»ÄܱàÒëµÄ¡£ ËäÈ»ÕâЩÎÊÌâ»áºÜ¿ì½â¾ö£¬
µ« &os.current; ÊÇ´øÀ´ÆÆ»µ»¹ÊÇÄúÕýÏ£ÍûµÄ¹¦ÄÜÐÔ¸ÄÉÆ£¬
ºÜ¿ÉÄÜÍêȫȡ¾öÓÚÄú»ñȡԴ´úÂëµÄµÄʱ»ú£¡</para>
</sect3>
<sect3>
<title>Ë­ÐèÒª &os.current;£¿</title>
<para>&os.current; ÊʺÏϱßÈýÖÖÖ÷ÒªÐËȤÍÅÌ壺</para>
<orderedlist>
<listitem>
<para>&os; ÉçÇøµÄ³ÉÔ±£º
»ý¼«¹¤×÷ÔÚÔ´ÂëÊ÷µÄij²¿·ÖµÄÈ˺ÍΪ±£³Ö <quote>×îÐÂ</quote>
Ϊ¾ø¶ÔÐèÇóµÄÈË¡£</para>
</listitem>
<listitem>
<para>&os; ÉçÇøµÄ³ÉÔ±£º Ϊ´Ùʹ &os.current;
±£³Ö¾¡¿ÉÄܵĽ¡È«¶øÔ¸»¨Ê±¼äÈ¥½â¾öÎÊÌâµÄ»ý¼«µÄ²âÊÔÕߣ»
ÒÔ¼°ÄÇЩԸÒâÌá³ö¹ØÓÚ &os;
±ä»¯ºÍ×ÜÌå·½ÏòµÄ½¨ÉèÐÔ½¨Òé²¢ÇÒÌṩ²¹¶¡ÊµÏÖËüÃǵÄÈËÃÇ¡£</para>
</listitem>
<listitem>
<para>ÄÇЩֻÊÇÏë¹Ø×¢»òΪÁ˲ο¼Ä¿µÄʹÓõ±Ç° (current) Ô´ÂëµÄÈËÃÇ
(È磬ΪÁË<emphasis>ÔĶÁ</emphasis>£¬¶ø²»ÊÇÖ´ÐÐ)¡£
ÕâЩÈËҲż¶û×ö×ö×¢ÊÍ»ò¹±Ï×´úÂë¡£</para>
</listitem>
</orderedlist>
</sect3>
<sect3>
<title>&os.current; <emphasis>²»ÊÇ</emphasis>ʲô£¿</title>
<orderedlist>
<listitem>
<para>×·Çó×îй¦ÄÜ£¬ ÄúÌý˵ÀïÃæÓÐһЩºÜ¿áµÄй¦ÄÜ£¬
²¢Ï£Íû³ÉΪÄúÖÜΧµÄÈËÖеÚÒ»¸ö³¢ÊÔËüÃǵÄÈË¡£
¾¡¹ÜÄúÄܹ»Òò´ËÊ×ÏÈÁ˽⵽×îÐµĹ¦ÄÜ£¬
µ«ÕâÒ²Òâζ×ÅÔÚ³öÏÖÐ嵀 bug ʱÄúÒ²Ê×µ±Æä³å¡£</para>
</listitem>
<listitem>
<para>ÐÞ¸´´í©µÄ¿ì½Ý·½Ê½¡£ÈκΠ&os.current
µÄ¼È¶¨°æ±¾ÔÚÐÞ¸´ÒÑÖª´í©µÄͬʱÓÖ¿ÉÄÜ»á²úÉúеĴí©¡£</para>
</listitem>
<listitem>
<para>ÎÞËù²»ÔÚµÄ<quote>¹Ù·½Ö§³Ö</quote>¡£
ÎÒÃǾ¡×î´óŬÁ¦ÔÚ3¸ö<quote>ºÏ·¨µÄ</quote>
&os.current; ×éÖ®Ò»Õæ³Ï¸øÈËÃÇÌṩ°ïÖú£¬µ«ÊÇÎÒÃÇ
<emphasis>ûÓÐʱ¼ä</emphasis>Ìṩ¼¼ÊõÖ§³Ö¡£
Õâ²¢²»ÊÇÒòΪÎÒÃÇÊÇÄÇÖÖ²»Ï²»¶°ïÖúÈ˽âÀ§µÄÎÞ³Ü֮ͽ
(Èç¹ûÎÒÃÇÊǵϰ£¬¾Í²»»áÖÆ×÷ &os; ÁË)¡£
ÎÒÃDz»ÄÜÿÌì¼òµ¥µØ»Ø¸´ÉϰٵÄÏûÏ¢£¬<emphasis>¶øÇÒ</emphasis>
ÎÒÃǼÌÐø·¢Õ¹ FreeBSD£¡ ÔÚ¸ÄÉÆ &os;
ºÍ»Ø¸´´óÁ¿¹ØÓÚʵÑé´úÂëµÄÎÊÌâÖ®¼äÈç¹ûÒª×ö¸öÑ¡ÔñµÄ»°£¬
¿ª·¢ÈËÔ±»áÑ¡ÔñǰÕß¡£</para>
</listitem>
</orderedlist>
</sect3>
<sect3>
<title>ʹÓà &os.current;</title>
<indexterm>
<primary>µ±Ç°°æ</primary>
<secondary>ʹÓÃ</secondary>
</indexterm>
<orderedlist>
<listitem>
<para>¼ÓÈë &a.current.name; ºÍ &a.svn-src-head.name; ÁÐ±í¡£
Õâ¸ö²»½ö½öÊǸöºÃÖ÷Ò⣬¶øÇÒºÜ <emphasis>ÖØÒª</emphasis>¡£Èç¹ûÄú²»È¥
<emphasis>&a.current.name;</emphasis>£¬
Äú¾Í²»»á¿´µ½ÈËÃÇËù×öµÄ¹ØÓÚϵͳµ±Ç°×´Ì¬µÄ˵Ã÷£¬
ÕâÑùÄú¾ÍÓпÉÄÜÔÚ±ðÈËÒѾ­·¢ÏÖ²¢½â¾öÁ˵ÄÒ»´ó¶ÑÎÊÌâÃæÇ°Äѵ¹¡£
¸üÖØÒªµÄÊÇÄú»á´í¹ýÒ»Ð©ÖØÒªµÄ¹«¸æ---¶ÔÓÚÄúµÄϵͳ°²È«¿ÉÄÜÊÇÖÁ¹ØÖØÒªµÄ¡£</para>
<para>&a.svn-src-head.name; ÁбíÔÊÐíÄú¿´µ½Ã¿¸ö±ä»¯µÄÌá½»¼Ç¼£¬
ÒòΪÕâЩ¼Ç¼ÓëÆäËüÏà¹ØÐÅÏ¢ÊÇͬ²½µÄ¡£</para>
<para>Òª¼ÓÈëÕâЩÁÐ±í£¬»òÆäËü¿ÉÄܵÄÁÐ±í£¬Çë·ÃÎÊ
&a.mailman.lists.link; £¬²¢ÇÒµã»÷ÄúÏë¶©ÔĵÄÁÐÏî¡£
¹ØÓÚÆäËü²½ÖèµÄ˵Ã÷ÄÇÀïÓÐÌṩ¡£
Èç¹ûÄãÓÐÐËȤ׷×ÙÕû¸öÔ­´úÂëÊ÷µÄ±ä¸ü¼Ç¼£¬
ÎÒÃǽ¨ÒéÄã¶©ÔÄ &a.svn-src-all.name;
ÓʼþÁÐ±í¡£</para>
</listitem>
<listitem>
<para>´Ó&os; <link
linkend="mirrors">¾µÏñÕ¾µã</link> »ñȡԴÂë¡£ ÄúÓÐÁ½ÖÖ·½Ê½Ñ¡Ôñ£º</para>
<orderedlist>
<indexterm>
<primary><command>cvsup</command></primary>
</indexterm>
<indexterm>
<primary><command>cron</command></primary>
</indexterm>
<indexterm>
<primary>µ±Ç°</primary>
<secondary>ʹÓà <application>CVSup</application> ͬ²½</secondary>
</indexterm>
<listitem>
<para>Óë³Æ×÷ <filename>standard-supfile</filename> µÄ
<filename>supfile</filename> Ò»ÆðʹÓà <link
linkend="cvsup">cvsup</link>£¬Õâ¸ö¿ÉÒÔ´Ó
<filename>/usr/share/examples/cvsup</filename>µÃµ½¡£
ÕâÊÇ×î±»ÍÆ¼öµÄ·½Ê½£¬ÒòΪËüÔÊÐíÄúÒ»´Î»ñÈ¡Õû¸ö¼¯ºÏ£¬
ÒÔºó¾Íֻȡ¸ü¸Ä¹ýµÄ²¿·Ö¡£Ðí¶àÈË´Ó <command>cron</command>
ÔËÐÐ <command>cvsup</command>£¬ÒÔ±£³ÖËûÃǵÄÔ´Âë×Ô¶¯¸üС£
ÄúÐëÒª¶¨ÖÆÉÏ±ßµÄ <filename>supfile</filename> Ñù±¾£¬²¢ÇÒÅäÖà <link
linkend="cvsup">cvsup</link> ÒÔÊÊÓ¦ÄúµÄ»·¾³¡£</para>
<note>
<para><filename>standard-supfile</filename>
Àý×ÓÊÇΪ׷×ÙÖ¸¶¨µÄ &os; °²È«·ÖÖ§¶øÖ¸¶¨µÄ£¬
¶ø²»ÊÇ &os.current;¡£
ÄãÐèÒª±à¼­Õâ¸öÎļþ²¢°ÑÈçÏÂÕâÐУº</para>
<programlisting>*default release=cvs tag=RELENG_<replaceable>X</replaceable>_<replaceable>Y</replaceable></programlisting>
<para>Ìæ»»Îª£º</para>
<programlisting>*default release=cvs tag=.</programlisting>
<para>¿ÉÒÔ²ÎÔÄÊÖ²áÖеÄ
<link linkend="cvs-tags">CVS Tags</link>
Õ½ڻñµÃ¸ü¶à¿ÉÓà tag µÄÏêϸ˵Ã÷¡£</para>
</note>
</listitem>
<indexterm>
<primary>µ±Ç°µÄ</primary>
<secondary>ʹÓà CTM ͬ²½</secondary>
</indexterm>
<listitem>
<para>ʹÓù¤¾ß <application><link
linkend="ctm">CTM</link></application>¡£
Èç¹ûÄúµÄÁ¬½ÓÐÔÄܲ»Ì«ºÃ(¸ß¼ÛÁ¬½Ó»òÖ»ÄÜͨ¹ýµç×ÓÓʼþ´æÈ¡)£¬
<application>CTM</application> ÊǸöÑ¡Ôñ¡£
µ«ÕâÒ²ÆÄÓÐÕùÒé²¢ÇÒ³£³£µÃµ½µ½»µÎļþ¡£Òò´ËºÜÉÙʹÓÃËü£¬
ÕâÒ²×¢¶¨Á˲»Äܳ¤ÆÚÓÃËüÀ´¹¤×÷¡£¶ÔÓÚʹÓà 9600&nbsp;bps
»ò¸ü¿ìÁ¬½ÓµÄÈË£¬ÎÒÃÇÍÆ¼öʹÓà <application><link
linkend="cvsup">CVSup</link></application>¡£
</para>
</listitem>
</orderedlist>
</listitem>
<listitem>
<para>Èç¹ûÄú»ñȡԴÂëÊÇÓÃÓÚÔËÐУ¬¶ø²»Ö»ÊÇ¿´¿´£¬ÄÇô¾Í»ñÈ¡
<emphasis>Õû¸ö</emphasis> &os.current;£¬²»ÒªÑ¡²¿·Ö¡£
ÕâÑù×öµÄÔ­ÒòÊÇÔ´ÂëµÄ´ó²¿·Ö¶¼ÒÀÀµÓÚÆäËû²¿·Ö£¬
ÒªÊÇÄúÊÔ×ÅÖ»±àÒëÆäÖÐÒ»²¿·ÖµÄ»°£¬±£Ö¤Äú»áÏÝÈëÂé·³¡£</para>
<indexterm>
<primary>µ±Ç°°æ</primary>
<secondary>±àÒë</secondary>
</indexterm>
<para>ÔÚ±àÒë &os.current; ֮ǰ£¬Çë×ÐϸÔĶÁ
<filename>/usr/src</filename> ÀïµÄ
<filename>Makefile</filename> Îļþ¡£
¾¡¹ÜÊDz¿·ÖµÄÉý¼¶¹ý³Ì£¬ÄúÖÁÉÙÒ²ÒªÊ×ÏÈ<link
linkend="makeworld">°²×°ÐµÄÄں˺ÍÖØ½¨ÏµÍ³</link>¡£ÔĶÁ
&a.current; ÓʼþÁбíºÍ <filename>/usr/src/UPDATING</filename>£¬
»áÈÃÄúÔÚÆäËüÑ­Ðò½¥½øµÄ¹ý³ÌÖб£³Ö×îУ¬
Õâ¶ÔÓÚÎÒÃÇÏòÏÂÒ»¸ö·¢Ðаæ×ªÒÆÊǺÜÓбØÒªµÄ¡£</para>
</listitem>
<listitem>
<para>ÈÈÐÄÒ»µã£¡Èç¹ûÄúÕýÔËÐÐ &os.current;£¬
ÎÒÃǺÜÏëÖªµÀÄú¹ØÓÚËüµÄһЩÏë·¨£¬
ÓÈÆäÊǹØÓÚ´í©ÐÞ¸´»òÔö½øµÄ½¨Òé¡£
·Ç³£»¶Ó­´øÓдúÂëµÄ½¨Ò飡</para>
</listitem>
</orderedlist>
</sect3>
</sect2>
<sect2 id="stable">
<title>ʹÓÃ×îÐ嵀 &os; STABLE</title>
<sect3>
<title>&os.stable; ÊÇʲô?</title>
<indexterm><primary>Îȶ¨°æ</primary></indexterm>
<para>&os.stable; ÊÇÎÒÃǵķ¢Õ¹·ÖÖ§£¬ÎÒÃǵÄÖ÷Òª·¢Ðаæ¾ÍÓɴ˶øÀ´¡£
Õâ¸ö·ÖÖ§»áÒÔ²»Í¬Ëٶȱ仯£¬²¢ÇÒ¼Ù¶¨ÕâЩÊǵÚÒ»´Î½øÈë
&os.current; ½øÐвâÊÔ¡£È»¶ø£¬Õâ <emphasis>ÈÔÈ»</emphasis>
ÊǸö·¢Õ¹ÖеķÖÖ§£¬ÕâÒâζ×ÅÔÚÒ»¶¨µÄʱºò£¬&os.stable;
Ô´Âë¿ÉÄÜ»ò²»¿ÉÄÜÂú×ãÒ»Ð©ÌØÊâµÄÒªÇó¡£
ËüÖ»²»¹ýÊÇÁíÒ»¸ö¹¤³Ì·¢Õ¹Í¾¾¶£¬²¢²»ÊÇÖÕ¶ËÓû§µÄ×ÊÔ´¡£</para>
</sect3>
<sect3>
<title>Ë­ÐèÒª &os.stable;£¿</title>
<para>Èç¹ûÄúÓÐÐËÈ¤×·Ëæ FreeBSD µÄ¿ª·¢¹ý³Ì»òΪÆä×öµã¹±Ï×£¬
ÓÈÆäÊǺÍÏÂÒ»¸ö
<quote>·Ç¼Æ»®</quote> µÄ FreeBSD ·¢ÐаæÓйØÊ±£¬
ÄúÓ¦¸Ã¿¼ÂDzÉÓà &os.stable;¡£</para>
<para>¾¡¹Ü°²È«¸üÐÂÒ²»á½øÈë
&os.stable; ·ÖÖ§£¬µ«Äú²¢²» <emphasis>±ØÐë</emphasis> ʹÓÃ
&os.stable; À´´ïµ½ÕâÑùµÄÄ¿µÄ¡£ ÿһ¸ö
FreeBSD µÄ°²È«¹«¸æ¶¼»á½âÊÍÈçºÎÐÞ¸´Êܵ½Ó°ÏìµÄ·¢ÐаæÖеÄÎÊÌâ
<footnote><para>ÕâÒ²²»×ÜÊÇÕýÈ·¡£ÎÒÃDz»¿ÉÄÜÓÀÔ¶Ö§³Ö
FreeBSD µÄ¾É·¢Ðа棬 ¾¡¹ÜÎÒÃÇ»áÔÚ·¢²¼Ö®ºóÖ§³ÖËûÃÇÊýÄêÖ®¾Ã¡£
¹ØÓÚ FreeBSD Ŀǰ¶ÔÓھɷ¢ÐаæµÄÖ§³ÖÕþ²ßµÄÍêÕûÃèÊö£¬ Çë²Î¼û
<ulink
url="&url.base;/security/">http://www.FreeBSD.org/security/</ulink>¡£</para>
</footnote>£¬¶øÒòΪ°²È«Ô­Òò¶øÈ¥²ÉÓÃÒ»¸ö¿ª·¢·ÖÖ§ÏÔÈ»¿ÉÄÜ»áͬʱÒýÈëһЩ²»Ï£ÍûµÄÐ޸ġ£</para>
<para>¾¡¹ÜÎÒÃǾ¡Á¦È·±£ &os.stable; ·ÖÖ§ÔÚÈκÎʱºò¶¼Äܹ»ÕýÈ·±àÒëºÍÔËÐУ¬
µ«Ã»ÓÐÈËÄܹ»µ£±£ËüÔÚÈκÎʱºò¶¼×Ü¿ÉÒÔ¡£
´ËÍ⣬ ¾¡¹Ü´úÂëÔÚ½øÈë &os.stable; ֮ǰ¶¼ÊÇÔÚ &os.current; ÉÏÍê³É¿ª·¢£¬
µ«Ê¹Óà &os.stable; µÄÈËÒª±ÈʹÓà &os.current; µÄ¸ü¶à¡£
ÓÐÖ¤¾ÝÏÔʾ£¬ ê÷½Çê¸ê¹ÀïµÄ¸÷ÖÖÎÊÌâÓÐЩʱºòÈÔÈ»»áÓÉÓÚÔÚ &os.current; ²»ÄÇôÃ÷ÏÔ
¶øÔÚ &os.stable; ±©Â¶³öÀ´¡£</para>
<para>»ùÓÚÕâЩԭÒò£¬ <emphasis>²»</emphasis> ÍÆ¼öÄúäĿµØ×·Ëæ
&os.stable;£¬ ²¢ÇÒ£¬ ÔÚ´ÖÂԵزâÊÔ¹ý´úÂë֮ǰ²»Òª¸üÐÂÈκÎÉú²ú·þÎñÆ÷µ½
&os.stable; Ò²·Ç³£ÖØÒª¡£</para>
<para>Èç¹ûÄúûÓÐÓÃÓÚÍê³ÉÕâЩ¹¤×÷µÄ×ÊÔ´£¬ ÎÒÃÇÍÆ¼öÄúʹÓÃ×îÐ嵀 FreeBSD
·¢Ðа棬 ²¢Ê¹Ó÷¢ÐаæÌṩµÄ¶þ½øÖƸüлúÖÆÀ´ÔÚ·¢ÐаæÖ®¼äÍê³ÉÇ¨ÒÆ¡£</para>
</sect3>
<sect3>
<title>ʹÓÃ&os.stable;</title>
<indexterm>
<primary>Îȶ¨°æ</primary>
<secondary>ʹÓÃ</secondary>
</indexterm>
<orderedlist>
<listitem>
<para>¼ÓÈë &a.stable.name; ÁÐ±í¡£ÈÃÄúËæÊ±Á˽â¿ÉÄܳöÏÖÔÚ
&os.stable; ÀïµÄ<quote>build ÒÀÀµÐÔ</quote>»òÆäËüÐèÒªÌØ±ð×¢ÒâµÄÎÊÌâ¡£
µ±¿ª·¢Ô±ÕýÔÚ¿¼ÂÇijЩÓÐÕùÒéµÄÐÞ¸´»ò¸üÐÂʱ£¬
ËûÃǾͻáÔÚÕâ¸öÓʼþÁбíÀï·¢±íÉùÃ÷£¬¸øÓû§»ú»á»ØÓ¦£¬
¿´ËûÃǶÔÓÚÌá³öµÄ±ä»¯ÊÇ·ñ»¹ÓÐʲôÎÊÌâ¡£</para>
<para>¼ÓÈëÏà¹ØµÄ <application>SVN</application>
ÁбíÀ´×·×ÙÄãËù¹ØÐĵķÖÖ§¡£±ÈÈ磬Èç¹ûÄãÔÚ×·×Ù 7-STABLE
·ÖÖ§£¬¼ÓÈë &a.svn-src-stable-7.name; ÁÐ±í¡£
ÕâÑùÿ´ÎÕâ¸ö·ÖÖ§ÉÏÓи͝µÄʱºò¾ÍÄÜÈÃÄã¿´µ½Ìá½»¼Ç¼,
»¹°üÀ¨ÁËÐ޸ĿÉÄÜÒýÆðµÄ¸±×÷ÓÃÖ®ÀàµÄÏà¹ØÐÅÏ¢¡£</para>
<para>Òª¼ÓÈëÕâЩÁбí»òÆäËû¿ÉÓõ쬷ÃÎÊ &a.mailman.lists.link;
²¢µã»÷ÄúÏ£Íû¶©ÔĵÄÁÐ±í¡£¹ØÓÚÆäËü²½ÖèµÄ˵Ã÷¿ÉÒÔÔÚÄÇÀï¿´µ½¡£
Èç¹ûÄãÓÐÐËȤ׷×ÙÕû¸öÔ­´úÂëÊ÷µÄ±ä¸ü¼Ç¼£¬
ÎÒÃǽ¨ÒéÄã¶©ÔÄ &a.svn-src-all.name;
ÓʼþÁÐ±í¡£</para>
</listitem>
<listitem>
<para>Èç¹ûÄúÕý°²×°Ò»¸öÐÂϵͳ£¬ ²¢Ï£ÍûËüÔËÐÐÿÔÂ´Ó &os.stable; ±àÒëµÄ¿ìÕÕ£¬
Çë²ì¿´ <ulink url="&url.base;/snapshots/">
Snapshots</ulink> ÍøÒ³ÒÔÁ˽â¸ü¶àÐÅÏ¢¡£
ÁíÍ⣬ Ò²¿ÉÒÔ´Ó
<link linkend="mirrors">¾µÏñÕ¾µã</link> °²×°×îÐ嵀 &os.stable; ·¢Ðа棬
²¢°´ÕÕÆäÖеÄ˵Ã÷½«ÏµÍ³¸üе½×îÐ嵀 &os.stable; Ô´´úÂë¡£</para>
<para>Èç¹ûÄúÒѾ­ÔÚÔËÐнÏÔçµÄ &os; °æ±¾£¬ ²¢Ï£Íûͨ¹ýÔ´´úÂ뷽ʽÉý¼¶£¬
Ôò¿ÉÒÔͨ¹ý &os; <link linkend="mirrors">¾µÏñÕ¾µã</link> À´Íê³É¡£
Õâ¿ÉÒÔͨ¹ýÁ½ÖÖ·½Ê½À´½øÐУº</para>
<orderedlist>
<indexterm>
<primary><command>cvsup</command></primary>
</indexterm>
<indexterm>
<primary><command>cron</command></primary>
</indexterm>
<indexterm>
<primary>Îȶ¨°æ</primary>
<secondary>ʹÓÃ<application>CVSup</application>ͬ²½</secondary>
</indexterm>
<listitem>
<para>Óë³Æ×÷ <filename>stable-supfile</filename> µÄ
<filename>supfile</filename> Ò»ÆðʹÓà <link
linkend="cvsup">cvsup</link>£¬Õâ¸ö¿ÉÒÔ´Ó
<filename>/usr/share/examples/cvsup</filename> µÃµ½¡£
ÕâÊÇ×î±»ÍÆ¼öµÄ·½Ê½£¬ÒòΪËüÔÊÐíÄúÒ»´Î»ñÈ¡Õû¸ö¼¯ºÏ£¬
ÒÔºó¾Íֻȡ¸ü¸Ä¹ýµÄ²¿·Ö¡£Ðí¶àÈË´Ó <command>cron</command>
ÔËÐÐ <command>cvsup</command>£¬ÒÔ±£³ÖËûÃǵÄÔ´Âë×Ô¶¯¸üС£
ÄúÐëÒª¶¨ÖÆÉÏ±ßµÄ <filename>supfile</filename> Ñù±¾£¬²¢ÇÒÅäÖà <link
linkend="cvsup">cvsup</link> ÒÔÊÊÓ¦ÄúµÄ»·¾³¡£</para>
</listitem>
<indexterm>
<primary>µ±Ç°µÄ</primary>
<secondary>ʹÓà CTM ͬ²½</secondary>
</indexterm>
<listitem>
<para>ʹÓù¤¾ß <application><link linkend="ctm">CTM</link></application>¡£
Èç¹ûÄúµÄÁ¬½ÓÐÔÄܲ»Ì«ºÃ(¸ß¼ÛÁ¬½Ó»òÖ»ÄÜͨ¹ýµç×ÓÓʼþ´æÈ¡)£¬
<application>CTM</application> ÊǸöÑ¡Ôñ¡£
µ«ÕâÒ²ÆÄÓÐÕùÒé²¢ÇÒ³£³£µÃµ½µ½»µÎļþ¡£Òò´ËºÜÉÙʹÓÃËü£¬
ÕâÒ²×¢¶¨Á˲»Äܳ¤ÆÚÓÃËüÀ´¹¤×÷¡£¶ÔÓÚʹÓà 9600&nbsp;bps
»ò¸ü¿ìÁ¬½ÓµÄÈË£¬ÎÒÃÇÍÆ¼öʹÓà <application><link
linkend="cvsup">CVSup</link></application>¡£
</para>
</listitem>
</orderedlist>
</listitem>
<listitem>
<para>±¾ÖÊÉÏ˵£¬Èç¹ûÄúÐèÒª¿ìËÙ´æÈ¡Ô´Âë²¢ÇÒ²»¼Æ½ÏͨÐÅ¿í´øµÄ»°£¬¿ÉÒÔʹÓÃ
<command>cvsup</command> »ò <command>ftp</command>¡£·ñÔò£¬¾ÍʹÓÃ
<application>CTM</application>¡£</para>
</listitem>
<indexterm>
<primary>Îȶ¨°æ</primary>
<secondary>±àÒë</secondary>
</indexterm>
<listitem>
<para>ÔÚ±àÒë &os.stable; ֮ǰ£¬Çë×ÐϸÔĶÁ
<filename>/usr/src</filename> ÀïµÄ <filename>Makefile</filename>¡£
ÄúÖÁÉÙÓ¦¸Ã<link linkend="makeworld">°²×°Ò»¸öеÄÄں˲¢Öؽ¨ÏµÍ³</link>£¬
Ê×ÏÈ×öΪÉý¼¶¹ý³ÌµÄÒ»²¿·Ö¡£ÔĶÁ &a.stable; ÓʼþÁбíºÍ
<filename>/usr/src/UPDATING</filename>£¬
¿ÉÄÜÈÃÄúÔÚÆäËüÑ­Ðò½¥½øµÄ¹ý³ÌÖб£³Ö¸üУ¬
ÕâÔÚÎÒÃÇÏòÏÂÒ»·¢Ðаæ×ªÒÆÊ±ÊǺÜÓбØÒªµÄ¡£</para>
</listitem>
</orderedlist>
</sect3>
</sect2>
</sect1>
<sect1 id="synching">
<title>ͬ²½ÄúµÄÔ´Âë</title>
<para>ÓÐÐí¶à·½Ê½Í¨¹ý»¥ÁªÍø(»òµç×ÓÓʼþ)Óë &os;
ÏîĿԴÂëÌØ¶¨ÁìÓò»òËùÓÐÁìÓò±£³Ö¸üУ¬Ö÷ÒªÒÀÀµÓÚÄúµÄÐËȤ¡£
ÎÒÃÇÌṩµÄÖ÷Òª·þÎñÊÇ<link linkend="anoncvs">ÄäÃû CVS</link>¡¢
<link linkend="cvsup">CVSup</link>£¬ºÍ <link linkend="ctm">CTM</link>¡£</para>
<warning>
<para>ËäȻֻ¸üÐÂÔ´ÂëÊ÷ÖеIJ¿·ÖÊÇ¿ÉÄܵģ¬
Ψһ±»Ö§³ÖµÄ¸üйý³ÌÊǸüÐÂÕû¸öÊ÷¡¢²¢ÇÒÖØ±àÒëÓû§Çø
(È磺ÔÚÓû§¿Õ¼äÔËÐеÄËùÓгÌÐò£¬Ïñ <filename>/bin</filename>
ºÍ <filename>/sbin</filename>ϱߵÄ)ºÍÄÚºËÔ´Âë¡£
Ö»¸üÐÂÔ´ÂëÊ÷ÖеIJ¿·Ö£¬»òÖ»ÓÐÄںˣ¬»òÖ»ÓÐÓû§Çø
(userland) ͨ³£»á³öÏÖ´íÎó¡£ÕâЩÎÊÌâ°üÀ¨ÓбàÒë´íÎó¡¢Äں˱ÀÀ£
(kernel panics)¡¢Êý¾Ý³ö´í¡£</para>
</warning>
<indexterm>
<primary>CVS</primary>
<secondary>ÄäÃû</secondary>
</indexterm>
<para><application>ÄäÃû CVS</application> ºÍ
<application>CVSup</application> ʹÓà <emphasis>ÏÂÀ­(pull)</emphasis>
ģʽÀ´¸üÐÂÔ´´úÂë¡£ ÔÚ
<application>CVSup</application> ÖУ¬ Óû§ (»òÕß
<command>cron</command> ½Å±¾)
»áµ÷Óà <command>cvsup</command> ³ÌÐò£¬ ºóÕß»áͬijһ¸ö
<command>cvsupd</command> ·þÎñ½øÐн»»¥£¬ ÒÔ¸üÐÂÄúµÄÎļþ¡£
Äú½Óµ½µÄ¸üÐÂÊǸüÐÂʱ¿Ì×îÐµģ¬ ²¢ÇÒÄúÖ»»áÊÕµ½ÄÇЩÐèÒªµÄ¸üС£
Äú¿ÉÒÔºÜÈÝÒ×µØÏÞÖÆ¸üеķ¶Î§£¬ Ö»¸üÐÂÄÇЩÄúÐèÒªµÄÎļþ¡£
·þÎñÆ÷¶Ë»á¸ù¾ÝÄúÊÖÍ·ÒѾ­ÓеÄÎļþ¼´Ê±µØÉú³É¸üÐÂÄÚÈÝ¡£
<application>ÄäÃû CVS</application>
Ïà¶ÔÓÚ <application>CVSup</application> ¶øÑÔÒª¼òµ¥Ò»Ð©£¬ ÒòΪËüÖ»ÊǶÔ
<application>CVS</application> µÄÒ»ÖÖÀ©Õ¹£¬
ÈÃÄú¿ÉÒÔ´ÓÔ¶³ÌµÄ CVS ´úÂë¿âµÃµ½¸üС£
<application>CVSup</application> Ïà¶Ô¶øÑÔ£¬
Òª±È <application>ÄäÃû CVS</application> ¸üÓÐЧÂÊ£¬
È»¶øºóÕßÈ´¸üÈÝÒ×ʹÓá£</para>
<indexterm>
<primary><application>CTM</application></primary>
</indexterm>
<para>ÁíÒ»ÖÖ·½·¨ÊÇ <application>CTM</application>¡£
ÕâÖÖ·½·¨²¢²»Äܽ«ÄúÊÖÍ·µÄ´úÂëÓëÖÐÑë´úÂë¿âÖеİ汾½øÐбȽϣ¬
Ò²²»ÄÜÏÂÔØËüÃÇ¡£ ÔÚÖ÷ CTM ·þÎñÆ÷ÉÏÔËÐеĽű¾»áÿÌìÖ´Ðжà´Î£¬
ÿ´ÎÔËÐж¼Äܹ»×Ô¶¯µØÊ¶±ðËùÓÐÎļþ×ÔÉÏ´ÎÔËÐÐÒÔÀ´Ëù·¢ÉúµÄ±ä»¯£¬
Èç¹û·¢ÏÖÓÐÎļþ·¢ÉúÁ˱䶯£¬ ¾Í»áѹËõ¡¢ ±êÉÏÒ»¸öÐòÁкţ¬
²¢½øÐбãÓÚʹÓõç×ÓÓʼþ½øÐд«Ë͵ıàÂë²Ù×÷ (ÆäÖÐÖ»°üÀ¨¿É´òÓ¡µÄ
ASCII ×Ö·û)¡£ Ò»µ©½ÓÊÕµ½£¬
ÕâЩ<quote>CTM deltas</quote>¾Í»á±»´«Ë͸ø &man.ctm.rmail.1;
¹¤¾ß---¿ÉÒÔ×Ô¶¯½øÐнâÂ롢УÑéºÍÓ¦ÓÃÕâЩ±ä»¯µ½Óû§µÄ¸´ÖƵÄÔ´ÂëÀï¡£
Õâ¸ö¹ý³Ì±È <application>CVSup</application> ¸üΪÓÐЧ£¬
¶øÇÒ¸üÉÙÕ¼ÓÃÎÒÃǵķþÎñÆ÷×ÊÔ´£¬ÒòΪËü²»½ö½ö²ÉÓÃ
<emphasis>ÏÂÀ­(pull)</emphasis> ģʽ£¬»¹²ÉÓÃ
<emphasis>ÉÏÍÆ(push)</emphasis> ģʽ¡£</para>
<para>µ±È»£¬ ÕâÑù×öÒ²»á´øÀ´Ò»Ð©²»±ã¡£
Èç¹ûÄú²»¾­Òâɾ³ýÁËÄúµÄѹËõ°üµÄ²¿·ÖÄÚÈÝ£¬
<application>CVSup</application> »á¼ì²âµ½²¢ÎªÄúÖØ½¨ÆÆ»µµÄ²¿·Ö¡£
<application>CTM</application> ÊDz»»áÕâÑù×öµÄ£¬
Èç¹ûÄúɾ³ýÁËÄúµÄÔ´ÂëÊ÷ÖеÄij²¿·Ö(²¢ÒѲ»Äָܻ´)£¬
ÄÇôÄú¾Í±ØÐë´ÓÆÆ»µ´¦ (´Ó×îеÄCVS <quote>base delta</quote>)
¿ªÊ¼£¬Ê¹Óà <application>CTM</application> »ò
<application>ÄäÃû CVS</application>
½øÐÐÖØ½¨£¬½ö½öɾ³ý»µµÄÊý¾Ý²¢ÔÙͬ²½¡£</para>
</sect1>
<sect1 id="makeworld">
<title>ÖØÐ±àÒë <quote>world</quote></title>
<indexterm>
<primary>ÖØÐ±àÒë <quote>world</quote></primary>
</indexterm>
<para>Ö»ÒªÄú¸ù¾ÝÒ»¶¨°æ±¾µÄ &os; (&os.stable;¡¢&os.current; µÈµÈ)£¬
ÒѾ­Í¬²½ÁËÄú±¾µØµÄÔ´ÂëÊ÷£¬ÄÇôÄú¾Í¿ÉÒÔʹÓÃÕâЩԴÂëÊ÷À´Öؽ¨ÏµÍ³¡£</para>
<warning>
<title>×öºÃ±¸·Ý</title>
<para>ÎÞÐèÇ¿µ÷ÔÚÐж¯ <emphasis>֮ǰ</emphasis> ±¸·ÝÕû¸öϵͳÊǶàôµÄÖØÒª¡£
¾¡¹ÜÖØÐ±àÒëϵͳÊÇ (Èç¹ûÄú°´ÕÕÎĵµµÄָʾ×öµÄ»°) Ò»¼þºÜÈÝÒ×Íê³ÉµÄ¹¤×÷£¬
µ«³ö´íÒ²ÊÇÔÚËùÄÑÃâµÄ£¬ ÁíÍ⣬ ±ðÈËÔÚÔ´ÂëÀïÃæÒýÈëµÄ´íÎóÒ²¿ÉÄÜÔì³ÉϵͳÎÞ·¨Òýµ¼¡£</para>
<para>ÇëÈ·ÐÅ×Ô¼ºÒѾ­×ö¹ý±¸·Ý£¬ ²¢ÇÒÔÚÊÖ±ßÓлָ´ÈíÅÌ»ò¿ÉÒÔÒýµ¼µÄ¹âÅÌ¡£
Äú¿ÉÄÜÓÀÔ¶Ò²²»»áÓõ½Ëü£¬ µ«°²È«µÚÒ»Â</para>
</warning>
<warning>
<title>¶©ÔÄÇ¡µ±µÄÓʼþÁбí</title>
<indexterm><primary>ÓʼþÁбí</primary></indexterm>
<para>&os.stable; ºÍ &os.current; ·ÖÖ§×ÔÈ»ÊÇ
<emphasis>·¢Õ¹ÖеÄ</emphasis>¡£Îª &os;
×ö¹±Ï׵ͼÊÇÈË£¬Å¼¶ûÒ²»á·¸´íÎó¡£</para>
<para>ÓÐʱÕâЩ´íÎóûʲôΣº¦£¬Ö»ÊÇÒýÆðÄúµÄϵͳÉú³ÉеÄÕï¶Ï¾¯¸æ¡£
ÓÐʱÊÇÔÖÄÑÐԵ쬲¢µ¼ÖÂÄúµÄϵͳ²»ÄÜÆô¶¯»òÆÆ»µÄúµÄÎļþϵͳ
(ÉõÖÁ¸üÔã)¡£</para>
<para>Èç¹û³öÏÖÁËÀàËÆµÄÎÊÌ⣬
ÌùÒ»·â<quote>СÐÄ(heads up)</quote>Ìûµ½Ïà¹ØµÄÓʼþÁбíÀ
½²ÇåÎÊÌâµÄ±¾ÖÊÒÔ¼°ÊÜÓ°ÏìµÄϵͳ¡£ÔÚÎÊÌâ½â¾öºó£¬ÔÙÌù·â<quote>½â³ý(all
clear)</quote>ÉùÃ÷¡£</para>
<para>Èç¹ûʹÓà &os.stable; »ò &os.current;
¶øÓÖ²»ÔĶÁ &a.stable; ºÍ &a.current; ¸÷×ÔµÄÓʼþÁÐ±í£¬
ÄÇôÄúÊÇ×ÔÕÒÂé·³¡£</para>
</warning>
<warning>
<title>²»ÒªÊ¹Óà <command>make world</command></title>
<para>Ðí¶à½ÏÔçµÄÎĵµÍƼöʹÓÃ
<command>make world</command> À´Íê³ÉÕâÏ×÷¡£ ÕâÑù×ö»áÌø¹ýһЩ±ØÒªµÄ²½Ö裬
Òò´ËÖ»ÓÐÔÚÄúÖªµÀ×Ô¼ºÔÚ×öʲôµÄʱºò²Å¿ÉÒÔÕâÑù×ö¡£ ¼¸ºõËùÓеÄÇé¿öÏÂ
<command>make world</command> ¶¼ÊDz»Ó¦¸Ã×öµÄÊÂÇ飬 ÄúÓ¦¸ÃʹÓÃÕâÀïÃèÊöµÄ·½·¨¡£</para>
</warning>
<sect2 id="canonical-build">
<title>¸üÐÂϵͳµÄ¹æ·¶·½·¨</title>
<para>ÔÚ¸üÐÂϵͳʱ£¬ Ò»¶¨ÒªÊ×ÏȲ鿴
<filename>/usr/src/UPDATING</filename> Îļþ£¬ ÒÔ±ãÁ˽âÔÚ buildworld
֮ǰÐèÒª½øÐеIJÙ×÷£¬ È»ºó°´ÕÕÏÂÃæÁгöµÄ²½Öè½øÐвÙ×÷£º</para>
<para>ÕâЩ¸üв½Öè¼Ù¶¨ÄúʹÓõÄÊǰüº¬¾É±àÒëÆ÷¡¢ ÄÚºËÒÔ¼°Óû§Ì¬¹¤¾ß¼°ÅäÖõľɰæ
&os;¡£ ÎÒÃÇʹÓà <quote>world</quote> À´±íʾϵͳÖеĺËÐÄÖ´ÐÐÎļþ¡¢
º¯Êý¿âºÍ³ÌÐòÎļþ¡£ ±àÒëÆ÷ÊÇ <quote>world</quote> µÄÒ»²¿·Ö£¬
µ«ÓÐÆäÌØÊâÐÔ¡£</para>
<para>´ËÍ⣬ ÎÒÃÇ»¹¼Ù¶¨ÄúÒѾ­»ñµÃÁ˽Ïа汾²Ù×÷ϵͳµÄÔ´´úÂë¡£
Èç¹ûÄúÕý¸üеÄϵͳÖеÄÔ´´úÂëÒ²ÊǾɰæÏµÍ³Ëù¸½´øµÄ£¬
Äú»¹ÐèÒª²ÎÔÄ <xref linkend="synching"> À´°Ñ´úÂëͬ²½µ½½Ïеİ汾¡£</para>
<para>´ÓÔ´´úÂë¸üÐÂϵͳ£¬ ÓÐʱ»á±È³õ¿´ÉÏÈ¥µÄʱºò¸üÂ鷳һЩ£¬
ÁíÒ»·½Ã棬 &os; µÄ¿ª·¢ÈËÔ±ÓÐʱ»á²»µÃ²»ÐÞ¸ÄÍÆ¼öµÄ¸üв½Ö裬
ÌØ±ðÊǵ±³öÏÖÁËһЩÎÞ·¨±ÜÃâµÄÒÀÀµ¹ØÏµµÄʱºò¡£ ÕâÒ»½ÚÓàϵIJ¿·Ö£¬
½«½éÉÜÄ¿Ç°ÍÆ¼öµÄ¸üв½Öè±³ºóµÄÔ­Àí¡£</para>
<para>³É¹¦µÄ¸üвÙ×÷±ØÐë½â¾öÏÂÃæµÄÕâЩÎÊÌ⣺</para>
<itemizedlist>
<listitem>
<para>¾ÉµÄ±àÒëÆ÷¿ÉÄÜÎÞ·¨±àÒëеÄÄںˡ£ (ÁíÒ»·½Ã棬
¾ÉµÄ±àÒëÆ÷ºÜ¿ÉÄÜÓÐ bug¡£) Òò´Ë£¬ еÄÄÚºËÓ¦¸ÃÒÔеıàÒëÆ÷±àÒë¡£
¸ü¾ßÌåµØËµ£¬ еıàÒëÆ÷Ó¦ÔÚÐÂÄں˿ªÊ¼Áª±à֮ǰÒѾ­Íê³ÉÁËÁª±à²½Öè¡£
Çë×¢Ò⣬ еıàÒëÆ÷²¢²»Ò»¶¨ÐèÒªÔÚÁª±àÐÂÄÚºË֮ǰ
<emphasis>°²×°</emphasis> µ½ÏµÍ³ÖС£</para>
</listitem>
<listitem>
<para>Ð嵀 world ÓпÉÄÜÒÀÀµÒ»Ð©ÐµÄÄÚºËÌØÐÔ¡£
Òò´Ë£¬ ÐÂÄں˱ØÐëÔÚÐ嵀 world ֮ǰ°²×°¡£</para>
</listitem>
</itemizedlist>
<para>ÕâÁ½¸öÎÊÌâ¾ÍÊÇΪʲôÎÒÃǽ«ÔÚºóÃæµÄÕ½ÚÖнéÉܵģ¬
ÐèÒª°´ÕÕ <maketarget>buildworld</maketarget>¡¢
<maketarget>buildkernel</maketarget>¡¢
<maketarget>installkernel</maketarget>¡¢
<maketarget>installworld</maketarget> µÄ˳ÐòÀ´¸üÐÂϵͳµÄÔ­Òò¡£
Õâ²¢²»ÊÇÄúÐèÒª×ñÊØÍÆ¼öµÄ¸üвÙ×÷µÄÈ«²¿Ô­Òò£¬
³ýÁËÕâÁ½¸ö×îÖØÒªµÄÀíÓÉÖ®Í⣬ »¹ÓÐһЩ²¢²»ÄÇôÏÔ¶øÒ×¼ûµÄÔ­Òò£º</para>
<itemizedlist>
<listitem>
<para>¾ÉµÄ world ¿ÉÄÜÎÞ·¨ÅäºÏеÄÄÚºËÕý³£¹¤×÷£¬
Òò´Ë£¬ ÄúÔÚ°²×°ÍêÐÂÄÚºËÖ®ºó£¬ Ó¦¾¡¿ì½« world Ò²ËæÖ®¸üС£</para>
</listitem>
<listitem>
<para>ÓÐЩÅäÖÃÎļþµÄ±ä¶¯±ØÐëÔÚ°²×°Ð嵀 world ֮ǰÍê³É£¬
¶øÁíһЩÅäÖÃÎļþµÄ±ä¶¯ÔòÓпÉÄܵ¼ÖÂ¾É world ¹¤×÷²»Õý³£¡£
Òò´Ë£¬ ͨ³£¶øÑÔ»áÐèÒªÁ½´Î²»Í¬µÄÅäÖÃÎļþ¸üв½Öè¡£</para>
</listitem>
<listitem>
<para>¶àÊýÇé¿öÏ£¬ ¸üв½ÖèÖ»»áÌæ»»»òÔö¼ÓÎļþ£»
»»ÑÔÖ®£¬ ÏÖÓеľÉÎļþ²¢²»»á±»É¾³ý¡£ ÓÐʱ£¬
Õâ¿ÉÄܻᵼÖÂһЩÆäËûÎÊÌâ¡£ Òò´Ë£¬ ÓÐʱ°²×°²Ù×÷»áÖ¸Ã÷£¬
±ØÐëÔÚijЩ²Ù×÷֮ǰÊÖ¹¤É¾³ýһЩÎļþ¡£ ÕâЩÔÚδÀ´¿ÉÄܻᱻ×Ô¶¯»¯£¬
Ò²¿ÉÄܲ»»á×Ô¶¯»¯¡£</para>
</listitem>
</itemizedlist>
<para>ÓÉÓÚÓÐÕâЩ¿¼ÂÇ£¬ Òò´ËÒ»°ãÇé¿öÏÂÎÒÃǽ¨ÒéʹÓÃÏÂÁиüв½Öè¡£
Çë×¢Ò⣬ ¾ßÌåµÄ¸üвÙ×÷ÖпÉÄÜ»áÐèҪһЩ¸½¼ÓµÄ²½Ö裬
µ«ºËÐĵĹý³ÌÓ¦¸ÃÊDz»»áÇáÒ×·¢Éú±ä»¯µÄ£º</para>
<orderedlist>
<listitem>
<para><command>make <maketarget>buildworld</maketarget></command></para>
<para>Õâ²½²Ù×÷»áÁª±àеıàÒëÆ÷£¬ ÒÔ¼°ÉÙÁ¿Ïà¹Ø¹¤¾ß£¬
²¢ÔÚËæºóʹÓÃеıàÒëÆ÷À´Áª±à
world¡£ Áª±àµÄ½á¹û»á´æ·ÅÔÚ <filename class="directory">/usr/obj</filename>¡£</para>
</listitem>
<listitem>
<para><command>make <maketarget>buildkernel</maketarget></command></para>
<para>Óë¾ÉʽµÄ¡¢ ʹÓà &man.config.8; ºÍ
&man.make.1; µÄ·½·¨²»Í¬£¬
ÕâÖÖ×ö·¨»áʹÓôæ·ÅÓÚ <filename class="directory">/usr/obj</filename>
ÖÐµÄ <emphasis>еÄ</emphasis> ±àÒëÆ÷¡£
ÕâÖÖ×ö·¨Ê¹µÃÄúÃâÈ¥ÁËÓÉÓÚ±àÒëÆ÷ÓëÄÚºËÔ´´úÂë²»Ò»Öµ¼ÖµÄÎÊÌâ¡£</para>
</listitem>
<listitem>
<para><command>make <maketarget>installkernel</maketarget></command></para>
<para>°²×°ÐµÄÄں˼°ÆäÄ£¿é£¬
ʹϵͳÄܹ»ÒÔ¸üкóµÄÄÚºËÆô¶¯¡£</para>
</listitem>
<listitem>
<para>ÖØÆôϵͳ²¢½øÈëµ¥Óû§Ä£Ê½¡£</para>
<para>µ¥Óû§Ä£Ê½Ê¹µÃ¸üÐÂÕýÔÚÔËÐеÄÈí¼þ¿ÉÄܵ¼ÖµÄÎÊÌâ¼õµ½×îÉÙ¡£
´ËÍ⣬ ËüҲʹÅäºÏÐÂÄÚºËÔËÐÐ¾É world ¿ÉÄܳöÏÖµÄÎÊÌâ¼õµ½×îÉÙ¡£</para>
</listitem>
<listitem>
<para><command>mergemaster <option>-p</option></command></para>
<para>Õâ²½²Ù×÷»á½øÐÐÍê³É°²×°Ð嵀 world ËùÐèµÄÅäÖÃÎļþ¸üвÙ×÷¡£
ÀýÈ磬 Ëü¿ÉÄÜ»áÔÚϵͳµÄÃÜÂëÊý¾Ý¿âÖÐÌí¼ÓеÄÓû§×é»òÓû§¡£
ÕâЩ²Ù×÷ͨ³£ÔÚÉϴθüÐÂÖ®ºóÔö¼ÓÁËеÄÓû§×é»òÌØÊâϵͳÓû§Ö®ºóÊÇÐèÒªµÄ£¬
ÒòΪ <maketarget>installworld</maketarget> Õâ²½²Ù×÷»áÐèÒªÕâЩÓû§»ò×é²ÅÄÜ˳ÀûÍê³É¡£</para>
</listitem>
<listitem>
<para><command>make <maketarget>installworld</maketarget></command></para>
<para>´Ó <filename class="directory">/usr/obj</filename> Öи´ÖÆ world¡£
Õâ²½²Ù×÷Ö®ºó£¬ ÄúÔÚÅÌÉϵÄϵͳ£¬ °üÀ¨ÄÚºËºÍ world ¾Í¶¼ÊÇеÄÁË¡£</para>
</listitem>
<listitem>
<para><command>mergemaster</command></para>
<para>¸üÐÂÓàϵÄÅäÖÃÎļþ£¬
ÒòΪÄúµÄ world ÒѾ­¸üÐÂÍê³ÉÁË¡£</para>
</listitem>
<listitem>
<para>ÖØÆôϵͳ¡£</para>
<para>Õâ²½²Ù×÷½«¼ÓÔÚеÄÄںˣ¬ ÒÔ¼°Ð嵀 world ºÍ¸üйýµÄÅäÖÃÎļþ¡£</para>
</listitem>
</orderedlist>
<para>×¢Ò⣬ Èç¹ûÄúÕý´Óͬһ &os; °æ±¾·ÖÖ§Éý¼¶£¬ ÀýÈ磬 ´Ó 7.0 µ½
7.1£¬ ÔòÉÏÊö¹ý³Ì¿ÉÄÜûÓÐÄÇô±ØÒª£¬ ÒòΪÄú²»Ì«¿ÉÄÜÓöµ½ÑÏÖØµÄ±àÒëÆ÷¡¢
ÄÚºËÔ´´úÂë¡¢ Óû§Ì¬³ÌÐòÔ´´úÂë»òÅäÖÃÎļþ²»Æ¥ÅäµÄÇéÐΡ£
¾ÉʽµÄ <command>make <maketarget>world</maketarget></command>
È»ºóÔÙÁª±àÐÂÄں˵ÄÉý¼¶·½·¨£¬ ºÜ¿ÉÄÜÓлú»áÄܹ»Õý³£ÔË×÷¶øÍê³ÉÉý¼¶¹¤×÷¡£</para>
<para>µ«ÊÇ£¬ ÔÚ´ó°æ±¾Éý¼¶µÄ¹ý³ÌÖУ¬ ²»°´ÕÕÇ°ÃæËù½éÉܵIJÙ×÷À´½øÐÐÉý¼¶Ê±£¬
±ãºÜ¿ÉÄÜÓöµ½Ò»Ð©ÎÊÌâ¡£</para>
<para>´ËÍ⣬ »¹ÐèҪעÒâµÄÊÇ£¬ ÓÐЩʱºòÉý¼¶µÄ¹ý³ÌÖÐ
(ÀýÈç´Ó 4.<replaceable>X</replaceable> µ½ 5.0) ¿ÉÄÜ»áÐèҪһЩ¶îÍâµÄ²½Öè
(ÀýÈçÔÚ installworld ֮ǰ¸üÃû»òɾ³ýһЩÎļþ)¡£ Çë×ÐϸÔĶÁ
<filename>/usr/src/UPDATING</filename> Õâ¸öÎļþ£¬
ÌØ±ðÊÇËüµÄ½áβ²¿·ÖËù½éÉܵÄÍÆ¼öµÄÉý¼¶²Ù×÷˳Ðò¡£</para>
<para>ÓÉÓÚ¿ª·¢ÈËÔ±·¢ÏÖ²»¿ÉÄÜÍêÈ«±ÜÃâһЩ²»Æ¥Åä·½ÃæµÄÎÊÌ⣬
Õâ¸ö¹ý³ÌÒ»Ö±ÔÚÑÝ»¯¹ý³ÌÖС£ ²»¹ýÐÒÔ˵ÄÊÇ£¬ Ä¿Ç°ÍÆ¼öµÄÕâ¸öÉý¼¶²½Ö裬
Ó¦¸ÃÄܹ»Ôںܳ¤Ò»¶Îʱ¼äÄÚ²»ÐèÒª×öÈκε÷Õû¡£</para>
<note>
<para>´Ó &os; 3.<replaceable>X</replaceable> »ò¸üÔçµÄ°æ±¾½øÐÐÉý¼¶£¬
ÊÇÒ»¼þ·Ç³£Âé·³µÄÊÂÇ飻 ÇëÎñ±Ø×ÐϸÔĶÁ <filename>UPDATING</filename>
Ö®ºóÔÙ¿ªÊ¼ÕâÀàÉý¼¶¡£</para>
</note>
<para>×ܽáһϣ¬ Ä¿Ç°ÍÆ¼öµÄ´ÓÔ´´úÂëÉý¼¶ &os;
µÄ·½·¨ÊÇ£º</para>
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make buildworld</userinput>
&prompt.root; <userinput>make buildkernel</userinput>
&prompt.root; <userinput>make installkernel</userinput>
&prompt.root; <userinput>shutdown -r now</userinput></screen>
<note>
<para>ÓÐʱ£¬ ¿ÉÄÜÐèÒª¶îÍâµØÖ´ÐÐÒ»´Î
<command>mergemaster -p</command> ²ÅÄܹ»Íê³É
<maketarget>buildworld</maketarget> ²½Öè¡£
ÕâЩҪÇó£¬ »áÔÚ <filename>UPDATING</filename> ÖнøÐÐÃèÊö¡£
Ò»°ã¶øÑÔ£¬ Äú¿ÉÒÔ¼òµ¥µØÌø¹ýÕâÒ»²½£¬ Ö»Òª½øÐеIJ»ÊÇ´ó¿ç¶ÈµÄ
&os; °æ±¾Éý¼¶¡£</para>
</note>
<para>ÔÚ <maketarget>installkernel</maketarget> ³É¹¦Íê³ÉÖ®ºó£¬
ÄúÐèÒªÒýµ¼µ½µ¥Óû§Ä£Ê½ (¾ÙÀý¶øÑÔ£¬
¿ÉÒÔÔÚ¼ÓÔØÆ÷ÌáʾºóÊäÈë <command>boot -s</command>)¡£
½ÓÏÂÀ´Ö´ÐУº</para>
<screen>&prompt.root; <userinput>adjkerntz -i</userinput>
&prompt.root; <userinput>mount -a -t ufs</userinput>
&prompt.root; <userinput>mergemaster -p</userinput>
&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make installworld</userinput>
&prompt.root; <userinput>mergemaster</userinput>
&prompt.root; <userinput>reboot</userinput></screen>
<warning>
<title>ÔĶÁ½øÒ»²½µÄ˵Ã÷</title>
<para>Ç°ÃæËù¸ø³öµÄ£¬ Ö»ÊǰïÖúÄú¿ªÊ¼¹¤×÷µÄ¼òҪ˵Ã÷¡£
ÒªÇå³þµØÀí½âÿһ²½£¬ ÌØ±ðÊÇÈç¹û´òËã×ÔÐж¨ÖÆÄÚºËÅäÖã¬
¾ÍÓ¦ÔĶÁÏÂÃæµÄÄÚÈÝ¡£</para>
</warning>
</sect2>
<sect2 id="src-updating">
<title>ÔĶÁ <filename>/usr/src/UPDATING</filename></title>
<para>ÔÚÄú×öÆäËüÊÂ֮ǰ£¬ÇëÔĶÁ
<filename>/usr/src/UPDATING</filename> (»òÔÚÄúµÄÔ´ÂëÀïµÄµÈЧµÄÎļþ)¡£
Õâ¸öÎļþÒª°üº¬ÓйØÓÚÄú¿ÉÄÜÓöµ½µÄÎÊÌâµÄÖØÒªÐÅÏ¢£¬
»òÖ¸¶¨ÁËÄú¿ÉÄÜʹÓõ½µÄÃüÁîµÄÖ´ÐÐ˳Ðò¡£Èç¹û
<filename>UPDATING</filename> ÓëÄúÕâÀï¶Áµ½Ïàì¶Ü£¬ÄǾÍÏÈÒÀ¾Ý
<filename>UPDATING</filename>¡£</para>
<important>
<para>ÕýÈçÏÈǰËùÊö£¬ÔĶÁ <filename>UPDATING</filename>
²¢²»ÄÜÌæ´ú¶©ÔÄÕýÈ·µÄÓʼþÁÐ±í¡£Á½¶¼ÊÇ»¥²¹µÄ£¬²¢²»±Ë´ËÅų⡣</para>
</important>
</sect2>
<sect2 id="make-conf">
<title>¼ì²é <filename>/etc/make.conf</filename></title>
<indexterm>
<primary><filename>make.conf</filename></primary>
</indexterm>
<para>¼ì²é
<filename>/usr/share/examples/etc/make.conf</filename>
ÒÔ¼°
<filename>/etc/make.conf</filename>¡£ µÚÒ»¸öÎļþ°üº¬ÁËһЩĬÈϵ͍Òå
&ndash; ËüÃÇÖеľø´ó¶àÊý¶¼×¢Ê͵ôÁË¡£
ΪÁËÔÚÖØÐ±àÒëϵͳʱÄܹ»Ê¹ÓÃËüÃÇ£¬
Çë°ÑÕâЩѡÏî¼ÓÈëµ½ <filename>/etc/make.conf</filename>¡£
Çë×¢ÒâÔÚ <filename>/etc/make.conf</filename> ÖеÄÈκÎÉèÖÃͬʱҲ»áÓ°Ïìÿ´ÎÔËÐÐ
<command>make</command> µÄ½á¹û£¬ Òò´ËÉèÖÃһЩÊʺÏ×Ô¼ºÏµÍ³µÄÑ¡ÏîÊÇÒ»¸öºÃϰ¹ß¡£</para>
<para>Ò»°ãµÄÓû§Í¨³£»á´Ó <filename>/usr/share/examples/etc/make.conf</filename>
¸´ÖÆ
<makevar>CFLAGS</makevar> ºÍ
<makevar>NO_PROFILE</makevar> ÕâÑùµÄÉèÖõ½
<filename>/etc/make.conf</filename> Öв¢ÁîËüÃÇÉúЧ¡£</para>
<para>Ç뿼ÂÇÆäËûµÄһЩѡÏî (ÀýÈç <makevar>COPTFLAGS</makevar>¡¢
<makevar>NOPORTDOCS</makevar> µÈµÈ)£¬ ¿´¿´ÊÇ·ñºÏÓá£</para>
</sect2>
<sect2 id="updating-etc">
<title>¸üР<filename>/etc</filename> ÀïµÄÎļþ</title>
<para><filename>/etc</filename>
Ŀ¼°üº¬ÓгýÁËÄúµÄϵͳÆô¶¯Ê±Ö´ÐеĽű¾Íâ´ó²¿·ÖµÄϵͳÅäÖÃÐÅÏ¢¡£
ÓÐЩ½Å±¾Ëæ FreeBSD µÄ°æ±¾¶ø²»Í¬¡£</para>
<para>ÓÐЩÅäÖÃÎļþÔÚÌìÌìÔËÐеÄϵͳÀïÒ²ÊÇҪʹÓõ½µÄ¡£ÓÈÆäÊÇ
<filename>/etc/group</filename>¡£</para>
<para>ż¶û£¬ ×÷Ϊ°²×°¹ý³ÌµÄÒ»²¿·Ö£¬
<command>make installworld</command> »áÒªÇóÊÂÏÈ´´½¨Ä³Ð©Ìض¨µÄÓû§»ò×é¡£
ÔÚ½øÐÐÉý¼¶Ê±£¬ ËüÃÇ¿ÉÄܲ¢²»´æÔÚ¡£ Õâ»á¸øÉý¼¶Ôì³ÉÎÊÌâ¡£
ÓÐʱ£¬ <command>make buildworld</command> »á¼ì²éËüÃÇÊÇ·ñÒѾ­´æÔÚ¡£</para>
<para>×î½ü¾ÍÓиöÕâÑùµÄÀý×Ó£¬ µ±Ê±ÐÂÔöÁË <username>smmsp</username>
Óû§¡£ µ±Óû§³¢ÊÔÍê³É°²×°²Ù×÷ʱ£¬ ÔÚ &man.mtree.8; ³¢ÊÔ½¨Á¢
<filename>/var/spool/clientmqueue</filename> ʱʧ°ÜÁË¡£</para>
<para>½â¾ö°ì·¨ÊÇͨ¹ýʹÓà <option>-p</option>
Ñ¡ÏîÒÔ¹¹½¨Ç° (pre-buildworld) ģʽÔËÐÐ &man.mergemaster.8;¡£
Õâ±íʾֻ¶Ô±ÈÄÇЩ¶ÔÓڳɹ¦Ö´ÐÐ <maketarget>buildworld</maketarget>
»ò <maketarget>installworld</maketarget> Æð¹Ø¼ü×÷ÓõÄÎļþ¡£
ÔÚµÚÒ»´ÎÕâÑù×öʱ£¬ Èç¹ûʹÓõÄÊÇÔçÆÚµÄ²»Ö§³Ö
<option>-p</option> µÄ <command>mergemaster</command> °æ±¾µÄ»°£¬
ʹÓÃÔ´ÂëÖеÄа汾¼´¿É¡£</para>
<screen>&prompt.root; <userinput>cd /usr/src/usr.sbin/mergemaster</userinput>
&prompt.root; <userinput>./mergemaster.sh -p</userinput></screen>
<tip>
<para>Èç¹ûÄúÊǸöƫִ¿ñ (paranoid)£¬
Äú¿ÉÒÔ¼ì²éÄúµÄϵͳ¿´¿´ÄĸöÎļþÊôÓÚÄúÒѸüÃû»òɾ³ýÁ˵ÄÄǸö×é¡£</para>
<screen>&prompt.root; <userinput>find / -group <replaceable>GID</replaceable> -print</userinput></screen>
<para>½«ÏÔʾËùÓÐ <replaceable>GID</replaceable> ×é
(¿ÉÒÔÊÇ×éÃûÒ²¿ÉÒÔÊÇÊý×ÖµØ×é ID)ËùÓеÄÎļþ¡£</para>
</tip>
</sect2>
<sect2 id="makeworld-singleuser">
<title>¸ÄΪµ¥Óû§Ä£Ê½</title>
<indexterm><primary>µ¥Óû§ ģʽ</primary></indexterm>
<para>Äú¿ÉÄÜÏëÔÚµ¥Óû§Ä£Ê½Ï±àÒëϵͳ¡£
³ýÁ˶Ըü¿ì´¦ÀíÊÂÇéÏÔÈ»Óкô¦Í⣬ ÖØ×°ÏµÍ³½«´¥¼°Ðí¶àÖØÒªµÄϵͳÎļþ£¬
°üÀ¨ËùÓбê׼ϵͳ¶þ½øÖÆÎļþ¡¢¿âÎļþ¡¢°üº¬ (include)
ÎļþµÈµÈ¡£ ÔÚÕýÔËÐеÄϵͳ (ÓÈÆäÊÇÔÚÓлîÔ¾µÄÓû§µÄʱºò)
Öиü¸ÄÕâЩÎļþÊÇ×ÔѰ·³ÄÕ¡£</para>
<indexterm><primary>¶àÓû§Ä£Ê½</primary></indexterm>
<para>ÁíÒ»ÖÖģʽÊÇÔÚ¶àÓû§Ä£Ê½Ï±àÒëϵͳ£¬È»ºóת»»µ½µ¥Óû§Ä£Ê½Ï°²×°¡£
Èç¹ûÄúϲ»¶ÕâÖÖ·½Ê½£¬Ö»ÐèÔÚ½¨Á¢ (build) Íê³Éºó²ÅÖ´ÐÐϱߵIJ½Öè¡£
ÄúÍÆ³Ùת»»µ½µ¥Óû§Ä£Ê½ÏÂÖ±µ½Äú±ØÐë <maketarget>installkernel</maketarget>
»ò <maketarget>installworld</maketarget>¡£</para>
<para>´ÓÔËÐеÄϵͳÀÒÔ³¬¼¶Óû§·½Ê½Ö´ÐУº</para>
<screen>&prompt.root; <userinput>shutdown now</userinput></screen>
<para>ÕâÑù¾Í»áת»»µ½µ¥Óû§Ä£Ê½¡£</para>
<para>³ý´ËÖ®Í⣬ Ò²¿ÉÒÔÖØÆôϵͳ£¬ ²¢ÔÚÆô¶¯²Ëµ¥´¦Ñ¡Ôñ
<quote>single user</quote>(µ¥Óû§) Ñ¡Ïî¡£ ÕâÑùϵͳ½«ÒÔµ¥Óû§Ä£Ê½Æô¶¯¡£
½Ó×Å£¬ ÔÚ shell Ìáʾ·û´¦Ö´ÐУº</para>
<screen>&prompt.root; <userinput>fsck -p</userinput>
&prompt.root; <userinput>mount -u /</userinput>
&prompt.root; <userinput>mount -a -t ufs</userinput>
&prompt.root; <userinput>swapon -a</userinput></screen>
<para>Õâ»á¼ì²éÎļþϵͳ£¬ÖØÐ½« <filename>/</filename>
ÒÔ¶Á/дģʽ¹Ò½Ó£¬ ²Î¿¼ <filename>/etc/fstab</filename>
¹Ò½ÓÆäËüËùÓÐµÄ UFS Îļþϵͳ£¬È»ºóÆôÓý»»»Çø¡£</para>
<note>
<para>Èç¹ûÄúµÄ CMOS ʱÖÓÊÇÉèÖÃΪ±¾µØÊ±¼ä£¬¶ø²»ÊÇ GMT
(Èç¹û &man.date.1; ÃüÁîÊä³ö²»ÄÜÏÔʾÕýÈ·µÄʱ¼äºÍµØÇøÒ²È·ÓÐÆäÊÂ)£¬
Äú¿ÉÄÜÒ²ÐèÒªÖ´ÐÐϱߵÄÃüÁ</para>
<screen>&prompt.root; <userinput>adjkerntz -i</userinput></screen>
<para>ÕâÑù¿ÉÒÔÈ·¶¨ÄúÕýÈ·µÄ±¾µØÊ±ÇøÉèÖÃ&mdash;²»ÕâÑù×ö£¬
ÄúÒÔºó¿ÉÄÜ»áÅöµ½Ò»Ð©ÎÊÌâ¡£</para>
</note>
</sect2>
<sect2 id="cleaning-usr-obj">
<title>ɾ³ý <filename>/usr/obj</filename></title>
<para>Ëæ×ÅÖØÐ¹¹½¨ÏµÍ³µÄ½øÐУ¬ ±àÒë½á¹û»á·Åµ½ (ĬÈÏÇé¿öÏÂ)
<filename>/usr/obj</filename> Ï¡£ ÕâЩĿ¼»áÓ³Éäµ½
<filename>/usr/src</filename>¡£</para>
<para>ͨ¹ýɾ³ýÕâ¸öĿ¼£¬ ¿ÉÒÔ¼ÓËÙ <command>make buildworld</command>
µÄ¹ý³Ì£¬ ²¢±ÜÃâÏ໥ÒÀÀµ¹ØÏµµÈ¸´ÔÓµÄÎÊÌâ¡£</para>
<para><filename>/usr/obj</filename>
ÖеÄijЩÎļþ¿ÉÄÜÉèÖÃÁ˲»¿É¸Ä±ê¼Ç (ÏêÇé²Î¼û &man.chflags.1;)£¬
ÐèÒªÊ×ÏÈÈ¥µôÕâЩ±êÖ¾¡£</para>
<screen>&prompt.root; <userinput>cd /usr/obj</userinput>
&prompt.root; <userinput>chflags -R noschg *</userinput>
&prompt.root; <userinput>rm -rf *</userinput></screen>
</sect2>
<sect2 id="updating-upgrading-compilebase">
<title>ÖØÐ±àÒë»ù±¾ÏµÍ³</title>
<sect3>
<title>±£´æÊä³ö</title>
<para>½¨Òé°ÑÖ´ÐÐ &man.make.1; ºóµÃµ½µÄÊä³ö´æ³ÉÒ»¸öÎļþ¡£
Èç¹ûʲôµØ·½³öÁË´í£¬Äú¾Í»áÓиö´íÎóÐÅÏ¢µÄ±¸·Ý¡£
¾¡¹ÜÕâÑù²»ÄܰïÄú·ÖÎöÄÄÀï³öÁË´í£¬
µ«Èç¹ûÄú°ÑÄúµÄÎÊÌâÌùµ½Ä³¸öÓʼþÁбíÀï¾ÍÄܰïÖúÆäËûµÄÈË¡£</para>
<para>ÕâÑù×ö×î¼òµ¥µÄ°ì·¨ÊÇʹÓà &man.script.1;
ÃüÁͬÊÇ´øÉϲÎÊýÖ¸¶¨´æ·ÅÊä³öµÄÎļþÃû¡£
ÄúÓ¦ÔÚÖØ½¨ÏµÍ³Ö®Ç°Á¢¼´ÕâÑù×ö£¬È»ºóÔÚ¹ý³ÌÍê³ÉʱÊäÈë
<userinput>exit</userinput>¡£</para>
<screen>&prompt.root; <userinput>script /var/tmp/mw.out</userinput>
Script started, output file is /var/tmp/mw.out
&prompt.root; <userinput>make TARGET</userinput>
<emphasis>&hellip; compile, compile, compile &hellip;</emphasis>
&prompt.root; <userinput>exit</userinput>
Script done, &hellip;</screen>
<para>Èç¹ûÄúÕâÑù×ö£¬¾Í <emphasis>²»Òª</emphasis> °ÑÎļþ´æµ½
<filename>/tmp</filename> Àï±ß¡£ÏÂ´ÎÆô¶¯Ê±£¬Õâ¸öĿ¼¾Í»á±»Çå³ýµô¡£
´æ·ÅµÄ×îºÃµØ·½ÊÇ <filename>/var/tmp</filename> (ÈçÉϸöʵÀý)»ò
<username>root</username> µÄÖ÷Ŀ¼¡£</para>
</sect3>
<sect3 id="make-buildworld">
<title>±àÒë»ù±¾ÏµÍ³</title>
<para>Äú±ØÐëÔÚ<filename>/usr/src</filename>Ŀ¼Àï±ß£º</para>
<screen>&prompt.root; <userinput>cd /usr/src</userinput></screen>
<para>(µ±È»£¬³ý·ÇÄúµÄÔ´ÂëÊÇÔÚÆäËüµØ·½£¬ÕæÊÇÕâÑùµÄ»°¸ü»»³ÉÄǸöĿ¼¾ÍÐÐÁË)¡£</para>
<indexterm><primary><command>make</command></primary></indexterm>
<para>ʹÓà &man.make.1; ÃüÁîÖØ½¨ÏµÍ³¡£Õâ¸öÃüÁî»á´Ó
<filename>Makefile</filename> (ÃèÊö×é³É &os; µÄ³ÌÐòÓ¦¸ÃÔõÑù±»Öؽ¨£¬
ÒÔʲôÑùµÄ˳Ðò½¨Á¢µÈµÈ) Àï¶ÁȡָÁî¡£</para>
<para>ÊäÈëµÄÒ»°ãÃüÁî¸ñʽÈçÏ£º</para>
<screen>&prompt.root; <userinput>make -<replaceable>x</replaceable> -D<replaceable>VARIABLE</replaceable> <replaceable>target</replaceable></userinput></screen>
<para>Õâ¸öÀý×ÓÀ<option>-<replaceable>x</replaceable></option>
ÊǻᴫµÝ¸ø &man.make.1; µÄÒ»¸öÑ¡Ïî¡£²é¿´ &man.make.1;
ÊÖ²áÓÐÄú¿ÉÓõÄÑ¡ÏîÀý×Ó¡£</para>
<para><option>-D<replaceable>VARIABLE</replaceable></option>
´«µÝÒ»¸ö±äÁ¿¸ø <filename>Makefile</filename>¡£ÕâЩ±äÁ¿¿ØÖÆÁË
<filename>Makefile</filename> µÄÐÐΪ¡£ÕâЩͬ
<filename>/etc/make.conf</filename> ÉèÖõıäÁ¿Ò»Ñù£¬
Ö»ÊÇÌṩÁËÁíÒ»ÖÖÉèÖÃËüÃǵķ½·¨¡£</para>
<screen>&prompt.root; <userinput>make -DNO_PROFILE <replaceable>target</replaceable></userinput></screen>
<para>ÊÇÁíÒ»ÖÖÖ¸¶¨²»±»½¨Á¢ (built) µÄÏȶ¨¿â
(profiled libraries) µÄ·½Ê½£¬Ð­Í¬
<filename>/etc/make.conf</filename> ÀïµÄ</para>
<programlisting>NO_PROFILE= true # ±ÜÃâ±àÒëÐÔÄÜ·ÖÎö¿â</programlisting>
<para>Ò»ÆðʹÓá£</para>
<para><replaceable>Ä¿±ê (target)</replaceable> ¸æËß
&man.make.1; ʲô¸Ã×ö¡£Ã¿¸ö <filename>Makefile</filename>
¶¨ÒåÁËÒ»¶¨ÊýÁ¿²»Í¬µÄ<quote>Ä¿±ê (targets)</quote>£¬
È»ºóÄúÑ¡ÔñµÄÄ¿±ê¾Í¾ö¶¨ÁËʲô»á·¢Éú¡£</para>
<para>ÓÐЩĿ±êÁÐÔÚ <filename>Makefile</filename>
ÀïµÄ£¬µ«²¢²»Òâζ×ÅÄúÒªÖ´ÐС£Ïà·´£¬½¨Á¢¹ý³Ì (build process)
ÀûÓÃËüÃǰÑÖØ½¨ÏµÍ³µÄһЩ±ØÒªµÄ²½Öè·Ö¸î³É¼¸¸ö×Ó²½Öè¡£</para>
<para>´ó²¿·ÖµÄʱ¼ä²»ÐèÒªÏò &man.make.1;
´«µÝ²ÎÊý£¬Òò´ËÄúµÄÃüÁî¿´ÆðÀ´¿ÉÄÜÏóÕâÑù£º</para>
<screen>&prompt.root; <userinput>make <replaceable>target</replaceable></userinput></screen>
<para>´Ë´¦ <replaceable>target</replaceable> ±íʾµÄÊÇÈô¸É±àÒëÑ¡Ïî¡£
¶àÊýÇé¿öÏ£¬ µÚÒ»¸ö target ¶¼Ó¦¸ÃÊÇ
<makevar>buildworld</makevar>¡£</para>
<para>ÕýÈçÃû×ÖËù°µÊ¾µÄ£¬<maketarget>buildworld</maketarget>
ÔÚ <filename>/usr/obj</filename> ϱ߽¨Á¢ÁËÒ»¸öȫеÄÊ÷£¬ È»ºóʹÓÃÁíÒ»¸ö target£¬
<maketarget>installworld</maketarget> ÔÚµ±Ç°µÄ»úÆ÷Àï°²×°Ëü¡£</para>
<para>½«ÕâЩѡÏî·Ö¿ªÓÐÁ½¸öÓŵ㡣 Ê×ÏÈ£¬ ËüÔÊÐíÄú°²È«µØÍê³É½¨Á¢
(build)£¬ ¶ø²»¶ÔÕýÔÚÔËÐеÄϵͳµÄ×é¼þ²úÉúÓ°Ïì¡£
¹¹½¨¹ý³ÌÊÇ <quote>×ÔÖ÷µÄ (self hosted)</quote>¡£ ÒòΪÕâÑù£¬
Äú¿ÉÒÔ°²È«µØÔÚÒÔ¶àÓû§Ä£Ê½ÔËÐеĻúÆ÷ÀïÖ´ÐÐ
<maketarget>buildworld</maketarget> £¬¶ø²»Óõ±ÐIJ»Á¼Ó°Ïì¡£
µ«ÊÇÒÀÈ»ÍÆ¼öÄúÔÚµ¥Óû§Ä£Ê½Ê±ÔËÐÐ
<maketarget>installworld</maketarget>¡£</para>
<para>µÚ¶þ£¬ÔÊÐíÄúʹÓà NFS ¹Ò½Ó (NFS mounts)
Éý¼¶ÄúÍøÂçÀïµÄ¶ą̀¼ÆËã»ú¡£Èç¹ûÄúÓÐÈý̨
<hostid>A</hostid>¡¢<hostid>B</hostid> ºÍ <hostid>C</hostid>
Ïë½øÐÐÉý¼¶£¬ÔÚ<hostid>A</hostid> Ö´ÐÐ
<command>make buildworld</command> ºÍ
<command>make installworld</command>¡£ È»ºó½«
<hostid>A</hostid> ÉϵÄ
<filename>/usr/src</filename> ºÍ
<filename>/usr/obj</filename> ͨ¹ý NFS ¹Ò½Óµ½
<hostid>B</hostid> ºÍ <hostid>C</hostid> ÉÏ£¬ ½ÓÏÂÀ´£¬ Ö»ÐèÔÚ
<hostid>B</hostid> ºÍ <hostid>C</hostid> ÉÏʹÓÃ
<command>make installworld</command>
À´°²×°¹¹½¨µÄ½á¹û¾Í¿ÉÒÔÁË¡£</para>
<para>¾¡¹Ü <maketarget>world</maketarget> target
ÈÔÈ»´æÔÚ£¬Ç¿ÁÒ½¨ÒéÄú²»ÒªÓÃËü¡£</para>
<para>ÔËÐÐ</para>
<screen>&prompt.root; <userinput>make buildworld</userinput></screen>
<para>ÎÒÃÇÌṩÁËÒ»¸öÊÔÑéÐԵŦÄÜ£¬ ¿ÉÒÔÔÚ¹¹½¨¹ý³ÌÖÐΪ
<command>make</command> Ö¸¶¨ <option>-j</option> ²ÎÊý£¬
ÁîÆäÔÚ¹¹½¨¹ý³ÌÖÐͬʱÆô¶¯¶à¸ö²¢·¢µÄ½ø³Ì¡£ ¶ÔÓÚ¶à CPU µÄ»úÆ÷¶øÑÔ£¬
ÕâÑù×öÓÐÖúÓÚ·¢»ÓÆäÐÔÄÜ¡£ ²»¹ý£¬ ÓÉÓÚ±àÒë¹ý³ÌÖÐµÄÆ¿¾±Ö÷ÒªÊÇÔÚ IO
¶ø²»ÊÇ CPU ÉÏ£¬ Òò´ËËüÒ²»á¶Ôµ¥ CPU µÄ»úÆ÷´øÀ´ºÃ´¦¡£</para>
<para>¶ÔµäÐ͵ĵ¥ CPU »úÆ÷£¬ ¿ÉÒÔʹÓãº</para>
<screen>&prompt.root; <userinput>make -j4 buildworld</userinput></screen>
<para>ÕâÑù£¬ &man.make.1; »á×î¶àͬʱÆô¶¯ 4 ¸ö½ø³Ì¡£
´Ó·¢µ½ÓʼþÁбíÖеľ­Ñé¿´£¬ ÕâÑù×öÄÜ´øÀ´×î¼ÑµÄÐÔÄÜ¡£</para>
<para>Èç¹ûÄúʹÓõĻúÆ÷Óжà¿Å CPU£¬ ²¢ÇÒÅäÖÃÁË SMP µÄÄںˣ¬
Ò²¿ÉÒÔÊÔÊÔ¿´ 6 µ½ 10 µÄÊýÖµ£¬ ²¢¹Û²ìÊÇ·ñÄÜ´øÀ´¹¹½¨ÐÔÄÜÉϵĸÄÉÆ¡£</para>
</sect3>
<sect3>
<title>ºÄʱ</title>
<indexterm>
<primary>rebuilding <quote>world</quote></primary>
<secondary>timings</secondary>
</indexterm>
<para>Áª±à»ù±¾ÏµÍ³ËùÐèµÄʱ¼ä»áÊܵ½ºÜ¶àÒòËØµÄÓ°Ï죬
²»¹ý£¬ ½ÏеĻúÆ÷Ó¦¸Ã¶¼ÄÜÔÚÒ»Á½¸öСʱ֮ÄÚÍê³É &os.stable; Ô´´úÂëµÄ¹¹½¨£¬
¶øÎÞÐëÈκμ¼ÇÉ»ò½Ý¾¶¡£ Íê³É &os.current; Ô´´úÂëµÄÁª±à£¬
Ôòͨ³£ÐèÒª¸ü³¤Ò»Ð©µÄʱ¼ä¡£</para>
</sect3>
</sect2>
<sect2 id="new-kernel">
<title>±àÒëºÍ°²×°ÐÂÄÚºË</title>
<indexterm>
<primary>ÄÚºË</primary>
<secondary>±àÒë</secondary>
</indexterm>
<para>Òª³ä·ÖÀûÓÃÄúµÄÐÂϵͳ£¬ÄúÓ¦¸ÃÖØÐ±àÒëÄںˡ£
ÕâÊǺÜÓбØÒªµÄ£¬ÒòÎªÌØ¶¨µÄÄÚ´æ½á¹¹ÒѾ­·¢ÉúÁ˸ı䣬Ïñ
&man.ps.1; ºÍ &man.top.1; ÕâÑùµÄ³ÌÐò»á²»Äܹ¤×÷£¬
³ý·ÇÄÚºËͬԴÂëÊ÷µÄ°æ±¾ÊÇÒ»ÑùµÄ¡£</para>
<para>×î¼òµ¥¡¢×ȫµÄ·½Ê½ÊÇ build ²¢°²×°Ò»¸ö»ùÓÚ
<filename>GENERIC</filename> µÄÄںˡ£ËäÈ»
<filename>GENERIC</filename>
¿ÉÄÜûÓÐÊʺÏÄúµÄϵͳµÄËùÓбØÒªµÄÉ豸£¬
µ«Ëü°üÀ¨ÁËÆô¶¯ÄúµÄϵͳµ½µ¥Óû§Ä£Ê½Ëù±ØÐèµÄÄÚÈÝ¡£
ÕâÊǸö²»´íµÄ¼ì²âÐÂϵͳÊÇ·ñ¹¤×÷Õý³£µÄ²âÊÔ¡£ÔÚ´Ó
<filename>GENERIC</filename> Æô¶¯¡¢ºËʵϵͳ¿ÉÒÔ¹¤×÷ºó£¬
Äú¾Í¿ÉÒÔ½¨Á¢ (build) Ò»¸ö»ùÓÚÄúµÄÕý³£ÄÚºËÅäÖÃÎļþµÄеÄÄÚºËÁË¡£</para>
<para>ÔÚ &os; ÖУ¬ Ê×ÏÈÍê³É <link
linkend="make-buildworld">build world</link> È»ºóÔÙ±àÒëÐÂÄں˷dz£ÖØÒª¡£</para>
<note><para>Èç¹ûÄúÏ뽨Á¢Ò»¸ö¶¨ÖÆÄںˣ¬¶øÇÒÒѾ­ÓÐÁËÅäÖÃÎļþ£¬
Ö»ÐèÏóÕâÑùʹÓà <literal>KERNCONF=<replaceable>MYKERNEL</replaceable>£º</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>
</note>
<para>×¢Ò⣬Èç¹ûÄúÒÑ°Ñ <literal>Äں˰²È«¼¶±ð(kern.securelevel)</literal>
µ÷¸ßµ½ÁË 1 ÒÔÉÏ£¬¶øÇÒ»¹ÉèÖÃÁË <literal>noschg</literal>
»òÏàËÆµÄ±êʶµ½ÁËÄúµÄÄں˶þ½øÖÆÀï±ß£¬Äú¿ÉÄܻᷢÏÖת»»µ½µ¥Óû§Ä£Ê½ÀïʹÓÃ
<maketarget>installkernel</maketarget> ÊǺÜÓбØÒªµÄ¡£
Èç¹ûÄúûÓÐÉèÖÃËü£¬ ÔòÓ¦¸ÃÒ²ÄܺÁÎÞÎÊÌâµØÔÚ¶àÓû§Ä£Ê½Ö´ÐÐÕâÁ½¸öÃüÁî¡£ Çë²Î¿¼
&man.init.8; ÒÔÁ˽â¸ü¶à¹ØÓÚ <literal>Äں˰²È«¼¶(kern.securelevel)</literal>
µÄÐÅÏ¢£»²é¿´ &man.chflags.1; Á˽â¸ü¶à¹ØÓÚ²»Í¬Îļþ±êʶµÄÐÅÏ¢¡£</para>
</sect2>
<sect2 id="new-kernel-singleuser">
<title>ÖØÆôµ½µ¥Óû§Ä£Ê½</title>
<indexterm><primary>µ¥Óû§Ä£Ê½</primary></indexterm>
<para>ÄúÓ¦¸Ãµ¥Óû§Ä£Ê½²âÊÔÐÂÄںˡ£ÕÕ<xref
linkend="makeworld-singleuser">´¦µÄ˵Ã÷È¥×ö¡£</para>
</sect2>
<sect2 id="make-installworld">
<title>°²×°±àÒëºÃµÄÐÂϵͳ</title>
<para>Èç¹ûÄúÕý½¨Á¢Ò»¸ö×ãÒÔʹÓà <command>make buildworld</command>
µÄ &os; °æ±¾£¬ÄÇôÄúÏÖÔÚÓ¦¸ÃʹÓÃ
<maketarget>installworld</maketarget> À´°²×°ÐµÄϵͳ¶þ½øÖÆ¡£</para>
<para>Ö´ÐÐ</para>
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make installworld</userinput></screen>
<note>
<para>Èç¹ûÔÚ <command>make buildworld</command>
µÄÃüÁîÐÐÖ¸¶¨Á˱äÁ¿£¬Äú¾Í±ØÐëÔÚ
<command>make installworld</command> ÃüÁîÐÐÀïÖ¸¶¨Í¬ÑùµÄ±äÁ¿¡£
¶ÔÓÚÆäËüµÄÑ¡Ïî²¢²»ÊDZØÐèµÄ£¬È磬<option>-j</option>
¾Í²»ÄÜͬ <maketarget>installworld</maketarget> Ò»ÆðʹÓá£</para>
<para>¾ÙÀý£¬ÄúÖ´ÐÐÁË£º</para>
<screen>&prompt.root; <userinput>make -DNO_PROFILE buildworld</userinput></screen>
<para>Äú¾Í±ØÐëʹÓãº</para>
<screen>&prompt.root; <userinput>make -DNO_PROFILE installworld</userinput></screen>
<para>À´°²×°½á¹û£¬·ñÔò¾ÍÒªÊÔ×Ű²×°Ïȶ¨ (profiled) µÄÔÚ
<command>make buildworld</command> ½×¶ÎûÓн¨Á¢ (built)
µÄ¶þ½øÖÆÎļþ¡£</para>
</note>
</sect2>
<sect2 id="post-installworld-updates">
<title>²»ÊÇÓÉ <command>make installworld</command> ¸üеĸüÐÂÎļþ</title>
<para>ÖØÐ±àÒëÕû¸öϵͳ²»»áʹÓÃеĻò¸Ä¹ýµÄÅäÖÃÎļþ¸üÐÂijЩĿ¼
(ÓÈÆäÏñ <filename>/etc</filename>¡¢<filename>/var</filename>
ºÍ <filename>/usr</filename>)</para>
<para>¸üÐÂÕâЩÎļþ×î¼òµ¥µÄ·½Ê½¾ÍÊÇʹÓÃ
&man.mergemaster.8;£¬ÊÖ¹¤È¥×öÒ²ÊÇ¿ÉÒԵģ¬Ö»ÒªÄúÔ¸Òâ¡£
²»¹ÜÄúÑ¡ÔñÄÄÒ»ÖÖ£¬Ò»¶¨¼ÇµÃ±¸·Ý
<filename>/etc</filename> ÒÔ·À³ö´í¡£</para>
<sect3 id="mergemaster">
<sect3info>
<authorgroup>
<author>
<firstname>Tom</firstname>
<surname>Rhodes</surname>
<contrib>¹±Ï×Õߣº</contrib>
</author>
</authorgroup>
</sect3info>
<title><command>mergemaster</command></title>
<indexterm><primary><command>mergemaster</command></primary></indexterm>
<para>&man.mergemaster.8; ¹¤¾ßÊǸö Bourne ½Å±¾£¬ÓÃÓÚ¼ì²â
<filename>/etc</filename> ºÍ <filename>/usr/src/etc</filename>
Ô´ÂëÊ÷Àï±ßµÄÅäÖÃÎļþµÄ²»Í¬µã¡£
ÕâÊDZ£³ÖϵͳÅäÖÃÎļþͬԴÂëÊ÷ÀïµÄÒ»Æð¸üеÄÍÆ¼ö·½Ê½¡£</para>
<para>ÔÚÌáʾ·ûÀï¼òµ¥µØÊäÈë <command>mergemaster</command>
¾Í¿ÉÒÔ¿ªÊ¼£¬²¢¹Û¿´ËüµÄ¿ªÊ¼¹ý³Ì¡£<command>mergemaster</command>
»á½¨Á¢Ò»¸öÁÙʱµÄ¸ù(root)»·¾³£¬ÔÚ <filename>/</filename> Ï£¬
·ÅÖø÷ÖÖϵͳÅäÖÃÎļþ¡£ÕâЩÎļþÈ»ºóͬµ±Ç°°²×°µ½ÄúϵͳÀïµÄ½øÐбȽϡ£
´Ëʱ£¬²»Í¬µÄÎļþ»áÒÔ &man.diff.1; ¸ñʽ½øÐÐÏÔʾ£¬Ê¹ÓÃ
<option>+</option> ·ûºÅ±êʶÔö¼Ó»òÐ޸ĵÄÐУ¬<option>-</option>
±êʶ½«Íêȫɾ³ýµÄÐлò½«±»Ìæ»»³ÉÐÂÐС£²é¿´ &man.diff.1;
ÊÖ²á¿ÉÒԵõ½¸ü¶à¹ØÓÚ &man.diff.1; Óï·¨ºÍÎļþ²»Í¬µãÔõÑùÏÔʾµÄÐÅÏ¢¡£</para>
<para>&man.mergemaster.8; »á¸øÄúÏÔʾÿ¸öÎļþµÄ²»Í¬´¦£¬
ÕâÑùÄú¾Í¿ÉÒÔÑ¡ÔñÊÇɾ³ýÐÂÎļþ (Ïà¶ÔÁÙʱÎļþ)£¬
ÊÇÒÔδ¸Ä״̬°²×°ÁÙʱÎļþ£¬ÊÇÒÔµ±Ç°°²×°µÄÎļþºÏ²¢ÁÙʱÎļþ£¬
»¹ÊÇÔÙ¿´Ò»´Î &man.diff.1; ½á¹û¡£</para>
<para><quote>Ñ¡Ôñɾ³ýÁÙʱÎļþ</quote>½«Ê¹ &man.mergemaster.8;
ÖªµÀÎÒÃÇÏ£Íû±£ÁôÎÒÃǵ±Ç°µÄÎļþ²»¸Ä£¬²¢É¾³ýеġ£
²¢²»ÍƼöÕâ¸öÑ¡Ôñ£¬³ý·ÇÄúûÓиü¸Äµ±Ç°ÎļþµÄÀíÓÉ¡£ÈκÎʱºòÔÚ
&man.mergemaster.8; Ìáʾ·ûÀïÊäÈë <keycap>?</keycap>£¬Äú¾Í»áµÃµ½°ïÖú¡£
Èç¹ûÑ¡ÔñÌø¹ýÎļþ£¬½«ÔÚÆäËüÎļþ´¦ÀíÍêºóÔٴνøÐС£</para>
<para><quote>Ñ¡Ôñ°²×°Î´ÐÞ¸ÄÁÙʱÎļþ</quote>½«»áʹÐÂÎļþÌæ»»µ±Ç°µÄ¡£
¶Ô´ó²¿·Öδ¸ÄµÄÎļþ£¬ÕâÊǸö×îºÃµÄÑ¡Ôñ¡£</para>
<para><quote>Ñ¡ÔñºÏ²¢Îļþ</quote>½«ÎªÄú´ò¿ªÒ»¸öÎı¾±à¼­Æ÷£¬
Àï±ßÊÇÁ½¸öÎļþµÄÄÚÈÝ¡£ÄúÏÖÔھͿÉÒÔÒ»±ßºÏ²¢ËüÃÇ£¬
Ò»±ßÔÚÆÁÄ»Àï²é¿´£¬Í¬Ê±´ÓÁ½ÕßÖÐѡȡ²¿·ÖÉú³É×îÖÕÎļþ¡£
µ±Á½¸öÎļþÒ»Æð±È½Ïʱ£¬<keycap>l</keycap> ¼ü»áÑ¡Ôñ×ó±ßµÄÄÚÈÝ£¬
<keycap>r</keycap> »áÑ¡ÔñÓұߵġ£×îÖÕµÄÊä³öÊÇÓÉÁ½¸ö²¿·Ö×é³ÉµÄÒ»¸öÎļþ£¬
ÓÃËü¾Í¿ÉÒÔ°²×°ÁË¡£Õâ¸öÑ¡Ïîͨ³£ÓÃÓÚÓû§ÐÞ¸ÄÁËÉèÖõÄÎļþ¡£</para>
<para><quote>Ñ¡ÔñÔٴβ鿴 &man.diff.1; ½á¹û</quote>½«»áÔÚÌṩ¸øÑ¡Ôñ֮ǰ£¬
ÏÔʾÎļþµÄ²»Í¬´¦£¬¾ÍÏó &man.mergemaster.8; Ëù×öµÄÒ»Ñù¡£</para>
<para>ÔÚ &man.mergemaster.8; Íê³ÉÁ˶ÔϵͳÎļþµÄ´¦Àíºó£¬
Äú»áµÃµ½ÆäËüµÄÑ¡Ïî¡£&man.mergemaster.8; ¿ÉÄÜ»áÎÊÄúÊÇ·ñÒªÖØ½¨ÃÜÂëÎļþ£¬
²¢ÔÚ×îºóÌáʾÄúÊÇ·ñҪɾ³ýÓàϵÄÁÙʱÎļþ¡£</para>
</sect3>
<sect3>
<title>ÊÖ¶¯¸üÐÂ</title>
<para>Èç¹ûÏëÒªÊÖ¹¤¸üУ¬µ«²»ÒªÖ»ÊÇ´Ó
<filename>/usr/src/etc</filename> °ÑÎļþ¸´ÖƵ½
<filename>/etc</filename> ¾ÍÁËÊ¡£ÓÐЩÎļþÊDZØÐëÏÈ<quote>°²×°</quote>µÄ¡£
ÕâÊÇÒòΪ <filename>/usr/src/etc</filename> Ŀ¼²¢ <emphasis>²»ÊÇ</emphasis>
ÏëÏñµÄÄÇÑùÊÇ <filename>/etc</filename> Ŀ¼µÄÒ»¸ö¸´ÖÆ¡£ÊÂʵÉÏ£¬ÓÐЩÊÇÎļþÊÇ
<filename>/etc</filename> Óе쬶ø <filename>/usr/src/etc</filename> Àï±ßûÓС£</para>
<para>Èç¹ûÄúʹÓà &man.mergemaster.8; (×÷ÎªÍÆ¼ö)£¬Äú¿ÉÒÔÏòÇ°Ìøµ½
<link linkend="updating-upgrading-rebooting">ÏÂÒ»½Ú</link>¡£</para>
<para>ÊÖ¹¤×ö×î¼òµ¥µÄ·½Ê½Êǰ²×°ÕâЩÎļþµ½Ò»¸öеÄĿ¼£¬Íê³ÉºóÔÙÀ´²éÕÒ²»Í¬´¦¡£</para>
<warning>
<title>±¸·ÝÄúÒÑÓÐµÄ <filename>/etc</filename></title>
<para>ËäÈ»£¬ÀíÂÛÉÏ£¬Ã»ÓÐʲô»á×Ô¶¯·ÃÎÊÕâ¸öĿ¼£¬
ÊÂÇ黹ÊÇ×öÎȲÙʤµ±Ò»µã¡£¸´ÖÆÒÑÓÐ <filename>/etc</filename>
µ½Ò»¸ö°²È«µÄµØ·½£¬È磺</para>
<screen>&prompt.root; <userinput>cp -Rp /etc /etc.old</userinput></screen>
<para><option>-R</option> Íê³ÉµÝ¹é¸´ÖÆ
(ÒëÕß×¢£º¼´¿ÉÒÔ¸´ÖÆÄ¿Â¼ÒÔϵÄËùÓÐÄÚÈÝ)£¬<option>-p</option>
±£ÁôÎļþµÄʱ¼ä¡¢ËùÊôµÈµÈ¡£</para>
</warning>
<para>ÄúÐèÒª½¨Á¢Ò»¸öÐéĿ¼ (a dummy set of directories)
À´°²×°Ð嵀 <filename>/etc</filename> ºÍÆäËüÎļþ¡£
<filename>/var/tmp/root</filename> ÊǸö²»´íµÄÑ¡Ôñ£¬
³ý´ËÖ®Í⣬»¹ÓÐһЩ×ÓĿ¼ÊÇÐèÒªµÄ¡£</para>
<screen>&prompt.root; <userinput>mkdir /var/tmp/root</userinput>
&prompt.root; <userinput>cd /usr/src/etc</userinput>
&prompt.root; <userinput>make DESTDIR=/var/tmp/root distrib-dirs distribution</userinput></screen>
<para>ÕâÑù¾Í½¨ºÃÁËÐèÒªµÄĿ¼½á¹¹£¬È»ºó°²×°Îļþ¡£ÔÚ
<filename>/var/tmp/root</filename> Ͻ¨Á¢µÄ´ó²¿·Ö×ÓĿ¼Êǿյģ¬
¶øÇÒҪɾ³ýµô¡£×î¼òµ¥µÄ·½Ê½ÊÇ£º</para>
<screen>&prompt.root; <userinput>cd /var/tmp/root</userinput>
&prompt.root; <userinput>find -d . -type d | xargs rmdir 2&gt;/dev/null</userinput></screen>
<para>ÕâÑù»áɾ³ýËùÓеĿÕĿ¼¡£(±ê×¼µÄ´íÎóÐÅÏ¢±»Öض¨Ïòµ½ÁË
<filename>/dev/null</filename>£¬ÒÔ·ÀÖ¹¹ØÓÚ·Ç¿ÕĿ¼µÄ¾¯¸æ¡£)</para>
<para><filename>/var/tmp/root</filename> ÏÖÔÚ°üº¬ÁËÓ¦·ÅÔÚ
<filename>/</filename> ÏÂij¸öλÖõÄËùÓÐÎļþ¡£
ÄúÏÖÔÚ±ØÐë×Ðϸ¼ì²éÿһ¸öÎļþ£¬¼ì²âËüÃÇÓëÄúÒÑÓеÄÎļþÓжà´ó²»Í¬¡£</para>
<para>×¢Ò⣬ÓÐЩÒѾ­°²×°ÔÚ <filename>/var/tmp/root</filename>
ϵÄÎļþÓиö<quote>.</quote>ÔÚ¿ªÍ·¡£ÔÚдµÄʱºò£¬ÏñÕâÑùΨһµÄÎļþÊÇ
<filename>/var/tmp/root/</filename> ºÍ <filename>/var/tmp/root/root/</filename>
Àï shell Æô¶¯Îļþ£¬¾¡¹Ü¿ÉÄÜÓÐÆäËüµÄ(ÒÀÀµÓÚÄúʲôʱºò¶ÁÈ¡Õâ¸ö)¡£
È·ÐÅʹÓà <command>ls -a</command> ¿ÉÒÔ¿´µ½ËüÃÇ¡£</para>
<para>×î¼òµ¥µÄ·½Ê½ÊÇʹÓà &man.diff.1; È¥±È½ÏÁ½¸öÎļþ£º</para>
<screen>&prompt.root; <userinput>diff /etc/shells /var/tmp/root/etc/shells</userinput></screen>
<para>Õâ»áÏÔʾ³ö <filename>/etc/shells</filename> ÎļþºÍеÄ
<filename>/var/tmp/root/etc/shells</filename> ÎļþµÄ²»Í¬´¦¡£
ÓÃÕâЩÀ´¾ö¶¨ÊǺϲ¢ÄúÒÑ×öµÄ±ä»¯»¹ÊǸ´ÖÆÄúµÄ¾ÉÎļþ¹ýÀ´¡£</para>
<tip>
<title>ʹÓÃÈÕ´Á (Time Stamp) ÃüÃûÐ嵀 Root(¸ù)Ŀ¼(<filename>/var/tmp/root</filename>)£¬ÕâÑùÄú¿ÉÒÔÇáËɵرȽÏÁ½¸ö°æ±¾µÄ²»Í¬</title>
<para>Ƶ·±Öؽ¨ÏµÍ³Òâζ×űØÐëÆµ·±¸üÐÂ
<filename>/etc</filename>£¬¶øÕâ¿ÉÄÜ»áÓе㷳Ëö¡£</para>
<para>Ôںϲ¢µ½ <filename>/etc</filename> µÄÎļþÀ
×îиü¸ÄµÄÄú¿ÉÒÔ×ö¸ö¸´ÖÆ£¬Óɴ˼ӿìÕâ¸ö(Ö¸¸üÐÂ)¹ý³Ì¡£
ϱ߾͸ø³öÁËÒ»¸öÔõÑù×öµÄÖ÷Òâ¡£</para>
<procedure>
<step>
<para>Ïñƽ³£Ò»Ñù½¨Á¢ÏµÍ³ (Make the world)¡£µ±ÄúÏë¸üÐÂ
<filename>/etc</filename> ºÍÆäËüĿ¼À
¸øÄ¿±êĿ¼һ¸öº¬Óе±Ç°ÈÕÆÚµÄÃû×Ö¡£¼ÙÈçÄúÊÇ 1998 Äê 2 Ô 14
ÈÕ×öµÄ£¬Äú¿ÉÒÔÖ´ÐÐϱߵģº</para>
<screen>&prompt.root; <userinput>mkdir /var/tmp/root-19980214</userinput>
&prompt.root; <userinput>cd /usr/src/etc</userinput>
&prompt.root; <userinput>make DESTDIR=/var/tmp/root-19980214 \
distrib-dirs distribution</userinput></screen>
</step>
<step>
<para>ÈçÉϱßÁгöµÄ£¬´ÓÕâ¸öĿ¼ºÏ²¢±ä»¯¡£</para>
<para>ÔÚÄúÍê³Éºó£¬<emphasis>²»Òª</emphasis> ɾ³ý
<filename>/var/tmp/root-19980214</filename> Ŀ¼¡£</para>
</step>
<step>
<para>ÔÚÄúÏÂÔØÁË×îаæµÄÔ´Âë²¢¸Ä¹ýºó£¬Ö´ÐеÚÒ»²½¡£
ÕâÑù½«µÃµ½Ò»¸öеÄĿ¼£¬¿ÉÄܽÐ×ö
<filename>/var/tmp/root-19980221</filename>
(Èç¹ûµÈÁËÒ»ÖÜ×öµÄÉý¼¶)¡£</para>
</step>
<step>
<para>ÄúÏÖÔÚÄÜ¿´µ½Á½¸öĿ¼¼äµÄ²»Í¬ÁË---ÔÚ¸ôÖܵÄʱ¼äÀïʹÓÃ
&man.diff.1; ½¨Á¢µÝ¹é diff ²úÉúµÄ²»Í¬£º</para>
<screen>&prompt.root; <userinput>cd /var/tmp</userinput>
&prompt.root; <userinput>diff -r root-19980214 root-19980221</userinput></screen>
<para>Ò»°ãÇé¿öÏ£¬ÕâÁ½ÖÖ¼äµÄ²»Í¬´¦±È
<filename>/var/tmp/root-19980221/etc</filename> ºÍ
<filename>/etc</filename> Ö®¼äµÄ²»Í¬ÒªÐ¡ºÜ¶à¡£
ÒòΪ²»Í¬µã¸üС£¬Ò²¾Í¸üÈÝÒ×°ÑÕâЩ±ä»¯ÒƵ½ÄúµÄ
<filename>/etc</filename> Ŀ¼Àï±ß¡£</para>
</step>
<step>
<para>ÄúÏÖÔÚ¿ÉÒÔɾ³ýÔçÏȵÄÁ½¸ö
<filename>/var/tmp/root-*</filename> Ŀ¼£º</para>
<screen>&prompt.root; <userinput>rm -rf /var/tmp/root-19980214</userinput></screen>
</step>
<step>
<para>ÿ´ÎÄúÐèÒªºÏ²¢ÕâЩ±ä»¯µ½ <filename>/etc</filename>
À¾ÍÖØ¸´Õâ¸öÁ÷³Ì¡£</para>
</step>
</procedure>
<para>Äú¿ÉÒÔʹÓà &man.date.1; ×Ô¶¯²úÉúĿ¼µÄÃû³Æ£º</para>
<screen>&prompt.root; <userinput>mkdir /var/tmp/root-`date "+%Y%m%d"`</userinput></screen>
</tip>
</sect3>
</sect2>
<sect2 id="updating-upgrading-rebooting">
<title>ÖØÆô</title>
<para>ÏÖÔÚÍê³ÉÁË¡£ÔÚÄú¼ì²éËùÓÐÄÚÈݶ¼·ÅÖÃÕýÈ·ºó£¬
Äú¿ÉÒÔÖØÆôϵͳÁË¡£Ö»ÊǼòµ¥µÄ &man.shutdown.8; ¿ÉÒÔÕâÑù×ö£º</para>
<screen>&prompt.root; <userinput>shutdown -r now</userinput></screen>
</sect2>
<sect2>
<title>½áÊø</title>
<para>¹§Ï²£¡ÄúÏÖÔڳɹ¦Éý¼¶ÁËÄúµÄ &os; ϵͳ¡£</para>
<para>Èç¹û»¹ÓÐÇá΢µÄ´íÎ󣬿ÉÒÔÇáÒ×µØÖؽ¨ÏµÍ³µÄÑ¡¶¨²¿·Ö¡£
ÀýÈ磬ÔÚ²¿·ÖÉý¼¶»òºÏ²¢ <filename>/etc</filename> ʱ£¬Äú²»Ð¡ÐÄɾ³ýÁË
<filename>/etc/magic</filename>£¬&man.file.1;
ÃüÁî¾Í»áÍ£Ö¹¹¤×÷¡£ÕâÖÖÇé¿öÏ£¬Ö´ÐÐϱ߽øÐÐÐÞ¸´£º</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">
<title>ÎÊÌâ</title>
<qandaset>
<qandaentry>
<question>
<para>ÿ¸ö±ä»¯Äú¶¼ÐëÒªÖØ½¨ÏµÍ³Âð£¿</para>
</question>
<answer>
<para>Õâ¸ö²»ºÃ˵£¬ÒòΪҪ¿´±ä»¯µÄÇé¿ö¡£È磬Èç¹ûÄú¸ÕÔËÐÐÁË
<application>CVSup</application>£¬²¢µÃµ½Ï±߸üеÄÎļþ£º</para>
<screen><filename>src/games/cribbage/instr.c</filename>
<filename>src/games/sail/pl_main.c</filename>
<filename>src/release/sysinstall/config.c</filename>
<filename>src/release/sysinstall/media.c</filename>
<filename>src/share/mk/bsd.port.mk</filename></screen>
<para>Õâ¾Í²»±ØÖؽ¨Õû¸öϵͳ¡£ÄúÖ»Ðèµ½Ïà¹ØµÄ×ÓĿ¼ÀïÖ´ÐÐ
<command>make all install</command>£¬½ö´Ë¶øÒÑ¡£
µ«ÊÇ£¬Èç¹ûÓÐÖØ´ó±ä»¯£¬Èç <filename>src/lib/libc/stdlib</filename>£¬
ÄÇôÄú¾ÍÒªÖØ½¨ÏµÍ³»òÖÁÉÙ¾²Ì¬Á¬½ÓµÄÄÇЩ²¿·Ö
(³ýÁËÄúÔö¼ÓµÄ²¿·Ö¶¼ÊǾ²Ì¬Á¬½ÓµÄ)¡£</para>
<para>ÔÚÕâÌìºó£¬¾ÍÊÇÄúµÄÊÂÁË¡£ÒªÊÇ˵ÿÁ½¸öÐÇÆÚÖØ½¨Ò»ÏÂϵͳµÄ»°£¬
Äú¿ÉÄÜ»á¸ßÐË¡£»òÕßÄú¿ÉÄÜÖ»ÏëÖØ×ö¸Ä±ä¹ýµÄ²¿·Ö£¬
È·ÐÅÄúÄÜÕÒ³öËùÓÐÒÀÀµ¹ØÏµ¡£</para>
<para>µ±È»£¬ËùÓÐÕâЩÒÀÀµÓÚÄúÏëÉý¼¶µÄƵÂÊ£¬ºÍÄúÊÇ·ñÏë¸ú×Ù
&os.stable; »ò &os.current;¡£</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>ÎҵıàÒëʧ°Ü£¬²¢°éËæÓÐÐí¶à 11
(»òÆäËüµÄÊý×ÖÐÅÏ¢) ºÅ´íÎó¡£ÊÇÔõô»ØÊÂѽ£¿</para>
</question>
<indexterm><primary>ÐźŠ11</primary></indexterm>
<answer>
<para>Õâ¸öͨ³£±íʾӲ¼þ´íÎó¡£
(ÖØ)½¨ÏµÍ³ÊǸöǿѹ²âÊÔϵͳӲ¼þµÄÓÐЧµØ·½Ê½£¬
²¢ÇÒ³£³£²úÉúÄÚ´æ´íÎó¡£
ÕâЩÕýºÃ±íʾËüÃÇ×ÔÒÑ×öΪ±àÒëÆ÷ÀëÆæµØËÀÓÚÊÕµ½µÄÆæ¹ÖÐÅÏ¢¡£</para>
<para>Ò»¸öÈ·ÐŵÄָʾÆ÷ÊÇÈç¹ûÖØÐ¿ªÊ¼
make£¬²¢ÇÒÕû¸ö¹ý³ÌÖлáËÀÔÚ²»Í¬µÄµãÉÏ¡£</para>
<para>¶ÔÓÚÕâÖÖÇé¿ö£¬ÄúûÓÐʲô¿É×öµÄ£¬³ýÁ˸ü»»»úÆ÷ÀïµÄ²¿¼þ£¬¿´ÊÇÄÄÒ»¸ö»µÁË¡£</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>ÎÒÍê³Éºó¿ÉÒÔɾ³ý <filename>/usr/obj</filename> Âð£¿</para>
</question>
<answer>
<para>¼ò¶ÌµØËµ£¬¿ÉÒÔ¡£</para>
<para><filename>/usr/obj</filename>
°üº¬ÁËËùÓÐÔÚ±àÒë½×¶ÎÉú³ÉµÄÄ¿±êÎļþ¡£Í¨³££¬
ÔÚ <command>make buildworld</command> ¹ý³ÌÖеÚÒ»²½Ö®Ò»¾ÍÊÇɾ³ýÕâ¸öÄ¿Â¼ÖØÐ¿ªÊ¼¡£
ÕâÖÖÇé¿öÏ£¬ÔÚÄúÍê³Éºó£¬±£Áô <filename>/usr/obj</filename>
ûÓжà´óÒâÒ壬»¹¿ÉÊÍ·ÅÒ»´ó¶Ñ´ÅÅ̿ռä(ͨ³£ÔÚ 340&nbsp;MB ×óÓÒ)¡£</para>
<para>Ö»ÊÇ£¬Èç¹ûÄúÇå³þÄúÔÚ¸Éʲô£¬Äú¿ÉÒÔÈÃ
<command>make buildworld</command> Ìø¹ýÕâÒ»²½¡£
Õâ»áÈúó¼ÌµÄ build Ö´Ðеøü¿ì£¬ÒòΪ´ó²¿·ÖµÄÔ´Âë¶¼²»±ØÔÙ½øÐбàÒëÁË¡£
Õâ¸öµÄÁíÒ»Ãæ¾ÍÔÚÓÚÃô¸ÐµÄÒÀÀµÎÊÌâ¿ÉÒÔDZÔÚ£¬
²¢ÒÔÆæ¹ÖµÄ·½Ê½ÒýÆð build µÄʧ°Ü¡£ÕâÔÚ &os; ÓʼþÁбíÀï¾­³£ÒýÆð·ÐÌÚ£¬
µ±ÓÐÈ˱§Ô¹ËûÃÇ build ʧ°Üʱ£¬²¢Ã»Òâʶµ½ÕâÊÇÒòΪ×ÔÒÑÊÇÏë³­½ü·
(Òâ˼ÊÇ˵ÉÙÁËЩ±ØÒªµÄ²½Öè)¡£</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>ÖÐ¶ÏµÄ build ¿ÉÒÔ±»»Ö¸´Âð£¿</para>
</question>
<answer>
<para>ÒÀÀµÓÚÄúÔÚÄúÕÒµ½ÎÊÌâ֮ǰÕû¸ö¹ý³Ì½øÐÐÁ˶àÔ¶¡£</para>
<para><emphasis>Ò»°ã¶øÑÔ</emphasis> (µ±È»Õâ²¢²»ÊÇÓ²ÐԹ涨)£¬
<command>make buildworld</command>
µÄ¹ý³ÌÖн«»áÊ×Ïȹ¹½¨Ð°æµÄ»ù±¾¹¹½¨¹¤¾ß (ÀýÈç &man.gcc.1;£¬ ÒÔ¼°
&man.make.1;) ºÍϵͳ¿â¡£ Ëæºó»á°²×°ÕâЩ¹¤¾ßºÍ¿â¡£
ÕâЩа汾µÄ¹¤¾ßºÍ¿âÔÚËæºó½«±»ÓÃÓÚÖØÐ±àÒëºÍÁ¬½ÓËüÃDZ¾Éí¡£
Õû¸öϵͳ (ÏÖÔÚ°üÀ¨Á˳£¹æµÄÓû§³ÌÐò£¬ ÀýÈç
&man.ls.1; »ò &man.grep.1;) »áͬаæµÄϵͳÎļþÒ»Æð±»ÖØÐ¹¹½¨¡£</para>
<para>Èç¹ûÄúÕý´¦ÓÚ×îºóÒ»¸ö½×¶Î£¬ ²¢ÇÒÁ˽âËü (ÒòΪÄúÒѾ­¿´¹ýÁËËù±£´æµÄÊä³ö)
Ôò¿ÉÒÔ (Ï൱°²È«µØ) ×ö£º</para>
<screen><emphasis>&hellip; ÎÊÌâÐÞ¸´ &hellip;</emphasis>
&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make -DNO_CLEAN all</userinput></screen>
<para>ÕâÑù¾Í²»»áÈ¡ÏûÏÈǰµÄ
<command>make buildworld</command> Ëù×öµÄ¹¤×÷ÁË¡£</para>
<para>ÔÚ<quote>make buildworld</quote>µÄÊä³öÖÐÈç¹û¿´µ½ÈçÏÂÐÅÏ¢£º</para>
<screen>--------------------------------------------------------------
Building everything..
--------------------------------------------------------------</screen>
<para>³öÏÖÔÚ <command>make buildworld</command> µÄÊä³öÖУ¬
ÔòÕâÑù×öÓ¦¸Ã²»»áÓÐʲôÎÊÌâ¡£</para>
<para>Èç¹ûûÓп´µ½ÕâÑùµÄÐÅÏ¢£¬ »òÕßÄú²»È·¶¨£¬
Ôò´ÓÍ·¿ªÊ¼¹¹½¨½«ÊÇÍòÎÞһʧµÄ×ö·¨¡£</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>ÎÒÔõÑù¼Ó¿ì½¨Á¢ÏµÍ³µÄËÙ¶È£¿</para>
</question>
<answer>
<itemizedlist>
<listitem>
<para>ÒÔµ¥Óû§Ä£Ê½ÔËÐÐ</para>
</listitem>
<listitem>
<para>°Ñ <filename>/usr/src</filename> ºÍ <filename>/usr/obj</filename>
Ŀ¼·Åµ½²»Í¬´ÅÅÌÀïµÄ¶ÀÁ¢ÎļþϵͳÀï¡£Èç¹û¿ÉÄÜ£¬ÕâЩ´ÅÅÌÔÚ²»Í¬µÄ´ÅÅÌ¿ØÖÆÆ÷Àï¡£</para>
</listitem>
<listitem>
<para>¸üºÃµÄ£¬ÊǰÑÕâЩÎļþϵͳ·ÅÖõ½¶à¸öʹÓÃ
&man.ccd.4; (Á¬½Ó´ÅÅÌÇý¶¯Æ÷--concatenated disk driver)É豸µÄ´ÅÅÌÀï¡£</para>
</listitem>
<listitem>
<para>¹Øµô profiling (ÔÚ <filename>/etc/make.conf</filename>
ÀïÉèÖà <quote>NO_PROFILE=true</quote>)¡£Äú²î²»¶àÓò»ÁËËü¡£</para>
</listitem>
<listitem>
<para>ÔÚ <filename>/etc/make.conf</filename> ÀïҲΪ
<makevar>CFLAGS</makevar> ÉèÖÃÉÏ <option>-O -pipe</option>¡£
×î¼ÑÓÅ»¯ <option>-O2</option> »á¸üÂý£¬¶øÇÒ <option>-O</option>
ºÍ <option>-O2</option> Ö®¼äµÄÓÅ»¯²î±ð»ù±¾ÉÏ¿ÉÒÔºöÂÔ¡£
<option>-pipe</option> ÈñàÒëÆ÷ʹÓùܵÀ¶ø²»ÓÃÁÙʱÎļþ½øÐÐͨÐÅ£¬
ÕâÑù¿ÉÒÔ¼õÉÙ´ÅÅÌ´æÈ¡ (ÒÔÄÚ´æ×÷Ϊ´ú¼Û)¡£</para>
</listitem>
<listitem>
<para>´«µÝ <option>-j<replaceable>n</replaceable></option> Ñ¡Ïî¸ø
&man.make.1; ÒԱ㲢·¢ÔËÐжà¸ö½ø³Ì¡£
ÕâÑù¾Í²»»á¿¼ÂÇÄúµÄÊÇ·ñÊǵ¥¸ö»ò¶à¸ö´¦ÀíÆ÷»úÆ÷¡£</para>
</listitem>
<listitem><para>´æ·Å <filename>/usr/src</filename> µÄÎļþϵͳ¿ÉÒÔʹÓÃ
<option>noatime</option> Ñ¡ÏîÀ´¹Ò½Ó (»òÖØÐ¹ҽÓ)¡£
ÕâÑù»á·ÀÖ¹Îļþϵͳ¼Ç¼ÎļþµÄ´æÈ¡Ê±¼ä¡£ Äú¿ÉÄܲ¢²»ÐèÒªÕâЩÐÅÏ¢¡£</para>
<screen>&prompt.root; <userinput>mount -u -o noatime /usr/src</userinput></screen>
<warning>
<para>Õâ¸öÀý×ÓÀï¼Ù¶¨ <filename>/usr/src</filename>
ÊÇÔÚËü×ÔÒѵÄÎļþϵͳÀï¡£Èç¹û²»ÊÇ (ÀýÈç¼ÙÉèËüÊÇ
<filename>/usr</filename> µÄ²¿·Ö)£¬ÄÇôÄú¾ÍÐèÒªÄǸöÎļþϵͳ¹Ò½Óµã£¬
¶ø²»ÊÇ <filename>/usr/src</filename>¡£</para>
</warning>
</listitem>
<listitem>
<para>´æ·Å <filename>/usr/obj</filename> µÄÎļþϵͳ¿ÉÒÔʹÓÃ
<option>async</option> Ñ¡Ïî±»¹Ò½Ó (»òÖØÐ¹ҽÓ)¡£
ÕâÑù×ö½«ÆôÓÃÒ첽дÅÌ¡£ »»¾ä»°Ëµ£¬ ¶ÔÓ¦ÓóÌÐò¶øÑÔд»áÁ¢¼´Íê³É£¬
¶øÊý¾ÝÔòÑÓ³Ù¼¸Ãë²Å»áдµ½ÅÌÀï¡£ ÕâÑù×öÄܹ»³ÉÅúµØÐ´ÏÂÊý¾Ý£¬
´Ó¶ø¼«´óµØ¸ÄÉÆÐÔÄÜ¡£</para>
<warning>
<para>×¢Ò⣬ Õâ¸öÑ¡Ïî»áʹÄúµÄÎļþϵͳ±äµÃ´àÈõ¡£
ʹÓÃÕâ¸öÑ¡Ïî»áÌá¸ßÔÚµçÔ´¶Ïµô»ò»úÆ÷·ÇÕý³£ÖØÆôʱ£¬
Îļþϵͳ½øÈë²»¿É»Ö¸´×´Ì¬µÄ¸ÅÂÊ¡£</para>
<para>Èç¹ûÔÚÕâ¸öÎļþϵͳÀï <filename>/usr/obj</filename>
ÊǺܹؼüµÄ£¬Õâ²»ÊÇÎÊÌâ¡£Èç¹ûÄúÓÐÆäËüÓмÛÖµµÄÊý¾ÝÔÚͬһ¸öÎļþϵͳ£¬
ÄÇôÔÚÄúʹÓÃÕâ¸öÑ¡ÏîÕâǰ£¬È·Èϱ¸·Ýһϡ£</para>
</warning>
<screen>&prompt.root; <userinput>mount -u -o async /usr/obj</userinput></screen>
<warning>
<para>ͬÉÏ£¬Èç¹û <filename>/usr/obj</filename>
²»ÔÚ×ÔÒѵÄÎļþϵͳÀʹÓÃÏà¹Ø¹Ò½ÓµãµÄÃû×Ö°ÑËü´ÓÀý×ÓÀï±ßÌæ»»µô¡£</para>
</warning>
</listitem>
</itemizedlist>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>Èç¹û³öÏÖÁË´íÎóÎÒ¸ÃÔõô°ì£¿</para>
</question>
<answer>
<para>¾ø¶ÔÈ·ÐÅÄúµÄ»·¾³Ã»ÓÐÏÈǰ build ÁôϵIJÐÓà¡£Õâµã¹»¼òµ¥¡£</para>
<screen>&prompt.root; <userinput>chflags -R noschg /usr/obj/usr</userinput>
&prompt.root; <userinput>rm -rf /usr/obj/usr</userinput>
&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make cleandir</userinput>
&prompt.root; <userinput>make cleandir</userinput></screen>
<para>²»´í£¬<command>make cleandir</command> ÕæµÄÒªÖ´ÐÐÁ½´Î¡£</para>
<para>È»ºóÖØÐ¿ªÊ¼Õû¸ö¹ý³Ì£¬Ê¹Óà <command>make buildworld</command> ¿ªÊ¼¡£</para>
<para>Èç¹ûÄú»¹ÓÐÎÊÌ⣬¾Í°Ñ´íÎóºÍ <command>uname -a</command>
µÄÊä³ö·¢Ë͵½ &a.questions; ÓʼþÁÐ±í¡£×¼±¸»Ø´ðÆäËü¹ØÓÚÄúµÄÉèÖõÄÎÊÌ⣡</para>
</answer>
</qandaentry>
</qandaset>
</sect2>
</sect1>
<sect1 id="small-lan">
<sect1info>
<authorgroup>
<author>
<firstname>Mike</firstname>
<surname>Meyer</surname>
<contrib>¹±Ï×Õß</contrib>
</author>
</authorgroup>
</sect1info>
<title>¸ú×Ù¶ą̀»úÆ÷</title>
<indexterm>
<primary>NFS</primary>
<secondary>°²×°¶ą̀»úÆ÷</secondary>
</indexterm>
<para>Èç¹ûÄúÓжą̀»úÆ÷Ïë¸ú×ÙͬÑùµÄÔ´ÂëÊ÷£¬
ÄÇôÈÃËüÃǶ¼ÏÂÔØÔ´Âë²¢ÖØ½¨ËùÓж«Î÷£¬¿´ÆðÓеãÀË·Ñ×ÊÔ´£º
´ÅÅÌ¿Õ¼ä¡¢ÍøÂç´ø¿íÒÔ¼° CPU ÖÜÆÚ¡£
½â¾öµÄ°ì·¨ÊÇÈÃһ̨»úÆ÷´¦Àí´ó²¿·ÖµÄ¹¤×÷£¬¶øÆäËüµÄ»úÆ÷ͨ¹ý
NFS ¹Ò½Ó (mount) ÕâЩ¹¤×÷¡£Õⲿ·ÖÁоÙÁËÒ»ÖÖÕâÑù×öµÄ·½·¨¡£</para>
<sect2 id="small-lan-preliminaries">
<title>×¼±¸</title>
<para>Ê×ÏÈ£¬È·¶¨Ò»Åú»úÆ÷£¬ÔËÐеĶþ½øÖÆ´úÂëÊÇͬһÌ×---ÎÒÃdzÆ×÷
<emphasis>¹¹½¨¼¯Èº (build set)</emphasis>¡£ ÿ̨»úÆ÷¿ÉÒÔʹÓò»Í¬µÄ¶¨ÖÆÄںˣ¬
µ«ËüÃÇÔËÐеÄÊÇÏàͬµÄÓû§Çø¶þ½øÖÆÎļþ(userland binaries)¡£
´ÓÕâÅú»úÆ÷ÖÐÑ¡Ôñһ̨»úÆ÷×öΪ <emphasis>¹¹½¨»úÆ÷(build machine)</emphasis>¡£
Õ⽫ÊÇÓÃÓÚ¹¹½¨(build)ϵͳºÍÄں˵ĻúÆ÷¡£ÏëÏñһϣ¬ËüÓ¦¸ÃÊÇһ̨¿ìËٵĻúÆ÷£¬
ÓÐ×ã¹»µÄ¿ÕÓàµÄ CPU À´Ö´ÐÐ<command>make buildworld</command>¡£
ÄúÒ²ÏëҪѡһ̨»úÆ÷×öΪ <emphasis>²âÊÔ»úÆ÷(test machine)</emphasis>£¬
Õâ¸ö½«ÓÃÓÚÈí¼þµÄ¸üÐÂÉú³É²úƷ֮ǰ¶ÔËûÃǽøÐвâÊÔ¡£Õâ¸ö
<emphasis>±ØÐë</emphasis> ÊÇһ̨ÄúÄÜÌṩµÄƽʱҲ¿ÉʹÓõĻúÆ÷¡£
Ëü¿ÉÒÔÊÇ<quote>¹¹½¨»úÆ÷</quote>£¬µ«Ã»Õâ¸ö±ØÒª¡£</para>
<para>ÔÚÕâ¸ö<quote>¹¹½¨¼¯Èº</quote>ÀïµÄËùÓлúÆ÷ÐèÒª´Óͬһ̨»úÆ÷¡¢
ͬһ¸öµãÉÏ¹Ò½Ó <filename>/usr/obj</filename> ºÍ
<filename>/usr/src</filename>¡£ÀíÏëµØ£¬
ËüÃÇÔÚ<quote>¹¹½¨»úÆ÷</quote>ÉϵÄÁ½¸ö²»Í¬µÄÇý¶¯Æ÷À
µ«ÊÇÔÚÄÇ̨»úÆ÷ÉÏ¿ÉÒÔ½øÐÐ NFS ¹Ò½Ó¡£Èç¹ûÄúÓжà¸ö<quote>¹¹½¨¼¯Èº</quote>£¬
<filename>/usr/src</filename> Ó¦¸ÃÔÚij¸ö<quote>¹¹½¨»úÆ÷</quote>ÉÏ£¬
¶øÔÚÆäËü»úÆ÷ÉϽøÐÐ NFS ¹Ò½Ó¡£</para>
<para>×îºó£¬È·ÈÏ<quote>¹¹½¨¼¯Èº</quote>ÀïËùÓлúÆ÷ÉϵÄ
<filename>/etc/make.conf</filename> ºÍ
<filename>/etc/src.conf</filename> Óë<quote>¹¹½¨»úÆ÷</quote>ÀïµÄÏàͬ¡£
ÕâÒâζ×Å<quote>¹¹½¨»úÆ÷</quote>±ØÐë¹¹½¨²¿·Ö»ù±¾ÏµÍ³ÓÃÓÚ
<quote>¹¹½¨¼¯Èº</quote>ÀïËùÓлúÆ÷µÄ°²×°¡£Í¬Ñù£¬
ÿ̨<quote>¹¹½¨»úÆ÷</quote>ÒªÓÐËü×ÔÒѵÄÄÚºËÃû×Ö£¬Ê¹ÓÃ
<filename>/etc/make.conf</filename> ÀïµÄ <makevar>KERNCONF</makevar>
½øÐÐÉèÖ㬲¢ÇÒÿ̨<quote>¹¹½¨»úÆ÷</quote>Ó¦¸Ã°ÑËüÃÇÁÐÔÚ
<makevar>KERNCONF</makevar> Àͬʱ°Ñ×ÔÒѵÄÄÚºËÁÐÔÚ×îǰ¡£
<quote>¹¹½¨»úÆ÷</quote>µÄ
<filename>/usr/src/sys/<replaceable>arch</replaceable>/conf</filename>
ÀïÒ»¶¨ÒªÓÐÿ̨»úÆ÷µÄÄÚºËÅäÖÃÎļþ£¬Èç¹ûËüÏë¹¹½¨ËüÃǵÄÄں˵ϰ¡£</para>
</sect2>
<sect2 id="small-lan-base-system">
<title>»ù±¾ÏµÍ³</title>
<para>¼ÈÈ»ËùÓеÄÍ×µ±ÁË£¬¾Í×¼±¸¹¹½¨ËùÓеĶ«Î÷¡£Èç<xref
linkend="make-buildworld">ÖÐÃèÊöµÄÒ»ÑùÔÚ<quote>¹¹½¨»úÆ÷</quote>ÉϹ¹½¨Äں˺Íϵͳ£¬
µ«ÊÇʲôҲ²»°²×°¡£ÔÚ¹¹½¨½áÊøºó£¬×ªµ½<quote>²âÊÔ»úÆ÷</quote>ÉÏ£¬
°²×°Äú¸Õ¹¹½¨µÄÄںˡ£Èç¹ûÕą̂»úÆ÷ͨ¹ý NFS ¹Ò½ÓÁË
<filename>/usr/src</filename> ºÍ <filename>/usr/obj</filename>£¬
ÔÚÄúÖØÆôµ½µ¥Óû§Ä£Ê½ÀÄúÐèÒªÆô¶¯ÍøÂçÈ»ºó¹Ò½ÓËûÃÇ¡£
×î¼òµ¥µÄ·½Ê½ÊÇÆô¶¯µ½¶àÓû§Ä£Ê½Ï£¬È»ºóÖ´ÐÐ <command>shutdown now</command>
תµ½µ¥Óû§Ä£Ê½¡£Ò»µ©½øÈ룬Äú¾Í¿ÉÒÔ°²×°ÐµÄÄں˺Íϵͳ£¬²¢Ö´ÐÐ
<command>mergemaster</command>£¬¾ÍÏñƽ³£Ò»Ñù¡£Íê³Éºó£¬
ÖØÆô·µ»Øµ½Ò»°ã¶àÓû§Ä£Ê½²Ù×÷Õą̂»úÆ÷¡£</para>
<para>ÔÚÄúÈ·ÐÅËùÓÐÔÚ <quote>²âÊÔ»ú</quote>Àï¶¼¹¤×÷Õý³£ºó£¬
¾ÍʹÓÃÏàͬµÄ¹ý³ÌÔÚ <quote>¹¹½¨¼¯Èº</quote>ÀïµÄÆäËü»úÆ÷ÀﰲװеÄÈí¼þ¡£</para>
</sect2>
<sect2 id="small-lan-ports">
<title>Ports</title>
<para>ÀàËÆµÄÏë·¨ÊÇʹÓà ports Ê÷¡£
µÚÒ»¸ö¹Ø¼üµÄ²½ÖèÊÇ´Óͬһ̨¼ÆËã»úÉϹҽÓ
<filename>/usr/ports</filename> µ½ <quote>¹¹½¨¼¯Èº</quote> ÀïµÄÈ«²¿¼ÆËã»ú¡£
È»ºóÕýÈ·ÉèÖà <filename>/etc/make.conf</filename> ¹²Ïí
distfiles¡£ÄúÓ¦°Ñ <makevar>DISTDIR</makevar> ÉèÖõ½Ò»¸ö¹²ÏíµÄĿ¼À
ÄÇÀï¿ÉÒÔ±»ÈκÎÒ»¸ö <username>root</username> Óû§Ð´È룬 ²¢ÇÒÊÇÓÉÄúµÄ
NFS ¹Ò½ÓÓ³ÉäµÄ¡£ ÉèÖÃÿһ̨»úÆ÷µÄ <makevar>WRKDIRPREFIX</makevar>
µ½Ò»¸ö±¾µØ¹¹½¨ (build) Ŀ¼¡£×îºó£¬Èç¹ûÄúÒª¹¹½¨ºÍ·¢²¼°ü
(packages)£¬ÄÇôÄúÓ¦¸ÃÉèÖà <makevar>PACKAGES</makevar>
µ½Ò»¸öÀàËÆÓÚ <makevar>DISTDIR</makevar> µÄĿ¼¡£</para>
</sect2>
</sect1>
</chapter>
<!--
Local Variables:
mode: sgml
sgml-declaration: "../chapter.decl"
sgml-indent-data: t
sgml-omittag: nil
sgml-always-quote-attributes: t
sgml-parent-document: ("../book.sgml" "part" "chapter")
End:
-->
diff --git a/zh_CN.GB2312/books/handbook/mirrors/chapter.sgml b/zh_CN.GB2312/books/handbook/mirrors/chapter.sgml
index 981c39b0b4..f0ff254588 100644
--- a/zh_CN.GB2312/books/handbook/mirrors/chapter.sgml
+++ b/zh_CN.GB2312/books/handbook/mirrors/chapter.sgml
@@ -1,3119 +1,3114 @@
<!--
The FreeBSD Documentation Project
The FreeBSD Chinese Documentation Project
- Original Revision: 1.481
+ Original Revision: 1.483
$FreeBSD$
-->
<appendix id="mirrors">
<title>»ñÈ¡ &os;</title>
<sect1 id="mirrors-cdrom">
<title>CDROM ºÍ DVD ·¢ÐÐÉÌ</title>
<sect2>
<title>ÁãÊÛºÐ×°²úÆ·</title>
<para>¿ÉÒÔ´ÓÏÂÃæ¼¸¸öÁãÊÛÉÌÄÇÀïÂòµ½ &os; µÄºÐ×°²úÆ· (&os; CD£¬
¸½¼ÓÈí¼þ£¬Ó¡Ë¢Îĵµ)£º</para>
<itemizedlist>
<listitem>
<address>
<otheraddr>CompUSA</otheraddr>
WWW: <otheraddr><ulink url="http://www.compusa.com/"></ulink></otheraddr>
</address>
</listitem>
<listitem>
<address>
<otheraddr>Frys Electronics</otheraddr>
WWW: <otheraddr><ulink url="http://www.frys.com/"></ulink></otheraddr>
</address>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>CD ºÍ DVD ¹âÅÌ</title>
<para>&os; CD ºÍ DVD ¹âÅÌ¿ÉÒÔ´ÓÐí¶àÔÚÏßÁãÊÛÉÌÄÇÀïÂòµ½£º</para>
<itemizedlist>
<listitem>
<address>
<otheraddr>&os; Mall, Inc.</otheraddr>
<street>700 Harvest Park Ste F</street>
<city>Brentwood</city>, <state>CA</state> <postcode>94513</postcode>
<country>USA</country>
Phone: <phone>+1 925 240-6652</phone>
Fax: <fax>+1 925 674-0821</fax>
Email: <email>info@freebsdmall.com</email>
WWW: <otheraddr><ulink url="http://www.freebsdmall.com/"></ulink></otheraddr>
</address>
</listitem>
<listitem>
<address>
<otheraddr>Dr. Hinner EDV</otheraddr>
<street>St. Augustinus-Str. 10</street>
<postcode>D-81825</postcode> <city>M&uuml;nchen</city>
<country>Germany</country>
Phone: <phone>(089) 428 419</phone>
WWW: <otheraddr><ulink url="http://www.hinner.de/linux/freebsd.html"></ulink></otheraddr>
</address>
</listitem>
<listitem>
<address>
<otheraddr>Ikarios</otheraddr>
<street>22-24 rue Voltaire</street>
<postcode>92000</postcode> <city>Nanterre</city>
<country>France</country>
WWW: <otheraddr><ulink url="http://ikarios.com/form/#freebsd"></ulink></otheraddr>
</address>
</listitem>
<listitem>
<address>
<otheraddr>JMC Software</otheraddr>
<country>Ireland</country>
Phone: <phone>353 1 6291282</phone>
WWW: <otheraddr><ulink url="http://www.thelinuxmall.com"></ulink></otheraddr>
</address>
</listitem>
<listitem>
<address>
<otheraddr>The Linux Emporium</otheraddr>
<street>Hilliard House, Lester Way</street>
<city>Wallingford</city>
<postcode>OX10 9TA</postcode>
<country>United Kingdom</country>
Phone: <phone>+44 1491 837010</phone>
Fax: <fax>+44 1491 837016</fax>
WWW: <otheraddr><ulink url="http://www.linuxemporium.co.uk/products/bsd/"></ulink></otheraddr>
</address>
</listitem>
<listitem>
<address>
<otheraddr>Linux+ DVD Magazine</otheraddr>
<street>Lewartowskiego 6</street>
<city>Warsaw</city>
<postcode>00-190</postcode>
<country>Poland</country>
Phone: <phone>+48 22 860 18 18</phone>
Email: <email>editors@lpmagazine.org</email>
WWW: <otheraddr><ulink url="http://www.lpmagazine.org/"></ulink></otheraddr>
</address>
</listitem>
<listitem>
<address>
<otheraddr>Linux System Labs Australia</otheraddr>
<street>21 Ray Drive</street>
<city>Balwyn North</city>
<postcode>VIC - 3104</postcode>
<country>Australia</country>
Phone: <phone>+61 3 9857 5918</phone>
Fax: <fax>+61 3 9857 8974</fax>
WWW: <otheraddr><ulink url="http://www.lsl.com.au"></ulink></otheraddr>
</address>
</listitem>
<listitem>
<address>
<otheraddr>LinuxCenter.Ru</otheraddr>
<street>Galernaya Street, 55</street>
<city>Saint-Petersburg</city>
<postcode>190000</postcode>
<country>Russia</country>
Phone: <phone>+7-812-3125208</phone>
Email: <email>info@linuxcenter.ru</email>
WWW: <otheraddr><ulink url="http://linuxcenter.ru/shop/freebsd"></ulink></otheraddr>
</address>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>·¢ÐÐÈË</title>
<para>Èç¹ûÄúÊÇÏúÊÛÉ̲¢ÇÒÏëÏúÊÛ &os; CDROM ²úÆ·£¬
ÇëºÍ·¢ÐÐÈËÁªÏµ£º</para>
<itemizedlist>
<listitem>
<address>
<otheraddr>Cylogistics</otheraddr>
<street>809B Cuesta Dr., #2149</street>
<city>Mountain View</city>, <state>CA</state> <postcode>94040</postcode>
<country>USA</country>
Phone: <phone>+1 650 694-4949</phone>
Fax: <fax>+1 650 694-4953</fax>
Email: <email>sales@cylogistics.com</email>
WWW: <otheraddr><ulink url="http://www.cylogistics.com/"></ulink></otheraddr>
</address>
</listitem>
<listitem>
<address>
<otheraddr>Ingram Micro</otheraddr>
<street>1600 E. St. Andrew Place</street>
<city>Santa Ana</city>, <state>CA</state> <postcode>92705-4926</postcode>
<country>USA</country>
Phone: <phone>1 (800) 456-8000</phone>
WWW: <otheraddr><ulink url="http://www.ingrammicro.com/"></ulink></otheraddr>
</address>
</listitem>
<listitem>
<address>
<otheraddr>Kudzu, LLC</otheraddr>
<street>7375 Washington Ave. S.</street>
<city>Edina</city>, <state>MN</state> <postcode>55439</postcode>
<country>USA</country>
Phone: <phone>+1 952 947-0822</phone>
Fax: <fax>+1 952 947-0876</fax>
Email: <email>sales@kudzuenterprises.com</email>
</address>
</listitem>
<listitem>
<address>
<otheraddr>LinuxCenter.Kz</otheraddr>
<city>Ust-Kamenogorsk</city>
<country>Kazakhstan</country>
Phone: <phone>+7-705-501-6001</phone>
Email: <email>info@linuxcenter.kz</email>
WWW: <otheraddr><ulink url="http://linuxcenter.kz/page.php?page=fr"></ulink></otheraddr>
</address>
</listitem>
<listitem>
<address>
<otheraddr>LinuxCenter.Ru</otheraddr>
<street>Galernaya Street, 55</street>
<city>Saint-Petersburg</city>
<postcode>190000</postcode>
<country>Russia</country>
Phone: <phone>+7-812-3125208</phone>
Email: <email>info@linuxcenter.ru</email>
WWW: <otheraddr><ulink url="http://linuxcenter.ru/freebsd"></ulink></otheraddr>
</address>
</listitem>
<listitem>
<address>
<otheraddr>Navarre Corp</otheraddr>
<street>7400 49th Ave South</street>
<city>New Hope</city>, <state>MN</state> <postcode>55428</postcode>
<country>USA</country>
Phone: <phone>+1 763 535-8333</phone>
Fax: <fax>+1 763 535-0341</fax>
WWW: <otheraddr><ulink url="http://www.navarre.com/"></ulink></otheraddr>
</address>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<sect1 id="mirrors-ftp">
<title>FTP Õ¾µã</title>
<para>¹Ù·½µÄ &os; Ô´´úÂë¿ÉÒԴӱ鲼ȫÇòµÄ¾µÏñÕ¾µã
ͨ¹ýÄäÃû FTP ÏÂÔØ¡£ Õ¾µã
<ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/"></ulink>
ÓÐ×ÅÁ¼ºÃµÄÍøÂçÁ¬½Ó²¢ÇÒÔÊÐí´óÁ¿µÄ²¢·¢Á¬½Ó£¬ µ«ÊÇ
Äú»òÐí¸üÏëÕÒÒ»¸ö <quote>¸ü½üµÄ</quote>
¾µÏñÕ¾µã (ÌØ±ðÊǵ±ÄúÏë½øÐÐijÖÖÐÎʽµÄ¾µÏñµÄʱºò)¡£</para>
<para><ulink
url="http://mirrorlist.FreeBSD.org/">&os; ¾µÏñ
Õ¾µãÊý¾Ý¿â</ulink>Òª±ÈʹÓÃÊÖ²áÖеľµÏñÁбí¸ü¼Ó¾«È·£¬
ÒòΪËü´Ó DNS ÖлñÈ¡ÐÅÏ¢¶ø²»ÒÀÀµÓÚ¾²Ì¬µÄÖ÷»úÁÐ±í¡£</para>
<para>&os; ¿ÉÒÔ´ÓÏÂÃæÕâЩ¾µÏñÕ¾µãͨ¹ýÄäÃû FTP
ÏÂÔØ¡£Èç¹ûÄúÑ¡ÔñÁËͨ¹ýÄäÃû FTP »ñÈ¡ &os;£¬
Ç뾡Á¿Ê¹ÓÃÀëÄú±È½Ï½üµÄÕ¾µã¡£±»ÁÐΪ
<quote>Ö÷¾µÏñÕ¾µã</quote> µÄ¾µÏñÕ¾µãÒ»°ã¶¼ÓÐÍêÕûµÄ &os; Îļþ
(Õë¶ÔÿÖÖÌåϵ½á¹¹µÄËùÓе±Ç°¿ÉÓõİ汾)£¬
Äú»òÐí´ÓÄúËùÔڵĹú¼Ò»òµØÇøµÄÕ¾µãÏÂÔØ»áµÃµ½¸ü¿ìµÄÏÂÔØËÙ¶È¡£
ÿ¸öÕ¾µãÌṩÁË×îÁ÷ÐеÄÌåϵ½á¹¹µÄ×î½üµÄ°æ±¾¶øÓпÉÄܲ»ÌṩÍêÕûµÄ
&os; ´æµµ¡£ËùÓеÄÕ¾µã¶¼ÌṩÄäÃû FTP
·ÃÎʶøÓÐЩվµãÒ²ÌṩÆäËûµÄ·ÃÎÊ·½Ê½¡£¶Ôÿ¸öÕ¾µã¿ÉÓõķÃÎÊ·½Ê½
ÔÚÆäÖ÷»úÃûºóÓÐËù˵Ã÷¡£</para>
&chap.mirrors.ftp.inc;
</sect1>
<sect1 id="mirrors-bittorrent">
<title>BitTorrent</title>
<indexterm>
<primary>BitTorrent</primary>
</indexterm>
<para>»ù±¾·¢Ðаæ CD µÄ ISO ¾µÏñÒ²¿ÉÒÔͨ¹ý BitTorrent »ñµÃ¡£
Óû§ÏÂÔØ¾µÏñµÄ torrent ÎļþÄܹ»ÔÚÕâÀïÕÒµ½ <ulink
url="http://torrents.freebsd.org:8080/">http://torrents.freebsd.org:8080</ulink></para>
<para>BitTorrent ¿Í»§¶ËÈí¼þ¿ÉÒÔ´ÓÕâ¸ö port
<filename role="package">net-p2p/py-bittorrent</filename>
»òÔ¤±àÒëµÄ¶þ½øÖưü°²×°¡£</para>
<para>ÔÚͨ¹ý BitTorrent ÏÂÔØÁË ISO ¾µÏñÖ®ºó£¬
Äã¿ÉÒÔÕÕ×Å <xref linkend="burncd">burncd
ÖеÄËùÃèÊöµÄ·½·¨ÉÕ¼µ½ CD »ò DVD ½éÖÊÉÏ¡£</para>
</sect1>
<sect1 id="anoncvs">
<title>ÄäÃû CVS</title>
<sect2>
<title><anchor id="anoncvs-intro">¸ÅÊö</title>
<indexterm>
<primary>CVS</primary>
<secondary>ÄäÃû</secondary>
</indexterm>
<para>ÄäÃû CVS(»òÈËÃdz£ËµµÄ
<emphasis>anoncvs</emphasis>)ÊÇÓÉºÍ &os; ¸½´øµÄ CVS ʵÓù¤¾ßÌṩµÄÓÃÓÚºÍÔ¶³ÌµÄ
CVS ´úÂë¿âͬ²½µÄÒ»ÖÖÌØÐÔ¡£
ÓÈÆäÊÇ£¬ ËüÔÊÐí &os; Óû§²»ÐèÒªÌØÊâµÄȨÏÞ¶ÔÈκÎһ̨ &os; ÏîÄ¿µÄ¹Ù·½
anoncvs ·þÎñÆ÷Ö´ÐÐÖ»¶ÁµÄ CVS ²Ù×÷¡£
ҪʹÓÃËü£¬¼òµ¥µÄÉèÖà <envar>CVSROOT</envar>
»·¾³±äÁ¿Ö¸ÏòÊʵ±µÄ anoncvs ·þÎñÆ÷£¬
ÊäÈë <command>cvs login</command> ÃüÁî
²¢Ìṩ¹ãΪÈËÖªµÄÃÜÂë<quote>anoncvs</quote>£¬È»ºóʹÓÃ
&man.cvs.1; ÃüÁîÏñ·ÃÎÊÈκα¾µØ²Ö¿âÒ»ÑùÀ´·ÃÎÊËü¡£</para>
<note>
<para><command>cvs login</command> ÃüÁî°ÑÓÃÀ´µÇ¼ CVS
·þÎñÆ÷µÄÃÜÂë´¢´æÔÚÄúµÄ <envar>HOME</envar> Ŀ¼ÖÐÒ»¸ö½Ð
<filename>.cvspass</filename> µÄÎļþÀï¡£
Èç¹ûÕâ¸öÎļþ²»´æÔÚ£¬
µÚÒ»´ÎʹÓà <command>cvs
login</command> µÄʱºò¿ÉÄÜ»á³ö´í¡£ Çë´´½¨Ò»¸ö¿ÕµÄ
<filename>.cvspass</filename> Îļþ£¬È»ºóÊÔÊÔÖØÐµÇ¼¡£</para>
</note>
<para>Ò²¿ÉÒÔÕâô˵ <link
linkend="cvsup">CVSup</link> ºÍ <emphasis>anoncvs</emphasis>
·þÎñ±¾ÖÊÉÏÌṩÁËͬÑùµÄ¹¦ÄÜ£¬µ«ÊÇÓи÷ÖÖ¸÷Ñù
²»Í¬µÄ³¡ºÏ¿ÉÒÔÓ°ÏìÓû§¶Ôͬ²½·½Ê½µÄÑ¡Ôñ¡£¼òµ¥À´Ëµ£¬
<application>CVSup</application> ÔÚÍøÂç×ÊÔ´ÀûÓ÷½Ãæ
¸ü¼ÓÓÐЧ£¬¶øÇÒÊǵ½Ä¿Ç°ÎªÖ¹ÔÚÁ½ÕßÖ®Öм¼ÊõÉϸü³ÉÊìµÄ
³ýÁ˳ɱ¾·½Ã档ҪʹÓÃ
<application>CVSup</application>£¬ÔÚÏÂÔØÈκζ«Î÷֮ǰ
±ØÐëÊ×ÏȰ²×°ÅäÖÃÌØ¶¨µÄ¿Í»§¶Ë£¬
¶øÇÒÖ»ÄÜÓÃÓÚÏÂÔØÏ൱´ó¿éµÄ
<application>CVSup</application> ³Æ×÷
<emphasis>collections</emphasis>¡£</para>
<para>Ïà±È֮ϣ¬<application>anoncvs</application> ¿ÉÒÔͨ¹ý CVS
Ä£¿éÃûÀ´´Óµ¥¸öÎļþÀï¼ì³öÈκζ«Î÷²¢¸³¸øÌض¨µÄ³ÌÐò
(±ÈÈç <command>ls</command> »òÕß <command>grep</command>)¡£
µ±È»£¬<application>anoncvs</application> Ò²Ö»ÊÊÓÃÓÚ¶Ô
CVS ²Ö¿âµÄÖ»¶Á²Ù×÷£¬ËùÒÔÈç¹ûÄúÊÇÏëÓÃºÍ &os; ÏîÄ¿¹²ÏíµÄ²Ö¿âÌṩ±¾µØ¿ª·¢µÄ»°£¬
<application>CVSup</application> ¼¸ºõÊÇÄúΨһµÄÑ¡Ôñ¡£</para>
</sect2>
<sect2>
<title><anchor id="anoncvs-usage">ʹÓÃÄäÃû CVS</title>
<para>ÅäÖà &man.cvs.1; ʹÓÃÄäÃû CVS ²Ö¿â¿ÉÒÔ¼òµ¥µÄÉ趨
<envar>CVSROOT</envar> »·¾³±äÁ¿Ö¸Ïò &os; ÏîÄ¿µÄ
<emphasis>anoncvs</emphasis> ·þÎñÆ÷Ö®Ò»¡£ µ½´ËÊéд×÷Ϊֹ£¬
ÏÂÃæµÄ·þÎñÆ÷¶¼ÊÇ¿ÉÓõģº</para>
<itemizedlist>
<listitem>
<para><emphasis>·¨¹ú</emphasis>:
:pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs
- (pserver (¿ÚÁîÊÇ <quote>anoncvs</quote>), ssh (ûÓпÚÁî))
- </para>
+ (ʹÓà pserver ģʽʱ£¬ Óà <command>cvs login</command>
+ ÅäºÏ¿ÚÁî <quote>anoncvs</quote> À´µÇ¼¡£
+ Èç¹ûʹÓõÄÊÇ ssh£¬ Ôò²»ÐèÒª¿ÚÁî¡£)</para>
</listitem>
+ <!--
<listitem>
<para><emphasis>ÈÕ±¾</emphasis>:
:pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
(ʹÓà <command>cvs login</command> ²¢ÔÚÌáʾÊäÈë¿ÚÁîʱÊäÈë
<quote>anoncvs</quote>.)</para>
</listitem>
+ -->
<listitem>
<para><emphasis>̨Íå</emphasis>µØÇø:
:pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
- (pserver (ʹÓà <command>cvs login</command> ²¢ÔÚÌáʾÊäÈë¿ÚÁîʱ£¬
- ÊäÈëÈÎÒâ¿ÚÁî¡£)£¬ ssh (ÎÞ¿ÚÁî))</para>
+ (ʹÓà pserver ģʽʱ£¬ Óà <command>cvs login</command>
+ ÅäºÏ¿ÚÁî <quote>anoncvs</quote> À´µÇ¼¡£
+ Èç¹ûʹÓõÄÊÇ ssh£¬ Ôò²»ÐèÒª¿ÚÁî¡£)</para>
<programlisting>SSH2 HostKey: 1024 02:ed:1b:17:d6:97:2b:58:5e:5c:e2:da:3b:89:88:26 /etc/ssh/ssh_host_rsa_key.pub
SSH2 HostKey: 1024 e8:3b:29:7b:ca:9f:ac:e9:45:cb:c8:17:ae:9b:eb:55 /etc/ssh/ssh_host_dsa_key.pub</programlisting>
</listitem>
<listitem>
<para><emphasis>ÃÀ¹ú</emphasis>:
- freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs
- (½ö ssh - ÎÞ¿ÚÁî)</para>
-
- <programlisting>SSH HostKey: 1024 a1:e7:46:de:fb:56:ef:05:bc:73:aa:91:09:da:f7:f4 root@sanmateo.ecn.purdue.edu
-SSH2 HostKey: 1024 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65 ssh_host_dsa_key.pub</programlisting>
-
- </listitem>
- <listitem>
- <para><emphasis>USA</emphasis>:
- anoncvs@anoncvs1.FreeBSD.org:/home/ncvs (½öÏÞ ssh2 -
- ÎÞ¿ÚÁî)</para>
+ anoncvs@anoncvs1.FreeBSD.org:/home/ncvs (ʹÓà ssh ʱ£¬
+ ÇëʹÓÃЭÒé°æ±¾ 2£¬ ²»ÐèÒª¿ÚÁî¡£)</para>
<programlisting>SSH2 HostKey: 2048 53:1f:15:a3:72:5c:43:f6:44:0e:6a:e9:bb:f8:01:62 /etc/ssh/ssh_host_dsa_key.pub</programlisting>
</listitem>
</itemizedlist>
<para>ÒòΪ CVS ʵ¼ÊÉÏÔÊÐí <quote>¼ì³ö</quote>
Ôø¾­´æÔÚµÄ (»òÕߣ¬Ä³ÖÖÇé¿öϽ«»á´æÔÚ)
&os; Ô´´úÂëµÄÈÎÒâ°æ±¾£¬ ÄúÐèÒªÊìϤ
&man.cvs.1; µÄ°æ±¾ (<option>-r</option>) ²ÎÊý£¬
ÒÔ¼°ÔÚ &os; ´úÂë¿âÖпÉÓõÄÖµ¡£</para>
<para>ÓÐÁ½ÖÖ±êÇ©£¬ÐÞ¶©±êÇ©ºÍ·ÖÖ§±êÇ©¡£
ÐÞ¶©±êÇ©ÌØÖ¸Ò»¸öÌØ¶¨µÄÐÞ¶©°æ±¾¡£º¬ÒåʼÖÕÊDz»±äµÄ¡£
·ÖÖ§±êÇ©£¬ÁíÒ»·½Ã棬
Ö¸´ú¸ø¶¨Ê±¼ä¸ø¶¨¿ª·¢·ÖÖ§µÄ×îÐÂÐÞ¶©£¬
ÒòΪ·ÖÖ§±êÇ©²»Éæ¼°ÌØ¶¨µÄÐÞ¶©°æ±¾£¬
ËüÃ÷ÌìËù´ú±íµÄº¬Òå¾Í¿ÉÄܺͽñÌìµÄ²»Í¬¡£</para>
<para><xref linkend="cvs-tags"> °üÀ¨ÁËÓû§¿ÉÄܸÐÐËȤµÄ
ÐÞ¶©±êÇ©¡£ Çë×¢Ò⣬ ÕâЩ±êÇ©²¢²»ÊÊÓÃÓÚ Ports Collection£¬
ÒòΪËü²¢²»°üº¬¶à¸ö¿ª·¢·ÖÖ§¡£</para>
<para>µ±ÄúÖ¸¶¨Ò»¸ö·ÖÖ§±êÇ©£¬Äúͨ³£»áµÃµ½ÄǸö¿ª·¢·ÖÖ§µÄÎļþµÄ×îа汾¡£
Èç¹ûÄúÏ£ÍûµÃµ½Ò»Ð©¾ÉµÄ°æ±¾£¬Äú¿ÉÒÔÓÃ
<option>-D date</option> ±ê¼ÇÖÆ¶¨Ò»¸öÈÕÆÚ¡£
²ì¿´ &man.cvs.1; ÊÖ²áÒ³Á˽â¸ü¶àϸ½Ú¡£</para>
</sect2>
<sect2>
<title>ʾÀý</title>
<para>ÔÚÕâ֮ǰǿÁÒ½¨ÒéÄúͨ¶Á &man.cvs.1; µÄÊÖ²áÒ³£¬
ÕâÀïÓÐһЩ¼òµ¥µÄÀý×ÓÀ´Õ¹Ê¾ÈçºÎʹÓÃÄäÃû
CVS£º</para>
<example>
<title>´Ó -CURRENT ¼ì³öЩ¶«Î÷ (&man.ls.1;)£º</title>
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs</userinput>
&prompt.user; <userinput>cvs login</userinput>
<emphasis>>ÔÚÌáʾ·û´¦£¬ÊäÈëÈÎÒâÃÜÂë</emphasis> <quote>password</quote>.
&prompt.user; <userinput>cvs co ls</userinput>
</screen>
</example>
<example>
<title>ͨ¹ý SSH ¼ì³öÕû¸ö <filename>src/</filename>
´úÂëÊ÷£º</title>
<screen>&prompt.user; <userinput>cvs -d freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs co src</userinput>
The authenticity of host 'anoncvs.freebsd.org (128.46.156.46)' can't be established.
DSA key fingerprint is 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65.
Are you sure you want to continue connecting (yes/no)? <userinput>yes</userinput>
Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known hosts.</screen>
</example>
<example>
<title>¼ì³ö 6-STABLE ·ÖÖ§ÖÐµÄ &man.ls.1; °æ±¾£º</title>
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs</userinput>
&prompt.user; <userinput>cvs login</userinput>
<emphasis>ÔÚÌáʾ·û´¦£¬ÊäÈëÈÎÒâÃÜÂë</emphasis> <quote>password</quote>¡£
&prompt.user; <userinput>cvs co -rRELENG_6 ls</userinput>
</screen>
</example>
<example>
<title>´´½¨ &man.ls.1; µÄ±ä»¯Áбí(Óñê×¼µÄ diff)</title>
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs</userinput>
&prompt.user; <userinput>cvs login</userinput>
<emphasis>ÔÚÌáʾ·û´¦£¬ÊäÈëÈÎÒâÃÜÂë</emphasis> <quote>password</quote>¡£
&prompt.user; <userinput>cvs rdiff -u -rRELENG_5_3_0_RELEASE -rRELENG_5_4_0_RELEASE ls</userinput>
</screen>
</example>
<example>
<title>ÕÒ³ö¿ÉÒÔʹÓÃµÄÆäËüµÄÄ£¿éÃû£º</title>
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs</userinput>
&prompt.user; <userinput>cvs login</userinput>
<emphasis>ÔÚÌáʾ·û´¦£¬ÊäÈëÈÎÒâÃÜÂë</emphasis> <quote>password</quote>¡£
&prompt.user; <userinput>cvs co modules</userinput>
&prompt.user; <userinput>more modules/modules</userinput>
</screen>
</example>
</sect2>
<sect2>
<title>ÆäËû×ÊÔ´</title>
<para>ÏÂÃæ¸½¼ÓµÄ×ÊÔ´¿ÉÄܶÔѧϰ
CVS ÓаïÖú£º</para>
<itemizedlist>
<listitem>
<para><ulink
url="http://users.csc.calpoly.edu/~gfisher/classes/308/handouts/cvs-basics.html">CVS ½Ì³Ì</ulink>£¬
À´×Ô¼ÓÖÝÖÝÁ¢Àí¹¤´óѧ¡£</para>
</listitem>
<listitem>
<para><ulink url="http://ximbiot.com/cvs/wiki/">CVS Ö÷Ò³</ulink>£¬
CVS ¿ª·¢ºÍÖ§³ÖÉçÇø¡£</para>
</listitem>
<listitem>
<para><ulink
url="http://www.FreeBSD.org/cgi/cvsweb.cgi">CVSweb</ulink> ÊÇ
&os; ÏîÄ¿µÄ CVS web ½çÃæ¡£</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<sect1 id="ctm">
<title>ʹÓà CTM</title>
<indexterm>
<primary>CTM</primary>
</indexterm>
<para><application>CTM</application> ÊDZ£³ÖÔ¶³ÌĿ¼Ê÷ºÍÖÐÑë·þÎñÆ÷Ŀ¼Ê÷ͬ²½µÄÒ»ÖÖ·½·¨¡£
Ëü±»¿ª·¢ÓÃÓÚ &os; µÄÔ´´úÂëÊ÷£¬ËäÈ»ÆäËûÈËËæ×Åʱ¼äÍÆÒÆ»á·¢ÏÖËü¿ÉÒÔÓÃÓÚÆäËûÄ¿µÄ¡£
µ±Ç°¼¸ºõûÓУ¬Ò²»òÕßÖ»ÓкÜÉÙµÄÎĵµ½²Êö´´½¨ deltas µÄ²½Ö裬
ËùÒÔÈç¹ûÄúÏ£ÍûʹÓà <application>CTM</application> È¥×öÆäËüÊÂÇ飬
ÇëÁªÏµ &a.ctm-users.name; ÓʼþÁбíÁ˽â¸ü¶àÐÅÏ¢¡£</para>
<sect2>
<title>ΪʲôÎÒ¸ÃʹÓà <application>CTM</application>?</title>
<para><application>CTM</application> »á¸øÄúÒ»·Ý &os;
Ô´´úÂëÊ÷µÄ±¾µØ¸±±¾¡£ ´úÂëÊ÷ÓкܶàµÄ
<quote>flavors</quote> ¿ÉÓᣲ»¹ÜÄúÊÇÏ£Íû¸ú×ÙÍêÕûµÄ CVS Ê÷»¹ÊÇÖ»ÊÇÒ»¸ö·ÖÖ§£¬
<application>CTM</application> ¶¼»á¸øÄúÌṩÐÅÏ¢¡£
Èç¹ûÄúÊÇ &os; ÉϵÄÒ»¸ö»îÔ¾µÄ¿ª·¢Õߣ¬µ«ÊÇȱ·¦»òÕß²»´æÔÚ TCP/IP Á¬½Ó£¬»òÕßÖ»ÊÇÏ£Íû°Ñ±ä»¯×Ô¶¯·¢Ë͸øÄú£¬
<application>CTM</application> ¾ÍÊÇÊʺÏÄúµÄ¡£¶ÔÓÚ×î»ý¼«µÄ·ÖÖ§
Äú½«»áÿÌì»ñµÃÈý¸öÒÔÉ쵀 deltas¡£
È»¶ø£¬ÄúÓ¦¸Ã¿¼ÂÇͨ¹ýÓʼþÀ´×Ô¶¯·¢ËÍ¡£
Éý¼¶µÄ´óС×ÜÊDZ£Ö¤¾¡¿ÉÄܵÄС¡£
ͨ³£Ð¡ÓÚ 5K£¬Ò²Å¼È»(Ê®·ÖÖ®Ò»¿ÉÄÜ)»áÓÐ 10-50K£¬Ò²²»Ê±µØÓиö´óµÄ 100K+ ÉõÖÁ¸ü´óµÄ¡£</para>
<para>ÄúÒ²ÐèÒªÈÃ×Ô¼ºÁ˽âÖ±½ÓºÍ¿ª·¢´úÂë¶ø²»ÊÇÔ¤·¢Ðа汾´ò½»µÀµÄ¸÷ÖÖ¾¯¸æ¡£ÕâÖÖÇé¿ö»áºÜÏÔÖø£¬
Èç¹ûÄúÑ¡ÔñÁË <quote>current</quote> ´úÂëµÄ»°¡£Ç¿ÁÒ½¨ÒéÄúÔĶÁ<link linkend="current">ºÍ
&os; ±£³Öͬ²½</link>¡£</para>
</sect2>
<sect2>
<title>ʹÓÃ
<application>CTM</application> ÎÒÐèÒª×öʲô£¿</title>
<para>ÄúÐèÒªÁ½Ñù¶«Î÷£º<application>CTM</application>
³ÌÐò£¬»¹ÓгõʼµÄ deltas À´ feed it(´ïµ½
<quote>current</quote> ¼¶±ð)¡£</para>
<para><application>CTM</application> ³ÌÐò´Ó°æ±¾ 2.0 ·¢²¼ÒÔÀ´
ÒѾ­ÊÇ &os; µÄÒ»²¿·ÖÁË£¬Èç¹ûÄú°²×°ÁËÔ´´úÂ븱±¾µÄ»°£¬ ËüλÓÚ
<filename>/usr/src/usr.sbin/ctm</filename>¡£</para>
<para>Äúι¸ø <application>CTM</application> µÄ <quote>deltas</quote>
¿ÉÒÔÓÐÁ½ÖÖ·½Ê½£¬FTP »òÕß email¡£
Èç¹ûÄúÓÐÆÕͨµÄ·ÃÎÊ Internet µÄ FTP ȨÏÞ£¬
ÄÇôÏÂÃæµÄ FTP Õ¾µãÖ§³Ö·ÃÎÊ
<application>CTM</application>£º</para>
<para><ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CTM/"></ulink></para>
<para>»òÕß¿´¿´ÕâһС½Ú<link
linkend="mirrors-ctm">¾µÏñ</link>¡£</para>
<para>FTP ·ÃÎÊÏà¹ØµÄĿ¼²¢È¡µÃ
<filename>README</filename> Îļþ£¬´ÓÄÇÀ↑ʼ¡£</para>
<para>Èç¹ûÄúÏ£Íûͨ¹ý email µÃµ½ÄúµÄ deltas£º</para>
<para>¶©ÔÄÒ»¸ö
<application>CTM</application> ·Ö·¢ÁÐ±í¡£
&a.ctm-cvs-cur.name; Ö§³ÖÍêÕûµÄ CVS Ê÷¡£
&a.ctm-src-cur.name; Ö§³Ö×îеĿª·¢·ÖÖ§¡£
&a.ctm-src-4.name; Ö§³Ö 4.X ·¢ÐзÖÖ§£¬
µÈµÈ¡£¡£(Èç¹ûÄú²»ÖªµÀÈçºÎ¶©ÔÄÓʼþÁÐ±í£¬
µã»÷ÉÏÃæµÄÁбíÃû»òÕßµ½
&a.mailman.lists.link; µã»÷ÄúÏ£Íû¶©ÔĵÄÁÐ±í¡£
ÁбíÒ³°üº¬ÁËËùÓбØÒªµÄ¶©ÔÄÖ¸µ¼¡£)</para>
<para>µ±Äú¿ªÊ¼½ÓÊÕµ½ÄúÓʼþÖÐµÄ <application>CTM</application>
Éý¼¶Ê±£¬Äú¿ÉÒÔʹÓÃ
<command>ctm_rmail</command> ³ÌÐòÀ´½âѹ²¢Ó¦ÓÃËüÃÇ¡£
ÊÂʵÉÏÈç¹ûÄúÏëÒªÈýø³ÌÒÔÈ«×Ô¶¯µÄÐÎʽÔËÐеϰ£¬Äú¿ÉÒÔͨ¹ýÔÚ
<filename>/etc/aliases</filename> ÖÐÉèÖÃÖ±½ÓʹÓà <command>ctm_rmail</command> ³ÌÐò¡£
²é¿´ <command>ctm_rmail</command> ÊÖ²áÒ³Á˽â¸ü¶àϸ½Ú¡£</para>
<note>
<para>²»¹ÜÄúʹÓÃʲô·½·¨µÃµ½
<application>CTM</application> deltas£¬Äú¶¼Ó¦¸Ã¶©ÔÄ
&a.ctm-announce.name; ÓʼþÁÐ±í¡£
ÒÔºó»áÓе¥¶ÀµÄµØ·½Ìá½»ÓйØ
<application>CTM</application> ϵͳµÄ²Ù×÷µÄ¹«¸æ¡£
µã»÷ÉÏÃæµÄÓʼþÁбíÃû²¢°´ÕÕָʾ¶©ÔÄÓʼþÁÐ±í¡£</para>
</note>
</sect2>
<sect2>
<title>µÚÒ»´ÎʹÓà <application>CTM</application></title>
<para>ÔÚÄú¿ªÊ¼Ê¹Óà <application>CTM</application>
delta ֮ǰ£¬ÄúÐèÒª»ñµÃÒ»¸öÆðʼµã¡£</para>
<para>Ê×ÏÈÄúÓ¦¸ÃÈ·¶¨ÄúÒѾ­ÓÐÁËʲô¡£Ã¿¸öÈ˶¼¿ÉÒÔ´ÓÒ»¸ö<quote>¿Õ</quote>Ŀ¼¿ªÊ¼¡£
Äú±ØÐëÓÃÒ»¸ö³õʼµÄ <quote>¿ÕµÄ</quote> delta À´¿ªÊ¼ÄúµÄ
<application>CTM</application> Ö§³ÖÊ÷¡£Ôø¾­ÎªÁËÄúµÄ±ãÀûÕâЩ
<quote>Æðʼ</quote> deltas ±»ÓÐÒâµÄͨ¹ý CD À´·¢ÐУ¬
È»¶øÏÖÔÚÒѾ­²»ÕâÑù×öÁË¡£</para>
<para>ÒòΪ´úÂëÊ÷ÓÐÊýÊ®Õ××Ö½Ú£¬ÄúÓ¦¸Ã¸üϲ»¶´ÓÊÖÍ·ÉÏÒѾ­ÓеĶ«Î÷¿ªÊ¼¡£Èç¹ûÄúÓÐÒ»ÕÅ
-RELEASE CD ¹âÅÌ£¬Äú¿ÉÒÔ´ÓÀïÃæ¸´ÖÆ»òÕß½âѹËõÒ»·Ý³õʼ´úÂë³öÀ´¡£
Õâ»á½ÚÊ¡·Ç³£¶àµÄÊý¾Ý´«ÊäÁ¿¡£</para>
<para>Äú»á·¢ÏÖÕâЩ<quote>³õʼµÄ</quote> deltas Ãû×ÖµÄÊý×ÖºóÃæ¶¼Óиö
<literal>X</literal> (±ÈÈç <filename>src-cur.3210XEmpty.gz</filename>)¡£
ºóÃæ¼ÓÒ»¸ö <literal>X</literal> µÄÉè¼Æ·ûºÏÄúµÄ³õʼ <quote>seed</quote> µÄÓÉÀ´¡£
<filename>Empty</filename> ÊÇÒ»¸ö¿ÕĿ¼¡£Í¨³£Ò»¸ö»ù±¾µÄ´Ó
<literal>Empty</literal> ¿ªÊ¼µÄת»»ÓÉ
100 ¸ö deltas ¹¹³É¡£Ë³±ã˵һÏ£¬ËûÃǶ¼ºÜ´ó£¡70 µ½ 80
Õ××Ö½ÚµÄ <command>gzip</command> ѹËõµÄÊý¾Ý¶ÔÓÚ
<filename>XEmpty</filename> deltas ÊÇºÜÆ½³£µÄ¡£</para>
<para>Ò»µ©ÄúÒѾ­Ñ¡¶¨ÁËÒ»¸ö»ù±¾µÄ delta ¿ªÊ¼£¬Äú¾ÍÐèÒª±ÈÕâ¸öÊý¸ßµÄËùÓÐµÄ delta¡£</para>
</sect2>
<sect2>
<title>ÔÚÄúµÄÈÕ³£Éú»îÖÐʹÓà <application>CTM</application></title>
<para>ÒªÓ¦Óà deltas£¬¼òµ¥µÄ¼üÈ룺</para>
<screen>&prompt.root; <userinput>cd /where/ever/you/want/the/stuff</userinput>
&prompt.root; <userinput>ctm -v -v /where/you/store/your/deltas/src-xxx.*</userinput></screen>
<para><application>CTM</application> Äܹ»Àí½â±»
<command>gzip</command> ѹËõµÄ deltas£¬ËùÒÔÄú²»ÐèÒªÏÈ
<command>gunzip</command> ËûÃÇ£¬Õâ¿ÉÒÔ½ÚÊ¡´ÅÅ̿ռ䡣</para>
<para>³ý·Ç¾õµÃÕû¸ö¹ý³Ì·Ç³£¿É¿¿£¬
<application>CTM</application> ²»»áÉæ¼°µ½ÄúµÄ´úÂëÊ÷µÄ¡£ÄúÒ²¿ÉÒÔʹÓÃ
<option>-c</option> ±ê¼ÇÀ´Ð£Ñé delta£¬
ÕâÑù <application>CTM</application> ¾Í²»»áÉæ¼°´úÂëÊ÷£»
Ëü»áֻУÑé delta µÄÍêÕûÐÔ¿´¿´ÊÇ·ñ¿ÉÒÔ°²È«µÄÓÃÓÚÄúµÄµ±Ç°´úÂëÊ÷¡£</para>
<para><application>CTM</application> »¹ÓÐÆäËûµÄһЩ²ÎÊý£¬
²é¿´ÊÖ²áÒ³»òÕßÔ´´úÂëÁ˽â¸ü¶àÐÅÏ¢¡£</para>
<para>ÕâÕæµÄ¾ÍÊÇÈ«²¿µÄÊÂÇéÁË¡£Ã¿´ÎµÃµ½Ò»¸öеÄ
delta£¬¾Íͨ¹ý <application>CTM</application> ÔËÐÐËüÀ´±£Ö¤ÄúµÄ´úÂëÊÇ×îеġ£</para>
<para>Èç¹ûÕâЩ deltas ºÜÄÑÖØÐÂÏÂÔØµÄ»°²»ÒªÉ¾³ýËüÃÇ¡£
ÓÐЩ¶«Î÷»µµôµÄʱºòÄú»áÏëµ½±£ÁôËüÃǵġ£
¼´Ê¹ÄúÖ»ÓÐÈíÅÌ£¬Ò²Ç뿼ÂÇʹÓÃ
<command>fdwrite</command> À´×öÒ»·Ý¸±±¾¡£</para>
</sect2>
<sect2>
<title>ά³ÖÄú±¾µØµÄ±ä¶¯</title>
<para>×÷ΪһÃû¿ª·¢Õßϲ»¶ÊµÑ飬¸Ä¶¯´úÂëÊ÷ÖеÄÎļþ¡£
<application>CTM</application>
ÓÃÒ»ÖÖÊÜÏ޵ķ½Ê½Ö§³Ö±¾µØÐ޸ģºÔÙ¼ì²éÎļþ
<filename>foo</filename> ´æÔÚ֮ǰ£¬Ê×ÏȲéÕÒ
<filename>foo.ctm</filename>¡£Èç¹ûÕâ¸öÎļþ´æÔÚ£¬
<application>CTM</application> »á¶ÔËü²Ù×÷¶ø²»ÊÇ
<filename>foo</filename>¡£</para>
<para>ÕâÖÖÐÐΪ¸øÎÒÃÇÌṩÁËÒ»ÖÖ¼òµ¥µÄ·½Ê½À´Î¬³Ö±¾µØµÄ¸Ä¶¯£º
Ö»Òª¸´ÖÆÄú¼Æ»®Ð޸ĵÄÎļþ²¢ÓÃ
<filename>.ctm</filename> µÄºó×ºÖØÐÂÃüÃû¡£
È»ºó¾Í¿ÉÒÔ×ÔÓɵÄÐ޸ĴúÂëÁË£¬<application>CTM</application> »á¸üÐÂ
<filename>.ctm</filename> Îļþµ½×îа汾¡£</para>
</sect2>
<sect2>
<title>ÆäËûÓÐȤµÄ <application>CTM</application> Ñ¡Ïî</title>
<sect3>
<title>ÕýÈ·µÄÕÒ³öÄÄЩ½«±»¸üÐÂ</title>
<para>Äú¿ÉÒÔÈ·¶¨±ä¶¯ÁÐ±í£¬
<application>CTM</application> ¿ÉÒÔ×öµ½£¬ÔÚÄúµÄ´úÂë¿âÉÏʹÓÃ
<application>CTM</application> µÄ
<option>-l</option> Ñ¡Ïî¡£</para>
<para>ÕâºÜÓÐÓÃÈç¹ûÄúÏëÒª±£´æ¸Ä¶¯µÄÈÕÖ¾£¬
pre- »òÕß post- Óø÷ÖÖ·ç¸ñ´¦ÀíÐ޸ĵÄÎļþµÄ¼Í¼£¬
»òÕß½ö½öÊÇÏë¸ÐÊÜһϺ¢×Ó°ãµÄ·è¿ñ¡£</para>
</sect3>
<sect3>
<title>ÔÚÉý¼¶Ç°ÖÆ×÷±¸·Ý</title>
<para>ÓÐʱÄú¿ÉÄÜÏ뱸·Ý½«Òª±» <application>CTM</application>
Éý¼¶Ëù¸Ä¶¯µÄËùÓÐÎļþ¡£</para>
<para>Ö¸¶¨ <option>-B backup-file</option> Ñ¡Ïî»áµ¼ÖÂ
<application>CTM</application> ±¸·Ý½«Òª±»¸ø¶¨µÄ <application>CTM</application>
delta ¸Ä¶¯µÄËùÓÐÎļþµ½ <filename>backup-file</filename>¡£</para>
</sect3>
<sect3>
<title>ÏÞ¶¨ÊÜÉý¼¶Ó°ÏìµÄÎļþ</title>
<para>ÓÐʱÄú¿ÉÄܶÔÏÞ¶¨Ò»¸ö¸ø¶¨µÄ <application>CTM</application>
Éý¼¶µÄ·¶Î§¸ÐÐËȤ£¬Ò²ÓпÉÄÜÏëÖªµÀÔõÑù´ÓÒ»ÁÐ deltas ÖнâѹËõÒ»²¿·ÖÎļþ¡£</para>
<para>Äú¿ÉÒÔͨ¹ýʹÓà <option>-e</option> ºÍ <option>-x</option>
Ñ¡ÏîÖ¸¶¨¹ýÂ˹æÔò±í´ïʽÀ´¿ØÖÆ <application>CTM</application>
¼´½«¶ÔÖ®²Ù×÷µÄÎļþÁÐ±í¡£</para>
<para>ÀýÈ磬Ҫ´ÓÄú±£´æµÄ<application>CTM</application> deltas
¼¯Àï½âѹËõ³öÒ»¸ö×îÐ嵀 <filename>lib/libc/Makefile</filename>
Îļþ£¬ÔËÐÐÕâ¸öÃüÁ</para>
<screen>&prompt.root; <userinput>cd /where/ever/you/want/to/extract/it/</userinput>
&prompt.root; <userinput>ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.*</userinput></screen>
<para>¶ÔÓÚÿһ¸öÔÚ <application>CTM</application>
delta ÖÐÖ¸¶¨µÄÎļþ£¬<option>-e</option>
ºÍ <option>-x</option> Ñ¡Ïî°´ÕÕÃüÁîÐиø¶¨µÄ˳ÐòÓ¦Óá£
ÎļþÖ»ÓÐÔÚËùÓÐµÄ <option>-e</option> ºÍ
<option>-x</option> ±»Ó¦ÓÃÖ®ºó±ê¼ÇΪºÏ¸ñÖ®ºó
²ÅÄܱ» <application>CTM</application> ²Ù×÷¡£</para>
</sect3>
</sect2>
<sect2>
<title><application>CTM</application> δÀ´µÄ¼Æ»®</title>
<para>ÆäÖм¸Ï</para>
<itemizedlist>
<listitem>
<para>ÔÚ <application>CTM</application> ÖÐʹÓÃһЩÈÏÖ¤·½Ê½£¬
ÕâÑùÀ´ÔÊÐí²ì¾õð³äµÄ <application>CTM</application> ²¹¶¡¡£</para>
</listitem>
<listitem>
<para>ÕûÀí <application>CTM</application> µÄÑ¡Ï
ËüÃDZäµÃÔÓÂÒ¶øÎ¥·´Ö±¾õÁË¡£</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>ÔÓÏî</title>
<para>Ò²ÓÐһϵÁеÄ
<literal>ports</literal> collection µÄ deltas£¬µ«ÊÇÈËÃǶÔËüµÄÐËÖ»¹Ã»ÓÐÄÇô¸ß¡£</para>
</sect2>
<sect2 id="mirrors-ctm">
<title>CTM ¾µÏñ</title>
<para><link linkend="ctm">CTM</link>/&os; ¿ÉÒÔÔÚÏÂÃæµÄ¾µÏñÕ¾µãͨ¹ýÄäÃû
FTP ÏÂÔØ¡£Èç¹ûÄúÑ¡Ôñͨ¹ýÄäÃû FTP »ñÈ¡ <application>CTM</application>£¬
ÇëÊÔ×ÅʹÓÃÒ»¸öÀëÄú½Ï½üµÄÕ¾µã¡£</para>
<para>Èç¹ûÓÐÎÊÌ⣬ÇëÁªÏµ &a.ctm-users.name;
ÓʼþÁÐ±í¡£</para>
<variablelist>
<varlistentry>
<term>¼ÓÀû¸£ÄáÑÇÖÝ£¬¾É½ðɽÍåÇø£¬¹Ù·½Ô´´úÂë</term>
<listitem>
<itemizedlist>
<listitem>
<para><ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CTM/"></ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>ÄÏ·Ç£¬¾ÉµÄ deltas µÄ±¸·Ý·þÎñÆ÷</term>
<listitem>
<itemizedlist>
<listitem>
<para><ulink url="ftp://ftp.za.FreeBSD.org/pub/FreeBSD/CTM/"></ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Öйų́Íå</term>
<listitem>
<itemizedlist>
<listitem>
<para><ulink url="ftp://ctm.tw.FreeBSD.org/pub/FreeBSD/development/CTM/"></ulink></para>
</listitem>
<listitem>
<para><ulink url="ftp://ctm2.tw.FreeBSD.org/pub/FreeBSD/development/CTM/"></ulink></para>
</listitem>
<listitem>
<para><ulink url="ftp://ctm3.tw.FreeBSD.org/pub/FreeBSD/development/CTM/"></ulink></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
<para>Èç¹ûÄúÔÚÄú¸½½üÕÒ²»µ½¾µÏñ»òÕß¾µÏñ²»ÍêÕû£¬
ÊÔ×ÅʹÓÃËÑË÷ÒýÇæ±ÈÈç
<ulink url="http://www.alltheweb.com/">alltheweb</ulink>.</para>
</sect2></sect1>
<sect1 id="cvsup">
<title>ʹÓà CVSup</title>
<sect2 id="cvsup-intro">
<title>¸ÅÊö</title>
<para><application>CVSup</application> ÊÇÒ»¸öÓÃÓÚ´ÓÔ¶³Ì·þÎñÆ÷Ö÷»úÉϵÄÖ÷
CVS ²Ö¿â·¢²¼ºÍÉý¼¶Ô´´úÂëÊ÷µÄÈí¼þ°ü¡£
&os; µÄÔ´´úÂëά»¤ÔÚ¼ÓÀû¸£ÄáÑÇÖÝһ̨Ö÷¿ª·¢·þÎñÆ÷µÄ CVS ²Ö¿âÀï¡£
ÓÐÁË <application>CVSup</application>£¬ &os;
Óû§¿ÉÒÔºÜÈÝÒ׵ı£³ÖËûÃÇ×Ô¼ºµÄÔ´´úÂëÊ÷¸üС£</para>
<para><application>CVSup</application> ʹÓÃËùνµÄÉý¼¶
<emphasis>pull</emphasis> ģʽ¡£ÔÚ pull
ģʽÏ£¬¿Í»§¶ËÔÚÐèÒªµÄʱºòÏò·þÎñÆ÷¶ËÇëÇó¸üС£
·þÎñÆ÷±»¶¯µÄµÈ´ý¿Í»§¶ËµÄÉý¼¶ÇëÇó¡£
Òò´ËËùÓеÄÉý¼¶¶¼Êǿͻ§¶Ë·¢ÆðµÄ¡£
·þÎñÆ÷¾ö²»»á·¢ËÍδÇëÇóµÄÉý¼¶¡£Óû§±ØÐëÊÖ¶¯ÔËÐÐ
<application>CVSup</application> ¿Í»§¶Ë»ñÈ¡¸üУ¬
»òÕßÉèÖÃÒ»¸ö <command>cron</command> ×÷ÒµÀ´ÈÃËüÒԹ̶¨µÄ¹æÂÉ×Ô¶¯ÔËÐС£</para>
<para>ÊõÓï <application>CVSup</application>Óôóд×ÖĸдÕýÊDZíʾ£¬
´ú±íÁËÍêÕûµÄÈí¼þ°ü¡£ ËüµÄÖ÷Òª×é¼þÊÇÔËÐÐÔÚÿ¸öÓû§»úÆ÷ÉϵĿͻ§¶Ë <command>cvsup</command>£¬
ºÍÔËÐÐÔÚÿ¸ö &os; ¾µÏñÕ¾µãÉϵķþÎñÆ÷¶Ë <command>cvsupd</command>¡£</para>
<para>µ±ÄúÔĶÁ &os; ÎĵµºÍÓʼþÁбíʱ£¬Äú¿ÉÄܻῴ¼û
<application>sup</application>¡£
<application>Sup</application> ÊÇ
<application>CVSup</application> µÄǰÉí£¬ÓÐ×ÅÏàËÆµÄÄ¿µÄ¡£
<application>CVSup</application> ʹÓúܶàºÍ sup ÏàͬµÄ·½Ê½£¬
¶øÇÒ£¬ Ëü»¹ÊÇÓÃʹÓÃºÍ <command>sup</command> µÄ¼æÈݵÄÅäÖÃÎļþ¡£
<application>Sup</application> ÒѾ­²»ÔÙ±» &os; ÏîĿʹÓÃÁË£¬
ÒòΪ <application>CVSup</application> ¼È¿ìÓÖÓиüºÃµÄÁé»îÐÔ¡£</para>
<note>
<para><application>csup</application> ÊÇÓà C ÓïÑÔ¶Ô
<application>CVSup</application> Èí¼þµÄÖØÐ´¡£ Ëü×î´óµÄºÃ´¦ÊÇ£¬
Õâ¸ö³ÌÐò¸ü¿ìһЩ£¬ ²¢ÇÒÒ²²»ÐèÒªÒÀÀµÓÚ
Modula-3 ÓïÑÔ£¬ Òò´ËÒ²¾Í²»ÐèÒª°²×°ºóÕß¡£ ÁíÍ⣬ Èç¹ûÄúʹÓà &os; 6.2
»ò¸üа汾£¬ ¾Í¿ÉÒÔÖ±½ÓʹÓ㬠ÒòΪËü³ÉΪÁË»ù±¾ÏµÍ³µÄÒ»²¿·Ö¡£
½ÏÔçµÄ &os; °æ±¾µÄ»ù±¾ÏµÍ³Öв¢²»°üº¬ &man.csup.1;£¬ µ«¿ÉÒÔͨ¹ý
<filename role="package">net/csup</filename> port »òÔ¤±àÒë°üÀ´°²×°¡£
¼ÙÈçÄú¾ö¶¨Ê¹ÓÃ
<application>csup</application>£¬ Ôò¿ÉÒÔÌø¹ý°²×° <application>CVSup</application>
ÕâÒ»²½£¬ ²¢ÔÚÎÄÕÂÖÐÓàϲ¿·ÖÌáµ½µÄ <application>CVSup</application> ¸ÄΪ
<application>csup</application>¡£</para>
</note>
</sect2>
<sect2 id="cvsup-install">
<title>°²×°</title>
<para>°²×° <application>CVSup</application> ×î¼òµ¥µÄ·½Ê½¾ÍÊÇʹÓÃ
&os; <link linkend="ports">packages collection</link>
ÖÐÔ¤±àÒëµÄ <filename role="package">net/cvsup</filename> °ü¡£
Èç¹ûÄúÏë´ÓÔ´´úÂë¹¹½¨ <application>CVSup</application>£¬
Äú¿ÉÒÔʹÓà <filename role="package">net/cvsup</filename>
port¡£µ«ÊÇÔ¤ÏȾ¯¸æÒ»Ï£º
<filename role="package">net/cvsup</filename> port ÒÀÀµÓÚ Modula-3
ϵͳ£¬»á»¨·ÑÏ൱µÄʱ¼äºÍ´ÅÅ̿ռäÀ´ÏÂÔØ±àÒë¡£</para>
<note>
<para>Èç¹ûÏëÔÚûÓа²×° <application>&xfree86;</application>
»ò <application>&xorg;</application> µÄ¼ÆËã»ú£¬ ÀýÈç·þÎñÆ÷ÉÏʹÓÃ
<application>CVSup</application>£¬ ÔòÖ»ÄÜʹÓò»°üº¬
<application>CVSup</application> <acronym>GUI</acronym>
µÄ <filename role="package">net/cvsup-without-gui</filename>¡£</para>
</note>
<para>Èç¹ûÏ£ÍûÔÚ &os; 6.1 »ò¸üÔç°æ±¾Öа²×° <application>csup</application>£¬
Ôò¿ÉÒÔ´Ó &os; µÄ <link linkend="ports">packages collection</link> Öа²×°Ô¤±àÒëµÄ
<filename role="package">net/csup</filename> °ü£» Èç¹ûÏ£Íû×ÔÐдÓÔ´´úÂë±àÒë
<application>csup</application>£¬
Ò²¿ÉÒÔÓà <filename role="package">net/csup</filename>
port À´°²×°¡£</para>
</sect2>
<sect2 id="cvsup-config">
<title>CVSup ÅäÖÃ</title>
<para><application>CVSup</application> µÄ²Ù×÷±»Ò»¸ö½Ð×ö
<filename>supfile</filename> µÄÅäÖÃÎļþËù¿ØÖÆ¡£
ÔÚĿ¼ <ulink type="html"
url="file://localhost/usr/share/examples/cvsup/"><filename>/usr/share/examples/cvsup/</filename></ulink>
ÏÂÃæÓÐһЩʾÀýµÄ <filename>supfiles</filename>¡£</para>
<para><filename>supfile</filename> ÖеÄÐÅÏ¢½â´ðÁË
<application>CVSup</application> ÏÂÃæµÄ¼¸¸öÎÊÌ⣺</para>
<itemizedlist>
<listitem>
<para><link linkend="cvsup-config-files">ÄúÏë½ÓÊÕ
ÄÄЩÎļþ£¿</link></para>
</listitem>
<listitem>
<para><link linkend="cvsup-config-vers">ÄúÏëÒªËüÃǵÄ
Äĸö°æ±¾£¿</link></para>
</listitem>
<listitem>
<para><link linkend="cvsup-config-where">ÄúÏë´ÓÄÄÀï
»ñÈ¡ËüÃÇ£¿</link></para>
</listitem>
<listitem>
<para><link linkend="cvsup-config-dest">ÄúÏë°ÑËüÃÇ
·ÅÔÚÄú×Ô¼º»úÆ÷µÄʲôµØ·½£¿</link></para>
</listitem>
<listitem>
<para><link linkend="cvsup-config-status">ÄúÏë°Ñ
ÄúµÄ״̬Îļþ·ÅÔÚÄÄ£¿</link></para>
</listitem>
</itemizedlist>
<para>ÔÚÏÂÃæµÄÕ½ÚÀÎÒÃÇͨ¹ýÒÀ´Î»Ø´ðÕâЩÎÊÌâÀ´´´½¨Ò»¸öµäÐ͵Ä
<filename>supfile</filename> Îļþ¡£Ê×ÏÈ£¬ÎÒÃÇÃèÊöÒ»ÏÂ
<filename>supfile</filename> µÄÕûÌå¹¹³É¡£</para>
<para><filename>supfile</filename> ÊǸöÎı¾Îļþ¡£×¢ÊÍÓÃ
<literal>#</literal> ¿ªÍ·£¬ÖÁÐÐβÓÐЧ¡£
¿ÕÐкÍÖ»°üº¬×¢Ê͵ÄÐлᱻºöÂÔ¡£</para>
<para>ÿ¸ö±£ÁôÐÐÃèÊöÒ»ÅúÓû§Ï£Íû½ÓÊÕµÄÎļþ¡£
ÿÐÐÒÔ <quote>collection</quote>£¬
ÓÉ·þÎñÆ÷¶Ë¶¨ÒåµÄºÏÀíµÄÎļþ·Ö×飬µÄÃû×Ö¿ªÍ·¡£
collection µÄÃû×Ö¸æËß·þÎñÆ÷ÄúÏëÒªµÄÎļþ¡£
collection Ãû×Ö½áÊø»òÕßÓиü¶àµÄ×ֶΣ¬Óÿոñ·Ö¸ô¡£
ÕâЩ×ֶλشðÁËÉÏÃæÁгöµÄÎÊÌâ¡£
×Ö¶ÎÀàÐÍÓÐÁ½ÖÖ£º±ê¼Ç×ֶκÍÖµ×ֶΡ£
±ê¼Ç×Ö¶ÎÓɶÀÁ¢µÄ¹Ø¼ü×Ö×é³É£¬±ÈÈ磬
<literal>delete</literal> »òÕß
<literal>compress</literal>¡£Öµ×Ö¶ÎÒ²Óùؼü×Ö¿ªÍ·£¬
¹Ø¼ü×ÖºóÃæ¸ú <literal>=</literal> ºÍµÚ¶þ¸ö´Ê¶øÃ»Óпոñ¡£
ÀýÈ磬<literal>release=cvs</literal> ÊÇÒ»¸öÖµ×ֶΡ£</para>
<para>Ò»¸öµäÐ굀 <filename>supfile</filename> ÍùÍù½ÓÊÕ¶àÓÚÒ»¸öµÄ
collection¡£´´½¨
<filename>supfile</filename> µÄÒ»ÖÖ·½Ê½ÊÇÃ÷È·µÄΪÿһ¸ö
collection Ö¸¶¨Ïà¹ØµÄ×ֶΡ£È»¶ø£¬ÕâÑùʹµÃ
<filename>supfile</filename> µÄÐбäµÃÌØ±ð³¤£¬ºÜ²»·½±ã£¬
ÒòΪ <filename>supfile</filename> ÖеÄËùÓÐ collection µÄ´ó²¿·Ö
×ֶζ¼ÊÇÏàͬµÄ¡£
<application>CVSup</application> ÌṩÁËÒ»¸öĬÈÏ»úÖÆÀ´±ÜÃâ
ÕâЩÎÊÌâ¡£ÓÃÌØ¶¨µÄα collection Ãû <literal>*default</literal>
¿ªÍ·µÄÐпÉÒÔ±»ÓÃÀ´ÉèÖñê¼ÇºÍֵΪ <filename>supfile</filename>
ÖÐËæºóµÄ collection ÖеÄĬÈÏÖµ¡£
ĬÈÏÖµ¿ÉÒÔͨ¹ýΪÕâ¸ö collection ×ÔÉíÖ¸¶¨²»Í¬µÄÖµÀ´¶Ôµ¥¸öµÄ
collection ¸²¸ÇÉèÖã¬
Ò²¿ÉÒÔÔÚ mid-supfile ÖÐͨ¹ý¸½¼ÓµÄ
<literal>*default</literal> Ðиıä»òÀ©³ä¡£</para>
<para>ÖªµÀÁËÕâЩ£¬ÎÒÃÇÏÖÔھͿÉÒÔ¿ªÊ¼´´½¨Ò»¸ö
ÓÃÓÚ½ÓÊÕºÍÉý¼¶ <link
linkend="current">&os;-CURRENT</link> Ö÷Ô´´úÂëÊ÷µÄ
<filename>supfile</filename> ÎļþÁË¡£</para>
<itemizedlist>
<listitem>
<para><anchor id="cvsup-config-files">ÄúÏë½ÓÊÕÄÄЩÎļþ£¿</para>
<para>ͨ¹ý <application>CVSup</application> ¿ÉÓõÄÎļþ×éÖ¯³É½Ð×ö
<quote>collections</quote> µÄÃû³Æ×é¡£
ÕâЩ¿ÉÓÃµÄ collection ÔÚ <link
linkend="cvsup-collec">ËæºóµÄÕ½Ú</link> ÖÐÃèÊö¡£
ÔÚÕâ¸öÀý×ÓÀ
ÎÒÃÇÏ£Íû½ÓÊÕ &os; ϵͳµÄÍêÕûµÄÖ÷´úÂëÊ÷¡£
ÓÐÒ»¸öµ¥¶ÀµÄ´óµÄ collection
<literal>src-all</literal> ÈÃÎÒÃÇÍê³ÉÕâ¸ö¡£
´´½¨ÎÒÃǵÄ
<filename>supfile</filename> µÄµÚÒ»²½£¬
ÎÒÃǼòµ¥µÄÁгöÕâЩ collection£¬Ã¿¸öÒ»ÐÐ(ÔÚÕâ¸öÀý×ÓÀ
Ö»ÓÐÒ»ÐÐ)£º</para>
<programlisting>src-all</programlisting>
</listitem>
<listitem>
<para><anchor id="cvsup-config-vers">ÄúÏëÒªËûÃǵÄ
Äĸö°æ±¾£¿</para>
<para>ͨ¹ý <application>CVSup</application>£¬Äúʵ¼ÊÉÏ¿ÉÒÔ½ÓÊÕ
Ôø¾­´æÔÚµÄÔ´´úÂëµÄÈκΰ汾¡£
ÕâÊÇÓпÉÄܵģ¬ÒòΪ
<application>cvsupd</application> ·þÎñÆ÷Ö±½Óͨ¹ý
CVS ²Ö¿â¹¤×÷£¬Äǰüº¬ÁËËùÓеİ汾¡£Äú¿ÉÒÔ
Óà <literal>tag=</literal> ºÍ <option>date=</option> Öµ×Ö¶Î
Ö¸¶¨Ò»¸öÄúÏëÒªµÄ°æ±¾¡£</para>
<warning>
<para>×ÐϸµÄÕýÈ·Ö¸¶¨ÈκΠ<literal>tag=</literal>
×ֶΡ£ÓÐһЩ tag Ö»¶ÔÌØ¶¨µÄ collection ÎļþºÏ·¨¡£
Èç¹ûÄúÖ¸¶¨ÁËÒ»¸ö²»ÕýÈ·µÄ»òÕß
ƴд´íÎóµÄ tag£¬<application>CVSup</application>
»áɾ³ýÄú¿ÉÄܲ»Ïëɾ³ýµÄÎļþ¡£
ÌØ±ðµØ£¬¶Ô <literal>ports-*</literal>
collection <emphasis>Ö»</emphasis>ʹÓÃ
<literal>tag=.</literal>¡£</para>
</warning>
<para><literal>tag=</literal> ×Ö¶ÎÔÚ²Ö¿âÖбíʾΪһ¸ö·ûºÅ±êÇ©¡£
ÓÐÁ½ÖÖ±êÇ©£¬ÐÞ¶©±êÇ©ºÍ·ÖÖ§±êÇ©¡£
ÐÞ¶©±êÇ©´ú±íÒ»¸öÌØ¶¨µÄÐÞ¶©°æ±¾¡£
ËüµÄº¬ÒåÊÇÒ»³É²»±äµÄ¡£
·ÖÖ§±êÇ©£¬ÁíÒ»·½Ã棬´ú±í¸ø¶¨¿ª·¢ÏßÉϸø¶¨Ê±¼äµÄ×îÐÂÐÞ¶©¡£
ÒòΪ·ÖÖ§±êÇ©²»´ú±íÒ»¸öÌØ¶¨µÄÐÞ¶©°æ±¾£¬
ËüÃ÷ÌìµÄº¬Òå¾Í¿ÉÄܺͽñÌìµÄÓÐËù²»Í¬¡£</para>
<para><xref linkend="cvs-tags"> °üº¬ÁËÓû§¿ÉÄܸÐÐËȤµÄ·ÖÖ§±êÇ©¡£
µ±ÔÚ <application>CVSup</application> µÄÅäÖÃÎļþÖÐÖ¸¶¨±êÇ©µÄʱºò£¬±ØÐëÓÃ
<literal>tag=</literal> ¿ªÍ·
(<literal>RELENG_4</literal> »á±ä³É
<literal>tag=RELENG_4</literal>)¡£
¼ÇסֻÓÐ <literal>tag=.</literal> ¿ÉÒÔÓÃÓÚ
Ports Collection¡£</para>
<warning>
<para>×¢ÒâÏñ¿´µ½µÄÄÇÑùÕýÈ·µÄÊäÈë±êÇ©Ãû¡£
<application>CVSup</application> ²»Äܱæ±ðºÏ·¨ºÍ²»ºÏ·¨±êÇ©¡£
Èç¹ûÄúƴд´íÁ˱êÇ©Ãû£¬
<application>CVSup</application>
»áÏñÄúÖ¸¶¨ÁËÒ»¸öûÓÐÈκÎÎļþµÄºÏ·¨±êǩһÑù¹¤×÷£¬
ÄÇ»áɾ³ýÄúÒѾ­´æÔڵĴúÂë¡£</para>
</warning>
<para>µ±ÄúÖ¸¶¨Ò»¸ö·ÖÖ§±êÇ©µÄʱºò£¬Äúͨ³£»áÊÕµ½¿ª·¢ÏßÉÏÎļþµÄ×îа汾¡£
Èç¹ûÄúÏ£Íû½ÓÊÕһЩ¹ýʱµÄ°æ±¾£¬Äú¿ÉÒÔͨ¹ýÓÃ
<option>date=</option> Öµ×Ö¶ÎÖ¸¶¨Ò»¸öÈÕÆÚÀ´×öµ½¡£
&man.cvsup.1; ÊÖ²áÒ³½âÊÍÁËÈçºÎÀ´×ö¡£</para>
<para>¶ÔÓÚÎÒÃǵÄʾÀýÀ´Ëµ£¬ÎÒÃÇÏ£Íû½ÓÊÕ &os;-CURRENT¡£
ÎÒÃÇÔÚÎÒÃǵÄ
<filename>supfile</filename> µÄ¿ªÍ·Ìí¼ÓÕâÐУº</para>
<programlisting>*default tag=.</programlisting>
<para>ÓÐÒ»¸öÖØÒªµÄÌØÀý£¬
Èç¹ûÄú¼Èûָ¶¨ <literal>tag=</literal> ×Ö¶ÎҲûָ¶¨
<literal>date=</literal> ×ֶεÄÇé¿ö¡£ÕâÖÖÇé¿öÏ£¬
Äú»áÊÕµ½Ö±½ÓÀ´×ÔÓÚ·þÎñÆ÷ CVS ²Ö¿âµÄÕæÊµµÄ RCS Îļþ£¬
¶ø²»ÊÇÄ³Ò»ÌØ¶¨°æ±¾¡£
¿ª·¢ÈËÔ±Ò»°ãϲ»¶ÕâÖÖ²Ù×÷ģʽ¡£
ͨ¹ýÔÚËûÃǵÄϵͳÉÏά»¤Ò»·Ý²Ö¿â×ÔÉíµÄ¸±±¾£¬
ËûÃÇ¿ÉÒÔä¯ÀÀÐÞ¶©ÀúÊ·ÒÔ¼°¼ì²éÎļþ¹ýÈ¥µÄ°æ±¾¡£
È»¶ø£¬Õâ¸öºÃ´¦ÊÇÒÔ´óÁ¿µÄ´ÅÅ̿ռäΪ´ú¼ÛµÄ¡£</para>
</listitem>
<listitem>
<para><anchor id="cvsup-config-where">ÄúÏë´ÓÄÄÀï»ñÈ¡ËûÃÇ£¿</para>
<para>ÎÒÃÇʹÓà <literal>host=</literal> ×Ö¶ÎÀ´¸æËß
<command>cvsup</command> ´ÓÄÄÀï»ñÈ¡¸üС£
ÈκÎÒ»¸ö <link linkend="cvsup-mirrors">CVSup ¾µÏñÕ¾µã</link>¶¼¿ÉÒÔ£¬
ËäÈ»ÄúÓ¦¸ÃÑ¡ÔñÒ»¸öÀëÄú±È½Ï½üµÄÕ¾µã¡£
ÔÚÕâ¸öÀý×ÓÀïÎÒÃǽ«Ê¹ÓÃÒ»¸öÐéÄâµÄ &os; ·¢²¼Õ¾µã£¬
<hostid role="fqdn">cvsup99.FreeBSD.org</hostid>£º</para>
<programlisting>*default host=cvsup99.FreeBSD.org</programlisting>
<para>ÄúÐèÒªÔÚÔËÐÐ <application>CVSup</application>
֮ǰ°ÑÕâ¸ö¸Ä³ÉÒ»¸öʵ¼Ê´æÔÚµÄÕ¾µã¡£
ÔÚÈκΠ<command>cvsup</command> ÔËÐеÄÌØ¶¨Ê±¿Ì£¬
Äú¶¼¿ÉÒÔÔÚÃüÁîÐÐÉÏʹÓà <option>-h
<replaceable>hostname</replaceable></option> Ñ¡ÏîÀ´¸²¸ÇÖ÷»úÉèÖá£</para>
</listitem>
<listitem>
<para><anchor id="cvsup-config-dest">ÄúÏë°ÑËüÃÇ·ÅÔÚ
Äú×Ô¼º»úÆ÷µÄʲôµØ·½£¿</para>
<para><literal>prefix=</literal> ×ֶθæËß
<command>cvsup</command> °Ñ½ÓÊÕµÄÎļþ·ÅÔÚÄÄÀï¡£
ÔÚÕâ¸öÀý×ÓÀÎÒÃǰÑÔ´´úÂëÎļþÖ±½Ó·Å½øÎÒÃǵÄÖ÷Ô´´úÂëÊ÷£¬
<filename>/usr/src</filename>¡£
<filename>src</filename> Ŀ¼ÒѾ­Òþº¬ÔÚÎÒÃÇÑ¡Ôñ½ÓÊÕµÄ collection ÀïÁË£¬
ËùÒÔÕýÈ·µÄд·¨ÊÇ£º</para>
<programlisting>*default prefix=/usr</programlisting>
</listitem>
<listitem>
<para><anchor id="cvsup-config-status">
<command>cvsup</command> ÔÚÄÄÀïά»¤ËüµÄ״̬Îļþ£¿</para>
<para><application>CVSup</application> ¿Í»§¶ËÔÚ±»½Ð×ö <quote>base</quote>
µÄĿ¼Àïά»¤Á˼¸¸ö״̬Îļþ¡£ ÕâЩÎļþ°ïÖú
<application>CVSup</application> ¸üÓÐЧµÄ¹¤×÷£¬
ͨ¹ý¸ú×ÙÄúÒѾ­½ÓÊÕµ½ÄÄЩ¸üеķ½Ê½¡£
ÎÒÃǽ«Ê¹Óñê×¼µÄ base Ŀ¼£¬
<filename>/var/db</filename>£º</para>
<programlisting>*default base=/var/db</programlisting>
<para>Èç¹ûÄúµÄ base Ŀ¼»¹²»´æÔÚ£¬ÏÖÔÚ×îºÃ´´½¨Ëü¡£
Èç¹û base Ŀ¼²»´æÔÚ£¬<command>cvsup</command>
¿Í»§¶Ë»á¾Ü¾ø¹¤×÷¡£</para>
</listitem>
<listitem>
<para>ÆäËûµÄ <filename>supfile</filename>
ÉèÖãº</para>
<para>ÔÚ <filename>supfile</filename>
ÖÐÓÐһЩÆäËûÑ¡ÏîÐèÒª½éÉÜһϣº</para>
<programlisting>*default release=cvs delete use-rel-suffix compress</programlisting>
<para><literal>release=cvs</literal> ÏÔʾ·þÎñÆ÷Ó¦¸Ã´Ó &os; µÄÖ÷ CVS ²Ö¿âÖлñÈ¡ÐÅÏ¢¡£
ÊÂʵÉÏ×ÜÊÇÕâÑùµÄ£¬µ«ÊÇÒ²ÓпÉÄܻᳬ³öÕâ¸öÌÖÂ۵ķ¶Î§¡£</para>
<para><literal>delete</literal> ¸ø
<application>CVSup</application> ȨÏÞɾ³ýÎļþ¡£
ÄúÓ¦¸Ã×ÜÊÇÖ¸¶¨Õâ¸ö£¬ÕâÑù
<application>CVSup</application>
¿ÉÒÔ±£Ö¤ÄúµÄÔ´´úÂëÊ÷ÍêÈ«¸üС£<application>CVSup</application>
ºÜСÐĵÄֻɾ³ýÄÇЩ²»ÔÙÒÀÀµµÄÎļþ¡£
ÄúÓµÓеÄÈκζîÍâµÄÎļþ»á±»ÑϸñµÄ±£Áô¡£</para>
<para><literal>use-rel-suffix</literal> ÊÇ ... ²»¿É˼ÒéµÄ¡£
Èç¹ûÄúÕæµÄÏëÁ˽âËü£¬²é¿´ &man.cvsup.1; ÊÖ²áÒ³¡£
·ñÔò£¬¾ÍÖ¸¶¨¶ø²»Óõ£ÐÄÕâ¸ö¡£</para>
<para><literal>compress</literal> ÆôÓà gzip ·ç¸ñµÄÐŵÀѹËõ¡£
Èç¹ûÄúµÄÍøÂçÁ¬½ÓÊÇ T1 »òÕ߸ü¿ì£¬ Äú¿ÉÄܲ»ÏëʹÓÃѹËõ¡£
·ñÔò£¬Ëü·Ç³£ÓаïÖú¡£</para>
</listitem>
<listitem>
<para>°ÑËüÃÇ·ÅÔÚÒ»Æð£º</para>
<para>ÕâÊÇÎÒÃǵÄʾÀýµÄÍêÕû <filename>supfile</filename>
Îļþ£º</para>
<programlisting>*default tag=.
*default host=cvsup99.FreeBSD.org
*default prefix=/usr
*default base=/var/db
*default release=cvs delete use-rel-suffix compress
src-all</programlisting>
</listitem>
</itemizedlist>
<sect3 id="cvsup-refuse-file">
<title><filename>refuse</filename> Îļþ</title>
<para>ÏñÉÏÃæÌáµ½µÄ£¬<application>CVSup</application> ʹÓÃÒ»ÖÖ
<emphasis>pull ·½·¨</emphasis>¡£»ù±¾ÉÏ£¬ÕâÒâζ×ÅÄúÒªÁ¬½Óµ½
<application>CVSup</application> ·þÎñÆ÷£¬·þÎñÆ÷˵£¬
<quote>ÕâÓÐЩÄúÄÜÏÂÔØµÄ¶«Î÷
...</quote>£¬È»ºóÄúµÄ¿Í»§¶Ë·´Ó¦<quote>ºÃ£¬ÎÒÒªÕâ¸ö£¬
Õâ¸ö£¬Õâ¸ö£¬»¹ÓÐÕâ¸ö¡£</quote>ÔÚĬÈϵÄÅäÖÃÖУ¬
<application>CVSup</application> ¿Í»§¶Ë»áÈ¡»ØÄúÔÚÅäÖÃÎļþÖÐÑ¡¶¨µÄ
collection ºÍ±êÇ©µÄÿ¸öÎļþ¡£
È»¶ø£¬²¢²»×ÜÊÇÄúÏëÒªµÄ£¬
ÓÈÆäÊÇÄúÔÚͬ²½ <filename>doc</filename>£¬<filename>ports</filename>£¬»òÕß
<filename>www</filename> Ê÷ &mdash; ´ó²¿·ÖÈ˶¼²»ÄÜÔĶÁËÄÖÖ»òÕßÎåÖÖ
ÓïÑÔ£¬Òò´ËËûÃDz»ÐèÒªÏÂÔØÌØ¶¨ÓïÑÔµÄÎļþ¡£
Èç¹ûÄúÔÚ <application>CVSup</application> Ports Collection£¬Äú
¿ÉÒÔͨ¹ýµ¥¶ÀÖ¸¶¨Ã¿¸ö collection À´±ÜÃâÕâ¸ö
(±ÈÈ磬<emphasis>ports-astrology</emphasis>£¬
<emphasis>ports-biology</emphasis>£¬µÈµÈÈ¡´ú¼òµ¥µÄ˵Ã÷
<emphasis>ports-all</emphasis>)¡£È»¶ø£¬ÒòΪ <filename>doc</filename>
ºÍ <filename>www</filename> Ê÷ûÓÐÌØ¶¨ÓïÑ﵀ collection£¬Äú±ØÐë
ʹÓà <application>CVSup</application> Ðí¶à¼«ºÃµÄÌØÐÔÖ®Ò»£º
<filename>refuse</filename> Îļþ¡£</para>
<para><filename>refuse</filename> Îļþ±¾ÖÊÉÏÊǸæËß
<application>CVSup</application> Ëü²»Ó¦¸Ã´Ó collection
ÖÐÈ¡µÃijЩÎļþ£»»»¾ä»°Ëµ£¬Ëü¸æË߿ͻ§¶Ë
<emphasis>¾Ü¾ø</emphasis> À´×Ô·þÎñÆ÷µÄÌØ¶¨µÄÎļþ¡£
<filename>refuse</filename> Îļþ¿ÉÒÔÔÚ
<filename><replaceable>base</replaceable>/sup/</filename>
ÖÐÕÒµ½(»òÕߣ¬Èç¹ûÄúûÓУ¬Ó¦¸Ã´´½¨Ò»¸ö)¡£
<replaceable>base</replaceable> ÔÚÄúµÄ <filename>supfile</filename> Öж¨Ò壻
ĬÈÏÇé¿öÏ£¬<replaceable>base</replaceable> ¾ÍÊÇ
<filename>/var/db</filename>£¬
ÕâÒâζ×ÅĬÈ쵀 <filename>refuse</filename> Îļþ¾ÍÊÇ
<filename>/var/db/sup/refuse</filename>¡£</para>
<para><filename>refuse</filename> ÎļþµÄ¸ñʽºÜ¼òµ¥£»
Ëü½ö½ö°üº¬Äú²»Ï£ÍûÏÂÔØµÄÎļþºÍĿ¼Ãû¡£
ÀýÈ磬Èç¹ûÄú³ýÁËÓ¢ÓïºÍµÂÓïÖ®Íâ²»»á½²ÆäËûÓïÑÔ£¬
¶øÇÒÒ²²»´òËãÔĶÁµÂÎĵÄÎĵµ·­Òë°æ±¾£¬
Ôò¿ÉÒÔ°ÑÏÂÃæÕâЩ·ÅÔÚÄúµÄ
<filename>refuse</filename> ÎļþÀ</para>
<screen>doc/bn_*
doc/da_*
doc/de_*
doc/el_*
doc/es_*
doc/fr_*
doc/hu_*
doc/it_*
doc/ja_*
doc/mn_*
doc/nl_*
doc/no_*
doc/pl_*
doc/pt_*
doc/ru_*
doc/sr_*
doc/tr_*
doc/zh_*</screen>
<para>µÈµÈÆäËûÓïÑÔ(Äú¿ÉÒÔͨ¹ýä¯ÀÀ
<ulink
url="http://www.FreeBSD.org/cgi/cvsweb.cgi/">&os;
CVS ²Ö¿â</ulink>ÕÒµ½ÍêÕûµÄÁбí)¡£</para>
<para>ÓÐÕâ¸ö·Ç³£ÓÐÓõÄÌØÐÔ£¬ÄÇЩÂýËÙÁ¬½Ó»òÕßҪΪËûÃÇµÄ Internet
Á¬½Ó°´Ê±¸¶·ÑµÄÓû§¾Í¿ÉÒÔ½ÚÊ¡±¦¹óµÄʱ¼äÒòΪËûÃDz»ÔÙÐèÒª
ÏÂÔØÄÇЩ´ÓÀ´²»ÓõÄÎļþ¡£ÒªÁ˽â
<filename>refuse</filename> ÎļþµÄ¸ü¶àÐÅÏ¢ÒÔ¼°ÆäËü
<application>CVSup</application> µÄÓÅÑŵÄÌØÐÔ£¬Çëä¯ÀÀËüµÄ
ÊÖ²áÒ³¡£</para>
</sect3>
</sect2>
<sect2>
<title>ÔËÐÐ <application>CVSup</application></title>
<para>ÄúÏÖÔÚ×¼±¸³¢ÊÔÉý¼¶ÁË¡£ÃüÁîºÜ¼òµ¥£º</para>
<screen>&prompt.root; <userinput>cvsup <replaceable>supfile</replaceable></userinput></screen>
<para><filename><replaceable>supfile</replaceable></filename>
µÄλÖõ±È»¾ÍÊÇÄú¸Õ¸Õ´´½¨µÄ <filename>supfile</filename> ÎļþÃûÀ²¡£
Èç¹ûÄúÔÚ X11 ÏÂÃæÔËÐУ¬<command>cvsup</command>
»áÏÔʾһ¸öÓÐһЩ¿ÉÒÔ×öƽ³£ÊÂÇéµÄ°´Å¥µÄ GUI ´°¿Ú¡£
°´ <guibutton>go</guibutton> °´Å¥£¬È»ºó¿´×ÅËüÔËÐС£</para>
<para>ÔÚÕâ¸öÀý×ÓÀïÄú½«ÒªÉý¼¶ÄúĿǰµÄ
<filename>/usr/src</filename> Ê÷£¬Äú½«ÐèÒª
Óà <username>root</username> À´ÔËÐгÌÐò£¬ÕâÑù
<command>cvsup</command> ÓÐÐèÒªµÄȨÏÞÀ´¸üÐÂÄúµÄÎļþ¡£
¸Õ¸Õ´´½¨ÁËÄúµÄÅäÖÃÎļþ£¬ÓÖ´ÓÀ´Ã»ÓÐʹÓùýÕâ¸ö³ÌÐò£¬
½ôÕŲ»°²ÊÇ¿ÉÒÔÀí½âµÄ¡£ÓÐÒ»¸ö¼òµ¥µÄ·½·¨²»¸Ä±äÄúµ±Ç°µÄÎļþ
À´×öÒ»´ÎÊÔÑéÐÔµÄÔËÐС£Ö»ÒªÔÚ·½±ãµÄµØ·½´´½¨Ò»¸ö
¿ÕĿ¼£¬²¢ÔÚÃüÁîÐÐÉÏ×÷Ϊһ¸ö¶îÍâµÄ²ÎÊý˵Ã÷£º</para>
<screen>&prompt.root; <userinput>mkdir /var/tmp/dest</userinput>
&prompt.root; <userinput>cvsup supfile /var/tmp/dest</userinput></screen>
<para>ÄúÖ¸¶¨µÄĿ¼»á×÷ΪËùÓÐÎļþ¸üеÄÄ¿µÄ·¾¶¡£
<application>CVSup</application> »á¼ì²éÄúÔÚ
<filename>/usr/src</filename> ÖеÄÎļþ£¬µ«ÊDz»»áÐ޸Ļò
ɾ³ý¡£ÈκÎÎļþ¸üж¼»á±»·Åµ½
<filename>/var/tmp/dest/usr/src</filename> ÀïÁË¡£
ÔÚÕâÖÖ·½Ê½ÏÂÔËÐÐ <application>CVSup</application> Ò²»á°ÑËüµÄ base
Ŀ¼״̬Îļþ±£³ÖÔ­Ñù¡£ÕâЩÎļþµÄа汾
»á±»Ð´µ½Ö¸¶¨µÄĿ¼¡£
ÒòΪÄúÓÐ
<filename>/usr/src</filename> Ŀ¼µÄ¶ÁȨÏÞ£¬ËùÒÔÖ´ÐÐÕâÖÖÊÔÑéÐÔµÄÔËÐÐ
ÉõÖÁ²»ÐèҪʹÓà <username>root</username> Óû§¡£</para>
<para>Èç¹ûÄúûÓÐÔËÐÐ X11 »òÕß²»Ï²»¶ GUI£¬
µ±ÄúÔËÐÐ <command>cvsup</command> µÄʱºòÐèÒªÔÚÃüÁîÐÐÌí¼Ó
Á½¸öÑ¡Ï</para>
<screen>&prompt.root; <userinput>cvsup -g -L 2 <replaceable>supfile</replaceable></userinput></screen>
<para><option>-g</option> ¸æËß
<application>CVSup</application> ²»ÒªÊ¹Óà GUI¡£Èç¹ûÄú
ûÔÚÔËÐÐ X11 Õâ¸öÊÇ×Ô¶¯µÄ£¬·ñÔòÄú±ØÐëÖ¸¶¨Ëü¡£</para>
<para><option>-L 2</option> ¸æËß
<application>CVSup</application> Êä³öËùÓÐÕýÔÚÉý¼¶µÄÎļþµÄϸ½Ú¡£
ÓÐÈý¸öµÈ¼¶¿ÉÒÔÑ¡Ôñ£¬´Ó <option>-L 0</option> µ½
<option>-L 2</option>¡£Ä¬ÈÏÊÇ 0£¬Òâζ×ųýÁË´íÎóÏûÏ¢
ʲô¶¼²»Êä³ö¡£</para>
<para>»¹ÓÐÐí¶àÆäËüµÄÑ¡Ïî¿ÉÓá£ÏëÒªÒ»¸ö¼ò¶ÌµÄÁÐ±í£¬
ÊäÈë <command>cvsup -H</command>¡£Òª²é¿´¸üÏêϸµÄÃèÊö£¬
Çë²é¿´ÊÖ²áÒ³¡£</para>
<para>Ò»µ©Äú¶ÔÉý¼¶¹¤×÷µÄ·½Ê½ÂúÒâÁË£¬Äú¾Í
¿ÉÒÔʹÓà &man.cron.8; À´°²ÅŹæÔòµÄÔËÐÐ
<application>CVSup</application>¡£
ºÜÏÔÈ»µÄ£¬Äú²»Ó¦¸ÃÈà <application>CVSup</application>
ͨ¹ý &man.cron.8; ÔËÐеÄʱºòʹÓÃËüµÄ GUI¡£</para>
</sect2>
<sect2 id="cvsup-collec">
<title><application>CVSup</application> Îļþ collection</title>
<para><application>CVSup</application> ¿ÉÓõÄÎļþ collection
ÊÇ·Ö¼¶×éÖ¯µÄ¡£
Óм¸¸ö´óµÄ collection£¬È»ºóËüÃÇÓзֳɸüСµÄ×Ó
collection¡£½ÓÊÕÒ»¸ö´óµÄ collection µÈͬÓÚ
½ÓÊÕËüµÄÿһ¸ö×Ó collection¡£
collection µÄµÈ¼¶¹ØÏµÔÚÏÂÃæÁбíÖÐͨ¹ýËõ½øµÄʹÓÃ
·´Ó³³öÀ´¡£</para>
<para>×î³£ÓÃµÄ collection ÊÇ
<literal>src-all</literal>£¬ºÍ
<literal>ports-all</literal>¡£ÆäËüµÄ collection Ö»±»ÓÐ×ÅÌØ¶¨
Ä¿µÄµÄС²¿·ÖÈËʹÓã¬
ÓÐЩվµã¿ÉÄܲ»È«²¿Ö§³Ö¡£</para>
<variablelist>
<varlistentry>
<term><literal>cvs-all release=cvs</literal></term>
<listitem>
<para>&os; Ö÷ CVS ²Ö¿â£¬°üº¬
ÃÜÂëϵͳµÄ´úÂë¡£</para>
<variablelist>
<varlistentry>
<term><literal>distrib release=cvs</literal></term>
<listitem>
<para>&os; ·¢Ðа汾ºÍ¾µÏñÏà¹ØµÄ
Îļþ¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>doc-all release=cvs</literal></term>
<listitem>
<para>&os; ʹÓÃÊÖ²áºÍÆäËüÎĵµµÄÔ´´úÂë¡£
ÆäÖв»°üº¬ &os; web Õ¾µãµÄÎļþ¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-all release=cvs</literal></term>
<listitem>
<para>&os; Ports Collection¡£</para>
<important id="cvsup-collec-pbase-warn">
<para>Èç¹ûÄú²»ÏëÉý¼¶È«²¿µÄ
<literal>ports-all</literal>(Õû¸ö ports Ê÷)£¬
¶øÖ»ÊÇʹÓÃÏÂÃæÁгöµÄÒ»¸ö×Ó¼¯£¬
ÇëÈ·±£Äú<emphasis>×ÜÊÇ</emphasis>Éý¼¶ÁË
<literal>ports-base</literal> ×Ó collection£¡
ÎÞÂÛºÎʱÔÚ ports ¹¹½¨Ï²㹹ÔìÓÐËù¸Ä±äµÄʱºò¶¼»áͨ¹ý
<literal>ports-base</literal> ±íÏÖ³öÀ´£¬ÊÂʵÉÏijЩ
¸Ä±ä»áºÜ¿ìµÄ±»<quote>ʵ¼ÊµÄ</quote>
ports ʹÓã¬Òò´Ë£¬Èç¹ûÄúÖ»Éý¼¶ÁË
<quote>ʵ¼ÊµÄ</quote> ports ¶øËûÃÇʹÓÃÁËһЩеÄÌØÐÔ£¬
¾ÍÓм«´óµÄ¿ÉÄܱàÒë»áÒòһЩÉñÃØµÄ´íÎóÐÅÏ¢¶øÊ§°Ü¡£
ÕâÖÖÇé¿öÏÂ<emphasis>·Ç³£¿ìËÙµÄ</emphasis>Òª×öµÄÊÂÇé
¾ÍÊÇÈ·±£ÄúµÄ
<literal>ports-base</literal> ×Ó collection ¸üе½
×îС£</para>
</important>
<important id="cvsup-collec-index-warn">
<para>Òª×ÔÐй¹½¨ <filename>ports/INDEX</filename>£¬ Äú
<emphasis>±ØÐë</emphasis> ½ÓÊÜ
<literal>ports-all</literal> (ÍêÕûµÄ ports tree)¡£
ÔÚ²¿·Ö ports tree ÉϹ¹½¨ <filename>ports/INDEX</filename>
ÊDz»±»Ö§³ÖµÄ¡£ Çë²Î¼û
<ulink url="&url.books.faq;/applications.html#MAKE-INDEX">
FAQ</ulink>¡£</para>
</important>
<variablelist>
<varlistentry>
<term><literal>ports-accessibility
release=cvs</literal></term>
<listitem>
<para>ÓÃÒÔ°ïÖú²Ð¼²Óû§µÄÈí¼þ¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-arabic
release=cvs</literal></term>
<listitem>
<para>°¢À­²®ÓïÖ§³Ö¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-archivers
release=cvs</literal></term>
<listitem>
<para>´æµµ¹¤¾ß¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-astro
release=cvs</literal></term>
<listitem>
<para>ÌìÎÄÏà¹ØµÄ ports¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-audio
release=cvs</literal></term>
<listitem>
<para>ÉùÒôÖ§³Ö¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-base
release=cvs</literal></term>
<listitem>
<para>Ports Collection ¹¹½¨Ï²¿¹¹Ôì -
λÓÚ <filename>/usr/ports</filename> µÄ
<filename>Mk/</filename> ºÍ
<filename>Tools/</filename> ×ÓĿ¼µÄ
¸÷ÖÖ¸÷ÑùµÄÎļþ¡£</para>
<note>
<para>Çë²é¿´<link
linkend="cvsup-collec-pbase-warn">
ÖØÒª¾¯¸æ</link>£ºÄúÓ¦¸Ã
<emphasis>×ÜÊÇ</emphasis>¸üÐÂÕâ¸ö
×Ó collection£¬ÎÞÂÛÄú¸üÐÂ
&os; Ports Collection µÄÈκβ¿·ÖµÄʱºò£¡</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-benchmarks
release=cvs</literal></term>
<listitem>
<para>»ù×¼¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-biology
release=cvs</literal></term>
<listitem>
<para>ÉúÎïѧ¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-cad
release=cvs</literal></term>
<listitem>
<para>¼ÆËã»ú¸¨ÖúÉè¼Æ¹¤¾ß¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-chinese
release=cvs</literal></term>
<listitem>
<para>ÖÐÎÄÓïÑÔÖ§³Ö¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-comms
release=cvs</literal></term>
<listitem>
<para>ͨÐÅÈí¼þ¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-converters
release=cvs</literal></term>
<listitem>
<para>×Ö·û±àÂëת»»¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-databases
release=cvs</literal></term>
<listitem>
<para>Êý¾Ý¿â</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-deskutils
release=cvs</literal></term>
<listitem>
<para>¼ÆËã»ú·¢Ã÷ǰ³£³öÏÖÔÚ×ÀÃæÉϵĶ«Î÷¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-devel
release=cvs</literal></term>
<listitem>
<para>¿ª·¢¹¤¾ß¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-dns
release=cvs</literal></term>
<listitem>
<para>DNS Ïà¹ØÈí¼þ¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-editors
release=cvs</literal></term>
<listitem>
<para>±à¼­Æ÷</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-emulators
release=cvs</literal></term>
<listitem>
<para>ÆäËü²Ù×÷ϵͳµÄÄ£ÄâÆ÷</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-finance
release=cvs</literal></term>
<listitem>
<para>»õ±Ò£¬½ðÈÚÏà¹ØÓ¦ÓóÌÐò¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-ftp
release=cvs</literal></term>
<listitem>
<para>FTP ¿Í»§¶ËºÍ·þÎñÆ÷¶Ë¹¤¾ß¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-games
release=cvs</literal></term>
<listitem>
<para>ÓÎÏ·</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-german
release=cvs</literal></term>
<listitem>
<para>µÂÓïÖ§³Ö¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-graphics
release=cvs</literal></term>
<listitem>
<para>ͼÐÎͼÏñ¹¤¾ß¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-hebrew
release=cvs</literal></term>
<listitem>
<para>Ï£²®À´ÓïÖ§³Ö¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-hungarian
release=cvs</literal></term>
<listitem>
<para>ÐÙÑÀÀûÓïÑÔÖ§³Ö¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-irc
release=cvs</literal></term>
<listitem>
<para>Internet ¶àÏß½»Ì¸(IRC)¹¤¾ß¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-japanese
release=cvs</literal></term>
<listitem>
<para>ÈÕÓïÖ§³Ö¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-java
release=cvs</literal></term>
<listitem>
<para>&java; ¹¤¾ß¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-korean
release=cvs</literal></term>
<listitem>
<para>º«¹úÓïÑÔÖ§³Ö¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-lang
release=cvs</literal></term>
<listitem>
<para>±à³ÌÓïÑÔ¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-mail
release=cvs</literal></term>
<listitem>
<para>ÓʼþÈí¼þ¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-math
release=cvs</literal></term>
<listitem>
<para>ÊýÖµ¼ÆËãÈí¼þ¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-mbone
release=cvs</literal></term>
<listitem>
<para>MBone Ó¦ÓóÌÐò¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-misc
release=cvs</literal></term>
<listitem>
<para>ÔÓÑù¹¤¾ß¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-multimedia
release=cvs</literal></term>
<listitem>
<para>¶àýÌåÈí¼þ¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-net
release=cvs</literal></term>
<listitem>
<para>ÍøÂçÈí¼þ¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-net-im
release=cvs</literal></term>
<listitem>
<para>¼´Ê±ÏûÏ¢Èí¼þ¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-net-mgmt
release=cvs</literal></term>
<listitem>
<para>Íø¹ÜÈí¼þ¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-net-p2p
release=cvs</literal></term>
<listitem>
<para>¶ÔµÈÍø (peer to peer network) Ó¦Óá£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-news
release=cvs</literal></term>
<listitem>
<para>USENET ÐÂÎÅÈí¼þ¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-palm
release=cvs</literal></term>
<listitem>
<para><trademark class="trade">Palm</trademark>
ϵÁÐÈí¼þÖ§³Ö¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-polish
release=cvs</literal></term>
<listitem>
<para>²¨À¼ÓïÖ§³Ö¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-ports-mgmt
release=cvs</literal></term>
<listitem>
<para>ÓÃÓÚ¹ÜÀí ports ºÍÔ¤±àÒë°üµÄ¹¤¾ß¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-portuguese
release=cvs</literal></term>
<listitem>
<para>ÆÏÌÑÑÀÓïÖ§³Ö¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-print
release=cvs</literal></term>
<listitem>
<para>´òÓ¡Èí¼þ¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-russian
release=cvs</literal></term>
<listitem>
<para>¶íÓïÖ§³Ö¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-science
release=cvs</literal></term>
<listitem>
<para>¿ÆÑ§¼ÆËã¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-security
release=cvs</literal></term>
<listitem>
<para>°²È«¹¤¾ß¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-shells
release=cvs</literal></term>
<listitem>
<para>ÃüÁîÐÐ shell¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-sysutils
release=cvs</literal></term>
<listitem>
<para>ϵͳʵÓù¤¾ß¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-textproc
release=cvs</literal></term>
<listitem>
<para>Îı¾´¦Àí¹¤¾ß(²»
°üº¬×ÀÃæ³ö°æ)¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-ukrainian
release=cvs</literal></term>
<listitem>
<para>ÎÚ¿ËÀ¼ÓïÖ§³Ö¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-vietnamese
release=cvs</literal></term>
<listitem>
<para>Ô½ÄÏÓïÖ§³Ö¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-www
release=cvs</literal></term>
<listitem>
<para>ÍòÎ¬Íø(WWW)Ïà¹ØÈí¼þ¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-x11
release=cvs</literal></term>
<listitem>
<para>Ö§³Ö X window ϵͳµÄ ports¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-x11-clocks
release=cvs</literal></term>
<listitem>
<para>X11 ʱÖÓ¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-x11-drivers
release=cvs</literal></term>
<listitem>
<para>X11 Çý¶¯³ÌÐò¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-x11-fm
release=cvs</literal></term>
<listitem>
<para>X11 Îļþ¹ÜÀíÆ÷¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-x11-fonts
release=cvs</literal></term>
<listitem>
<para>X11 ×ÖÌåºÍ×ÖÌ幤¾ß¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-x11-toolkits
release=cvs</literal></term>
<listitem>
<para>X11 ¹¤¾ß°ü¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-x11-servers
release=cvs</literal></term>
<listitem>
<para>X11 ·þÎñÆ÷¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-x11-themes
release=cvs</literal></term>
<listitem>
<para>X11 Ö÷Ìâ¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ports-x11-wm
release=cvs</literal></term>
<listitem>
<para>X11 ´°¿Ú¹ÜÀíÆ÷¡£</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>projects-all release=cvs</literal></term>
<listitem>
<para>&os; ÄÚ²¿ÏîÄ¿µÄ´úÂë¿â¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>src-all release=cvs</literal></term>
<listitem>
<para>&os; Ö÷´úÂ룬°üº¬ÃÜÂëϵͳµÄ´úÂë¡£</para>
<variablelist>
<varlistentry>
<term><literal>src-base
release=cvs</literal></term>
<listitem>
<para><filename>/usr/src</filename>
¶¥²ãµÄ¸÷ʽ¸÷ÑùµÄÎļþ¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>src-bin
release=cvs</literal></term>
<listitem>
<para>µ«Óû§Ä£Ê½Ï¿ÉÄÜÓõ½µÄÓû§¹¤¾ß
(<filename>/usr/src/bin</filename>)¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>src-cddl
release=cvs</literal></term>
<listitem>
<para>²ÉÓÃÁË
CDDL ÊÚȨµÄʵÓù¤¾ßºÍº¯Êý¿â
(<filename>/usr/src/cddl</filename>)¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>src-contrib
release=cvs</literal></term>
<listitem>
<para>&os; ÏîĿ֮ÍâµÄ¹¤¾ßºÍ¿â£¬Í¨³£ÔÚ &os; Öв»×÷ÐÞ¸Ä
(<filename>/usr/src/contrib</filename>)¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>src-crypto release=cvs</literal></term>
<listitem>
<para>&os; ÏîĿ֮ÍâµÄ
ÃÜÂëϵͳ¹¤¾ßºÍ¿â£¬Í¨³£ÔÚ &os; Öв»×÷ÐÞ¸Ä
(<filename>/usr/src/crypto</filename>)¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>src-eBones release=cvs</literal></term>
<listitem>
<para>Kerberos ºÍ DES
(<filename>/usr/src/eBones</filename>)¡£
ĿǰµÄ &os; Öв»ÔÙʹÓÃʹÓá£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>src-etc
release=cvs</literal></term>
<listitem>
<para>ϵͳÅäÖÃÎļþ
(<filename>/usr/src/etc</filename>)¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>src-games
release=cvs</literal></term>
<listitem>
<para>ÓÎÏ·
(<filename>/usr/src/games</filename>)¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>src-gnu
release=cvs</literal></term>
<listitem>
<para>GNU ¹«¹²Ðí¿ÉЭÒéµÄ¹¤¾ß
(<filename>/usr/src/gnu</filename>)¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>src-include
release=cvs</literal></term>
<listitem>
<para>Í·Îļþ
(<filename>/usr/src/include</filename>)¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>src-kerberos5
release=cvs</literal></term>
<listitem>
<para>Kerberos5 °²È«°ü
(<filename>/usr/src/kerberos5</filename>)¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>src-kerberosIV
release=cvs</literal></term>
<listitem>
<para>KerberosIV °²È«°ü
(<filename>/usr/src/kerberosIV</filename>)¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>src-lib
release=cvs</literal></term>
<listitem>
<para>¿â
(<filename>/usr/src/lib</filename>)¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>src-libexec
release=cvs</literal></term>
<listitem>
<para>ͨ³£±»ÆäËü³ÌÐòµ÷ÓõÄϵͳ³ÌÐò
(<filename>/usr/src/libexec</filename>)¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>src-release
release=cvs</literal></term>
<listitem>
<para>Éú³É &os; °æ±¾±ØÐèµÄÎļþ
(<filename>/usr/src/release</filename>)¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>src-rescue
release=cvs</literal></term>
<listitem>
<para>ÓÃÓÚ½ô¼±ÐÞ¸´µÄ¾²Ì¬Áª±àµÄ³ÌÐò£» Çë²Î¼û &man.rescue.8;
(<filename>/usr/src/rescue</filename>)¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>src-sbin release=cvs</literal></term>
<listitem>
<para>µ«Óû§Ä£Ê½µÄϵͳ¹¤¾ß
(<filename>/usr/src/sbin</filename>)¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>src-secure
release=cvs</literal></term>
<listitem>
<para>ÃÜÂëÏà¹Ø¿âºÍÃüÁî
(<filename>/usr/src/secure</filename>)¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>src-share
release=cvs</literal></term>
<listitem>
<para>¿ç¶à¸öƽ̨µÄ¹²ÏíµÄÎļþ
(<filename>/usr/src/share</filename>)¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>src-sys
release=cvs</literal></term>
<listitem>
<para>ÄÚºË
(<filename>/usr/src/sys</filename>)¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>src-sys-crypto
release=cvs</literal></term>
<listitem>
<para>ÄÚºËÃÜÂëϵͳ´úÂë
(<filename>/usr/src/sys/crypto</filename>)¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>src-tools
release=cvs</literal></term>
<listitem>
<para>ά»¤ &os; µÄ¸÷ÖÖ¸÷ÑùµÄ¹¤¾ß
(<filename>/usr/src/tools</filename>)¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>src-usrbin
release=cvs</literal></term>
<listitem>
<para>Óû§¹¤¾ß
(<filename>/usr/src/usr.bin</filename>)¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>src-usrsbin
release=cvs</literal></term>
<listitem>
<para>ϵͳ¹¤¾ß
(<filename>/usr/src/usr.sbin</filename>)¡£</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>www release=cvs</literal></term>
<listitem>
<para>&os; WWW Õ¾µãµÄÔ´´úÂë¡£</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>distrib release=self</literal></term>
<listitem>
<para><application>CVSup</application> ·þÎñÆ÷µÄ
ÅäÖÃÎļþ¡£ÓÃÓÚ <application>CVSup</application>
¾µÏñÕ¾µã¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>gnats release=current</literal></term>
<listitem>
<para>GNATS bug ¸ú×ÙÊý¾Ý¿â¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>mail-archive release=current</literal></term>
<listitem>
<para>&os; ÓʼþÁÐ±í´æµµ¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>www release=current</literal></term>
<listitem>
<para>Ô¤´¦Àí¹ýµÄ &os; WWW Õ¾µãÎļþ(²»ÊÇÔ´Îļþ)¡£
ÓÃÓÚ WWW ¾µÏñÕ¾µã¡£</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2>
<title>¸ü¶àÐÅÏ¢</title>
<para><application>CVSup</application> FAQ ÒÔ¼°¹ØÓÚ
<application>CVSup</application> µÄÆäËûÐÅÏ¢£¬ Çë²é¿´
<ulink url="http://www.cvsup.org">CVSup Ö÷Ò³</ulink>¡£</para>
<para>¶àÊýÓë &os; ÓйصÄ
<application>CVSup</application> ÌÖÂÛ»áÔÚ
&a.hackers; ½øÐС£ Õâ¸öÈí¼þµÄа汾»áÔÚÄÇÀïºÍ &a.announce; ¹«²¼¡£</para>
<para>Èç¹û¶ÔÓÚ
<application>CVSup</application> ÓÐÈκÎÎÊÌ⣬ »òÏ£ÍûÌá½» bug ±¨¸æ£¬ Çë²ÎÔÄ
<ulink url="http://www.cvsup.org/faq.html#bugreports">
CVSup FAQ</ulink>¡£</para>
</sect2>
<sect2 id="cvsup-mirrors">
<title>CVSup Õ¾µã</title>
<para>&os; µÄ <link linkend="cvsup">CVSup</link> ·þÎñÆ÷ÔËÐÐÓÚ
ÏÂÁÐÕ¾µã£º</para>
&chap.mirrors.cvsup.inc;
</sect2>
</sect1>
<sect1 id="cvs-tags">
<title>CVS ±êÇ©</title>
<para>µ±Ê¹Óà <application>cvs</application> »òÕß
<application>CVSup</application>
»ñÈ¡ºÍÉý¼¶Ô´´úÂëµÄʱºò£¬±ØÐëÖ¸¶¨Ò»¸öÐÞ¶©±êÇ©¡£
ÐÞ¶©±êÇ©´ú±í &os; ¿ª·¢µÄÒ»¸öÌØ¶¨·ÖÖ§£¬
»òÕßÒ»¸öÌØ¶¨µÄʱ¼äµã¡£µÚÒ»ÖÖ½Ð×ö
<quote>·ÖÖ§±êÇ©</quote>£¬µÚ¶þÖÖ½Ð×ö
<quote>°æ±¾±êÇ©</quote>¡£</para>
<sect2>
<title>·ÖÖ§±êÇ©</title>
<para>ËùÓÐÕâЩ£¬³ýÁË <literal>HEAD</literal> (Õâ¸ö×ÜÊÇ
ºÏ·¨±êÇ©)ÒÔÍ⣬ֻÊÊÓÃÓÚ <filename>src/</filename>
Ê÷¡£<filename>ports/</filename>£¬<filename>doc/</filename>£¬ºÍ
<filename>www/</filename> Ê÷ûÓзÖÖ§¡£</para>
<variablelist>
<varlistentry>
<term>HEAD</term>
<listitem>
<para>Ö÷ÏߵķûºÅÃû£¬»òÕß˵ &os;-CURRENT¡£
µ±Ã»ÓÐÖ¸¶¨ÐÞ¶©°æ±¾µÄʱºòÒ²ÊÇĬÈϵġ£</para>
<para>ÔÚ <application>CVSup</application> ÀÕâ¸ö±êǩͨ¹ý
Ò»¸ö <literal>.</literal> À´·´Ó³³öÀ´(²»ÊDZêµã£¬¶øÊÇÒ»¸ö
<literal>.</literal> ×Ö·û)¡£</para>
<note>
<para>ÔÚ CVS Àµ±Ã»ÓÐÐÞ¶©±êǩָ¶¨Ê±ÕâÊÇĬÈϵġ£
ÔÚһ̨ STABLE »úÆ÷Éϼì³ö»òÕßÉý¼¶µ½ CURRENT Ô´´úÂë
ͨ³£<emphasis>²»ÊÇ</emphasis>
Ò»¸öºÃÖ÷Ò⣬³ý·ÇÕâÊÇÄúµÄ±¾Òâ¡£</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_8</term>
<listitem>
<para>ÕâÊÇ &os;-8.X µÄ¿ª·¢·ÖÖ§£¬
Ò²±»³Æ×÷ &os; 8-STABLE¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_8_0</term>
<listitem>
<para>&os;-8.0 µÄ·¢Ðаæ·ÖÖ§£¬ Ö»ÓÃÓÚ°²È«¹«¸æ£¬
ÒÔ¼°ÆäËûÖØÒª¸üС£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_7</term>
<listitem>
<para>ÕâÊÇ &os;-7.X µÄ¿ª·¢·ÖÖ§£¬
Ò²±»³Æ×÷ &os; 7-STABLE¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_7_3</term>
<listitem>
<para>&os;-7.3 µÄ·¢Ðаæ·ÖÖ§£¬ Ö»ÓÃÓÚ°²È«¹«¸æ£¬
ÒÔ¼°ÆäËûÖØÒª¸üС£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_7_2</term>
<listitem>
<para>&os;-7.2 µÄ·¢Ðаæ·ÖÖ§£¬ Ö»ÓÃÓÚ°²È«¹«¸æ£¬
ÒÔ¼°ÆäËûÖØÒª¸üС£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_7_1</term>
<listitem>
<para>&os;-7.1 µÄ·¢Ðаæ·ÖÖ§£¬ Ö»ÓÃÓÚ°²È«¹«¸æ£¬
ÒÔ¼°ÆäËûÖØÒª¸üС£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_7_0</term>
<listitem>
<para>&os;-7.0 µÄ·¢Ðаæ·ÖÖ§£¬ Ö»ÓÃÓÚ°²È«¹«¸æ£¬
ÒÔ¼°ÆäËûÖØÒª¸üС£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_6</term>
<listitem>
<para>ÕâÊÇ &os;-6.X µÄ¿ª·¢·ÖÖ§£¬
Ò²±»³Æ×÷ &os; 6-STABLE¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_6_4</term>
<listitem>
<para>&os;-6.4 µÄ·¢Ðаæ·ÖÖ§£¬ Ö»ÓÃÓÚ°²È«¹«¸æ£¬
ÒÔ¼°ÆäËûÖØÒª¸üС£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_6_3</term>
<listitem>
<para>&os;-6.3 µÄ·¢Ðаæ·ÖÖ§£¬ Ö»ÓÃÓÚ°²È«¹«¸æ£¬
ÒÔ¼°ÆäËûÖØÒª¸üС£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_6_2</term>
<listitem>
<para>&os;-6.2 µÄ·¢Ðаæ·ÖÖ§£¬ Ö»ÓÃÓÚ°²È«¹«¸æ£¬
ÒÔ¼°ÆäËûÖØÒª¸üС£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_6_1</term>
<listitem>
<para>&os;-6.1 µÄ·¢Ðаæ·ÖÖ§£¬ Ö»ÓÃÓÚ°²È«¹«¸æ£¬
ÒÔ¼°ÆäËûÖØÒª¸üС£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_6_0</term>
<listitem>
<para>&os;-6.0 µÄ·¢Ðаæ·ÖÖ§£¬ Ö»ÓÃÓÚ°²È«¹«¸æ£¬
ÒÔ¼°ÆäËûÖØÒª¸üС£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_5</term>
<listitem>
<para>ÕâÊÇ &os;-5.X µÄ¿ª·¢·ÖÖ§£¬
Ò²±»³Æ×÷ &os; 5-STABLE¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_5_5</term>
<listitem>
<para>&os;-5.5 °²È«·ÖÖ§¡£ Ö»±»°²È«¹«¸æºÍÆäËüÖØÒª¸üÐÂʹÓá£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_5_4</term>
<listitem>
<para>&os;-5.4 °²È«·ÖÖ§¡£ Ö»±»°²È«¹«¸æºÍÆäËüÖØÒª¸üÐÂʹÓá£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_5_3</term>
<listitem>
<para>&os;-5.3 °²È«·ÖÖ§¡£ Ö»±»°²È«¹«¸æºÍÆäËüÖØÒª¸üÐÂʹÓá£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_5_2</term>
<listitem>
<para>Õë¶Ô &os;-5.2 ºÍ &os;-5.2.1 µÄ°²È«·ÖÖ§£¬
Ö»±»°²È«¹«¸æºÍÆäËüÖØÒª¸üÐÂʹÓá£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_5_1</term>
<listitem>
<para>Õë¶Ô &os;-5.1 µÄ·¢Ðа汾·ÖÖ§£¬
Ö»±»°²È«¹«¸æºÍÆäËüÖØÒª¸üÐÂʹÓá£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_5_0</term>
<listitem>
<para>Õë¶Ô &os;-5.0 µÄ·¢Ðа汾·ÖÖ§£¬
Ö»±»°²È«¹«¸æºÍÆäËüÖØÒª¸üÐÂʹÓá£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_4</term>
<listitem>
<para>&os;-4.X ¿ª·¢Ïߣ¬Ò²±»½Ð×ö
&os;-STABLE¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_4_11</term>
<listitem>
<para>&os;-4.11 °²È«·ÖÖ§¡£ Ö»±»°²È«¹«¸æºÍÆäËüÖØÒª¸üÐÂʹÓá£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_4_10</term>
<listitem>
<para>&os;-4.10 °²È«·ÖÖ§¡£ Ö»±»°²È«¹«¸æºÍÆäËüÖØÒª¸üÐÂʹÓá£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_4_9</term>
<listitem>
<para>&os;-4.9 °²È«·ÖÖ§¡£ Ö»±»°²È«¹«¸æºÍÆäËüÖØÒª¸üÐÂʹÓá£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_4_8</term>
<listitem>
<para>&os;-4.8 °²È«·ÖÖ§¡£ Ö»±»°²È«¹«¸æºÍÆäËüÖØÒª¸üÐÂʹÓá£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_4_7</term>
<listitem>
<para>&os;-4.7 °²È«·ÖÖ§¡£ Ö»±»°²È«¹«¸æºÍÆäËüÖØÒª¸üÐÂʹÓá£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_4_6</term>
<listitem>
<para>&os;-4.6 ºÍ 4.6.2 µÄ°²È«·ÖÖ§¡£ Ö»±»°²È«¹«¸æºÍÆäËüÖØÒª¸üÐÂʹÓá£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_4_5</term>
<listitem>
<para>&os;-4.5 °²È«·ÖÖ§¡£ Ö»±»°²È«¹«¸æºÍÆäËüÖØÒª¸üÐÂʹÓá£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_4_4</term>
<listitem>
<para>&os;-4.4 °²È«·ÖÖ§¡£ Ö»±»°²È«¹«¸æºÍÆäËüÖØÒª¸üÐÂʹÓá£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_4_3</term>
<listitem>
<para>&os;-4.3 °²È«·ÖÖ§¡£ Ö»±»°²È«¹«¸æºÍÆäËüÖØÒª¸üÐÂʹÓá£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_3</term>
<listitem>
<para>&os;-3.X µÄ¿ª·¢Ïߣ¬Ò²±»½Ð×ö
3.X-STABLE¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_2_2</term>
<listitem>
<para>&os;-2.2.X µÄ¿ª·¢Ïߣ¬ Ò²±»½Ð×ö
2.2-STABLE¡£ Õâ¸ö·ÖÖ§»ù±¾ÉÏÒѾ­¹ýʱÁË¡£</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2>
<title>°æ±¾±êÇ©</title>
<para>µ±Ò»¸öÌØ¶¨µÄ &os; °æ±¾·¢ÐÐʱ£¬
ÕâЩ±êÇ©´ú±íÁËÒ»¸öÖ¸¶¨µÄʱ¼äµã¡£·¢²¼¹¤³Ì½ø³ÌÔÚ
<ulink url="&url.base;/releng/">Release Engineering
Information</ulink> ºÍ
<ulink url="&url.articles.releng;/release-proc.html">Release
Process</ulink> ÎĵµÖб»ÏêϸÃèÊö¡£
<filename class="directory">src</filename>
Ê÷ʹÓÃÒÔ <literal>RELENG_</literal> ¿ªÍ·µÄ±êÇ©¡£
<filename class="directory">ports</filename> ºÍ
<filename class="directory">doc</filename> Ê÷ʹÓÃÒÔ
<literal>RELEASE</literal> ¿ªÍ·µÄ±êÇ©¡£
×îºó£¬ <filename class="directory">www</filename> Ê÷Éϲ»»áÓÐÈκÎÌØ¶¨·¢ÐаæµÄ±êÇ©¡£</para>
<variablelist>
<varlistentry>
<term>RELENG_8_0_0_RELEASE</term>
<listitem>
<para>&os; 8.0</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_7_3_0_RELEASE</term>
<listitem>
<para>&os; 7.3</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_7_2_0_RELEASE</term>
<listitem>
<para>&os; 7.2</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_7_1_0_RELEASE</term>
<listitem>
<para>&os; 7.1</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_7_0_0_RELEASE</term>
<listitem>
<para>&os; 7.0</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_6_4_0_RELEASE</term>
<listitem>
<para>&os; 6.4</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_6_3_0_RELEASE</term>
<listitem>
<para>&os; 6.3</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_6_2_0_RELEASE</term>
<listitem>
<para>&os; 6.2</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_6_1_0_RELEASE</term>
<listitem>
<para>&os; 6.1</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_6_0_0_RELEASE</term>
<listitem>
<para>&os; 6.0</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_5_5_0_RELEASE</term>
<listitem>
<para>&os; 5.5</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_5_4_0_RELEASE</term>
<listitem>
<para>&os; 5.4</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_4_11_0_RELEASE</term>
<listitem>
<para>&os; 4.11</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_5_3_0_RELEASE</term>
<listitem>
<para>&os; 5.3</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_4_10_0_RELEASE</term>
<listitem>
<para>&os; 4.10</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_5_2_1_RELEASE</term>
<listitem>
<para>&os; 5.2.1</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_5_2_0_RELEASE</term>
<listitem>
<para>&os; 5.2</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_4_9_0_RELEASE</term>
<listitem>
<para>&os; 4.9</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_5_1_0_RELEASE</term>
<listitem>
<para>&os; 5.1</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_4_8_0_RELEASE</term>
<listitem>
<para>&os; 4.8</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_5_0_0_RELEASE</term>
<listitem>
<para>&os; 5.0</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_4_7_0_RELEASE</term>
<listitem>
<para>&os; 4.7</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_4_6_2_RELEASE</term>
<listitem>
<para>&os; 4.6.2</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_4_6_1_RELEASE</term>
<listitem>
<para>&os; 4.6.1</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_4_6_0_RELEASE</term>
<listitem>
<para>&os; 4.6</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_4_5_0_RELEASE</term>
<listitem>
<para>&os; 4.5</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_4_4_0_RELEASE</term>
<listitem>
<para>&os; 4.4</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_4_3_0_RELEASE</term>
<listitem>
<para>&os; 4.3</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_4_2_0_RELEASE</term>
<listitem>
<para>&os; 4.2</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_4_1_1_RELEASE</term>
<listitem>
<para>&os; 4.1.1</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_4_1_0_RELEASE</term>
<listitem>
<para>&os; 4.1</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_4_0_0_RELEASE</term>
<listitem>
<para>&os; 4.0</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_3_5_0_RELEASE</term>
<listitem>
<para>&os;-3.5</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_3_4_0_RELEASE</term>
<listitem>
<para>&os;-3.4</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_3_3_0_RELEASE</term>
<listitem>
<para>&os;-3.3</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_3_2_0_RELEASE</term>
<listitem>
<para>&os;-3.2</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_3_1_0_RELEASE</term>
<listitem>
<para>&os;-3.1</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_3_0_0_RELEASE</term>
<listitem>
<para>&os;-3.0</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_2_2_8_RELEASE</term>
<listitem>
<para>&os;-2.2.8</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_2_2_7_RELEASE</term>
<listitem>
<para>&os;-2.2.7</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_2_2_6_RELEASE</term>
<listitem>
<para>&os;-2.2.6</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_2_2_5_RELEASE</term>
<listitem>
<para>&os;-2.2.5</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_2_2_2_RELEASE</term>
<listitem>
<para>&os;-2.2.2</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_2_2_1_RELEASE</term>
<listitem>
<para>&os;-2.2.1</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RELENG_2_2_0_RELEASE</term>
<listitem>
<para>&os;-2.2.0</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>
<sect1 id="mirrors-afs">
<title>AFS Õ¾µã</title>
<para>&os; µÄ AFS ·þÎñÆ÷ÔËÐÐÓÚÏÂÃæµÄÕ¾µã£º</para>
<variablelist>
<varlistentry>
<term>Èðµä</term>
<listitem>
<para>ÎļþµÄ·¾¶ÊÇ£º
<filename>/afs/stacken.kth.se/ftp/pub/FreeBSD/</filename></para>
<programlisting>stacken.kth.se # Stacken Computer Club, KTH, Sweden
130.237.234.43 #hot.stacken.kth.se
130.237.237.230 #fishburger.stacken.kth.se
130.237.234.3 #milko.stacken.kth.se</programlisting>
<para>ά»¤Õß <email>ftp@stacken.kth.se</email></para>
</listitem>
</varlistentry>
</variablelist>
</sect1>
<sect1 id="mirrors-rsync">
<title>rsync Õ¾µã</title>
<para>ÏÂÃæµÄÕ¾µãÈà &os; ¿ÉÒÔͨ¹ý rsync ЭÒéÏÂÔØ¡£
<application>rsync</application> ʵÓóÌÐòºÍ
&man.rcp.1; µÄ¹¤×÷·½Ê½ºÜÏàÏñ£¬
µ«ÊÇÓиü¶àµÄÑ¡ÏʹÓà rsync Ô¶³Ì¸üÐÂЭÒéÖ»´«Êä
Á½·ÝÎļþµÄ²»Í¬Ö®´¦£¬
Òò´ËÄܹ»´ó·ù¶ÈµÄÌá¸ßÍøÂçͬ²½ËÙÂÊ¡£
Èç¹ûÄúÊÇ &os; FTP ·þÎñÆ÷»òÕß CVS ²Ö¿âµÄ¾µÏñÕ¾µã£¬
ÕâÒ»µã·Ç³£ÓÐÓá£
<application>rsync</application> Ì×¼þ¿ÉÒÔ¹¤×÷ÔÚÐí¶àÖÖ
²Ù×÷ϵͳÉÏ£¬ÔÚ &os; ÉÏ£¬²é¿´
<filename role="package">net/rsync</filename>
port »òÕßʹÓà package¡£</para>
<variablelist>
<varlistentry>
<term>½Ý¿Ë¹²ºÍ¹ú</term>
<listitem>
<para>rsync://ftp.cz.FreeBSD.org/</para>
<para>¿ÉÓÃµÄ collection£º</para>
<itemizedlist>
<listitem><para>ftp£º &os; FTP ·þÎñÆ÷µÄ
²¿·Ö¾µÏñ¡£</para></listitem>
<listitem><para>&os;£º &os; FTP ·þÎñÆ÷µÄ
ÍêÕû¾µÏñ¡£</para></listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>ºÉÀ¼</term>
<listitem>
<para>rsync://ftp.nl.FreeBSD.org/</para>
<para>¿ÉÓÃµÄ collection£º</para>
<itemizedlist>
<listitem><para>&os;: ¶ÔÓÚ
&os; FTP ·þÎñÆ÷µÄÍêÕû¾µÏñ¡£</para></listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>¶íÂÞ˹</term>
<listitem>
<para>rsync://ftp.mtu.ru/</para>
<para>¿ÉÓÃµÄ collections:</para>
<itemizedlist>
<listitem><para>&os;: ÍêÕûµÄ &os; FTP
·þÎñÆ÷¾µÏñ¡£</para></listitem>
<listitem><para>&os;-gnats: GNATS ÎÊÌâ×·×ÙÊý¾Ý¿â¡£</para></listitem>
<listitem><para>&os;-Archive: &os; µµ°¸µÄ FTP
·þÎñÆ÷¾µÏñ¡£</para></listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>̨ÍåµØÇø (Öйú)</term>
<listitem>
<para>rsync://ftp.tw.FreeBSD.org/</para>
<para>rsync://ftp2.tw.FreeBSD.org/</para>
<para>rsync://ftp6.tw.FreeBSD.org/</para>
<para>¿ÉÓÃµÄ collection£º</para>
<itemizedlist>
<listitem><para>&os;£º &os; FTP
·þÎñÆ÷µÄÍêÕû¾µÏñ¡£</para></listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>Ó¢¹ú</term>
<listitem>
<para>rsync://rsync.mirrorservice.org/</para>
<para>¿ÉÓÃµÄ collection£º</para>
<itemizedlist>
<listitem><para>sites/ftp.FreeBSD.org: &os; FTP ·þÎñÆ÷
µÄÍêÕû¾µÏñ¡£</para></listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>ÃÀ¹ú</term>
<listitem>
<para>rsync://ftp-master.FreeBSD.org/</para>
<para>·þÎñÆ÷Ö»¹© &os; Ö÷¾µÏñÕ¾µãʹÓá£</para>
<para>¿ÉÓÃµÄ collection£º</para>
<itemizedlist>
<listitem><para>&os;£º&os; FTP ·þÎñÆ÷µÄÖ÷Òª´æµµ¡£</para></listitem>
<listitem><para>acl£º&os; Ö÷ ACL
ÁÐ±í¡£</para></listitem>
</itemizedlist>
<para>rsync://ftp13.FreeBSD.org/</para>
<para>¿ÉÓÃµÄ collection£º</para>
<itemizedlist>
<listitem><para>&os;£º&os; FTP ·þÎñÆ÷µÄÍêÕû
¾µÏñ¡£</para></listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
</sect1>
</appendix>
<!--
Local Variables:
mode: sgml
sgml-declaration: "../appendix.decl"
sgml-indent-data: t
sgml-omittag: nil
sgml-always-quote-attributes: t
sgml-parent-document: ("../book.sgml" "part" "appendix")
End:
-->
diff --git a/zh_CN.GB2312/books/handbook/network-servers/chapter.sgml b/zh_CN.GB2312/books/handbook/network-servers/chapter.sgml
index 1e26cb1ed1..fd977af308 100644
--- a/zh_CN.GB2312/books/handbook/network-servers/chapter.sgml
+++ b/zh_CN.GB2312/books/handbook/network-servers/chapter.sgml
@@ -1,4854 +1,4854 @@
<!--
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
- Original Revision: 1.121
+ Original Revision: 1.122
$FreeBSD$
-->
<chapter id="network-servers">
<chapterinfo>
<authorgroup>
<author>
<firstname>Murray</firstname>
<surname>Stokely</surname>
<contrib>Reorganized by </contrib>
</author>
</authorgroup>
<!-- 23 July 2004 -->
</chapterinfo>
<title>ÍøÂç·þÎñÆ÷</title>
<sect1 id="network-servers-synopsis">
<title>¸ÅÒª</title>
<para>±¾Õ½«¸²¸ÇijЩÔÚ &unix; ϵͳÉϳ£ÓõÄÍøÂç·þÎñ¡£»°Ì⽫»áÉæ¼°
ÈçºÎ°²×°¡¢ÅäÖᢲâÊÔºÍά»¤¶àÖÖ²»Í¬ÀàÐ͵ÄÍøÂç·þÎñ¡£±¾Õ½ÚÖн«Ìá
¹©´óÁ¿ÅäÖÃÎļþµÄÑùÀý£¬ÆÚÍûÄܹ»¶ÔÄúÓÐËùñÔÒæ¡£</para>
<para>ÔÚ¶ÁÍê±¾ÕÂÖ®ºó£¬Äú½«»áÖªµÀ£º</para>
<itemizedlist>
<listitem>
<para>ÈçºÎ¹ÜÀí <application>inetd</application>¡£</para>
</listitem>
<listitem>
<para>ÈçºÎÉèÖÃÔËÐÐÒ»¸öÍøÂçÎļþϵͳ¡£</para>
</listitem>
<listitem>
<para>ÈçºÎÅäÖÃÒ»¸öÍøÂçÐÅÏ¢·þÎñÆ÷ÒÔ¹²ÏíÓû§Õʺš£</para>
</listitem>
<listitem>
<para>ÈçºÎͨ¹ýDHCP×Ô¶¯ÅäÖÃÍøÂç¡£</para>
</listitem>
<listitem>
<para>ÈçºÎÅäÖÃÒ»¸öÓòÃû·þÎñÆ÷¡£</para>
</listitem>
<listitem>
<para>ÈçºÎÉèÖÃ<application>Apache</application> HTTP ·þÎñÆ÷¡£</para>
</listitem>
<listitem>
<para>ÈçºÎÉèÖÃÎļþ´«Ê䣨FTP£©·þÎñÆ÷¡£</para>
</listitem>
<listitem>
<para>ÈçºÎʹÓÃ<application>Samba</application>Ϊ &windows;
¿Í»§¶ËÉèÖÃÎļþºÍ´òÓ¡·þÎñ¡£</para>
</listitem>
<listitem>
<para>ÈçºÎͬ²½Ê±¼äºÍÈÕÆÚ£¬ÒÔ¼°ÈçºÎÉèÖÃʹÓÃNTPЭÒéµÄʱ¼ä·þÎñÆ÷¡£</para>
</listitem>
<listitem>
<para>ÈçºÎÅäÖñê×¼µÄÈÕÖ¾ÊØ»¤½ø³Ì£¬
<command>syslogd</command>£¬ ½ÓÊÜÔ¶³ÌÖ÷»úµÄÈÕÖ¾¡£</para>
</listitem>
</itemizedlist>
<para>ÔÚÔĶÁ´ËÕ½Ú֮ǰ£¬ÄúÓ¦µ±£º</para>
<itemizedlist>
<listitem>
<para>Àí½âÓйØ<filename>/etc/rc</filename>Öнű¾µÄ»ù±¾ÖªÊ¶¡£</para>
</listitem>
<listitem>
<para>ÊìϤ»ù±¾ÍøÂçÊõÓï¡£</para>
</listitem>
<listitem>
<para>¶®µÃÈçºÎ°²×°¶îÍâµÄµÚÈý·½Èí¼þ£¨<xref linkend="ports">£©¡£</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 id="network-inetd">
<sect1info>
<authorgroup>
<author>
<firstname>Chern</firstname>
<surname>Lee</surname>
<contrib>Contributed by </contrib>
</author>
</authorgroup>
<authorgroup>
<author>
<contrib>Ϊ &os; 6.1-RELEASE ½øÐÐÁ˸üУ¬ ÓÉ </contrib>
<othername>The &os; Documentation Project</othername>
</author>
</authorgroup>
</sect1info>
<title> <application>inetd</application> <quote>³¬¼¶·þÎñÆ÷</quote></title>
<sect2 id="network-inetd-overview">
<title>×ÜÀÀ</title>
<para>&man.inetd.8; ÓÐʱҲ±»³Æ×÷ <quote>Internet
³¬¼¶·þÎñÆ÷</quote>£¬ ÒòΪËü¿ÉÒÔΪ¶àÖÖ·þÎñ¹ÜÀíÁ¬½Ó¡£
µ± <application>inetd</application> ÊÕµ½Á¬½Óʱ£¬
ËüÄܹ»È·¶¨Á¬½ÓËùÐèµÄ³ÌÐò£¬ Æô¶¯ÏàÓ¦µÄ½ø³Ì£¬
²¢°Ñ socket ½»¸øËü (·þÎñ socket »á×÷Ϊ³ÌÐòµÄ±ê×¼ÊäÈë¡¢
Êä³öºÍ´íÎóÊä³öÃèÊö·û)¡£ ʹÓÃ
<application>inetd</application> À´ÔËÐÐÄÇЩ¸ºÔز»ÖصķþÎñÓÐÖúÓÚ½µµÍϵͳ¸ºÔØ£¬
ÒòΪËü²»ÐèҪΪÿ¸ö·þÎñ¶¼Æô¶¯¶ÀÁ¢µÄ·þÎñ³ÌÐò¡£</para>
<para>Ò»°ã˵À´£¬ <application>inetd</application> Ö÷ÒªÓÃÓÚÆô¶¯ÆäËü·þÎñ³ÌÐò£¬
µ«ËüÒ²ÓÐÄÜÁ¦Ö±½Ó´¦ÀíijЩ¼òµ¥µÄ·þÎñ£¬
ÀýÈç <application>chargen</application>¡¢
<application>auth</application>£¬ ÒÔ¼°
<application>daytime</application>¡£</para>
<para>ÕâÒ»½Ú½«½éÉܹØÓÚÈçºÎͨ¹ýÃüÁîÐÐÑ¡Ï ÒÔ¼°ÅäÖÃÎļþ
<filename>/etc/inetd.conf</filename> À´¶Ô
<application>inetd</application> ½øÐÐÅäÖõÄһЩ»ù´¡ÖªÊ¶¡£</para>
</sect2>
<sect2 id="network-inetd-settings">
<title>ÉèÖÃ</title>
<para><application>inetd</application> ÊÇͨ¹ý &man.rc.8; ϵͳÆô¶¯µÄ¡£
<literal>inetd_enable</literal> Ñ¡ÏîĬÈÏÉèΪ
<literal>NO</literal>£¬ µ«¿ÉÒÔÔÚ°²×°ÏµÍ³Ê±£¬
ÓÉÓû§¸ù¾ÝÐèҪͨ¹ý <application>sysinstall</application> À´´ò¿ª¡£
½«£º</para>
<programlisting>inetd_enable="YES"</programlisting>
<para>»ò</para>
<programlisting>inetd_enable="NO"</programlisting>
<para>дÈë
<filename>/etc/rc.conf</filename> ¿ÉÒÔÆôÓûò½ûÓÃϵͳÆô¶¯Ê±
<application>inetd</application> µÄ×Ô¶¯Æô¶¯¡£ ÃüÁ</para>
<screen>&prompt.root; <userinput>/etc/rc.d/inetd rcvar</userinput></screen>
<para>¿ÉÒÔÏÔʾĿǰµÄÉèÖá£</para>
<para>´ËÍ⣬ Äú»¹¿ÉÒÔͨ¹ý
<literal>inetd_flags</literal> ²ÎÊýÀ´Ïò <application>inetd</application>
´«µÝ¶îÍâµÄÆäËü²ÎÊý¡£</para>
</sect2>
<sect2 id="network-inetd-cmdline">
<title>ÃüÁîÐÐÑ¡Ïî</title>
<para>Óë¶àÊý·þÎñ³ÌÐòÀàËÆ£¬ <application>inetd</application>
Ò²ÌṩÁËΪÊýÖÚ¶àµÄÓÃÒÔ¿ØÖÆÆäÐÐΪµÄ²ÎÊý¡£ ÍêÕûµÄ²ÎÊýÁбíÈçÏ£º</para>
<para><command>inetd</command> <option>[-d] [-l] [-w] [-W] [-c maximum] [-C rate] [-a address | hostname]
[-p filename] [-R rate] [-s maximum] [configuration file]</option></para>
<para>ÕâЩ²ÎÊý¶¼¿ÉÒÔͨ¹ý
<filename>/etc/rc.conf</filename> µÄ
<literal>inetd_flags</literal> Ñ¡ÏîÀ´´«¸ø <application>inetd</application>¡£
ĬÈÏÇé¿öÏ£¬
<literal>inetd_flags</literal> ÉèΪ
<literal>-wW -C 60</literal>£¬ Õß±íʾϣÍûΪ
<application>inetd</application> µÄ·þÎñÆôÓà TCP wrapping£¬
²¢×èÖ¹À´×Ôͬһ IP ÿ·ÖÖÓ³¬¹ý 60 ´ÎµÄÇëÇó¡£</para>
<para>³õѧµÄÓû§¿ÉÄÜ»áºÜ¸ßÐ˵ط¢ÏÖÕâЩѡÏîͨ³£²¢²»ÐèÒª½øÐÐÐ޸ģ¬
Ç°ÃæÌáµ½µÄËÙÂÊÏÞÖÆÑ¡ÏîÔÚÄúµÄ·þÎñÆ÷ÊÕµ½¹ýÁ¿ÇëÇóµÄÁ¬½Óʱ£¬
Ôò»áÓÐЧµØ·¢»Ó×÷ÓᣠÍêÕûµÄ²ÎÊýÁÐ±í£¬
¿ÉÒÔÔÚ &man.inetd.8; Áª»úÊÖ²áÖÐÕÒµ½¡£</para>
<variablelist>
<varlistentry>
<term>-c maximum</term>
<listitem>
<para>Ö¸¶¨µ¥¸ö·þÎñµÄ×î´ó²¢·¢·ÃÎÊÊýÁ¿£¬Ä¬ÈÏΪ²»ÏÞ¡£
Ò²¿ÉÒÔÔÚ´Ë·þÎñµÄ¾ßÌåÅäÖÃÀïÃæÍ¨¹ý<option>max-child</option>¸Äµô¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-C rate</term>
<listitem>
<para>Ö¸¶¨µ¥¸ö·þÎñÒ»·ÖÖÓÄÚÄܱ»µ¥¸öIPµØÖ·µ÷ÓõÄ×î´ó´ÎÊý£¬
ĬÈϲ»ÏÞ¡£Ò²¿ÉÒÔÔÚ´Ë·þÎñµÄ¾ßÌåÅäÖÃÀïÃæÍ¨¹ý<option>max-connections-per-ip-per-minute</option>
¸Äµô¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-R rate</term>
<listitem>
<para>Ö¸¶¨µ¥¸ö·þÎñÒ»·ÖÖÓÄÚÄܱ»µ÷ÓõÄ×î´ó´ÎÊý£¬Ä¬ÈÏΪ256¡£
ÉèΪ0 ÔòÔÊÐí²»ÏÞ´ÎÊýµ÷Óá£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-s maximum</term>
<listitem>
<para>Ö¸¶¨Í¬Ò» IP ͬʱÇëÇóͬһ·þÎñʱÔÊÐíµÄ×î´óÖµ£» ĬÈÏֵΪ²»ÏÞÖÆ¡£
Äú¿ÉÒÔͨ¹ý <option>max-child-per-ip</option>
²ÎÊýÀ´ÒÔ·þÎñΪµ¥Î»½øÐÐÏÞÖÆ¡£</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="network-inetd-conf">
<!-- XXX This section isn't very clear, and could do with some lovin' -->
<title><filename>inetd.conf</filename></title>
<para>¶ÔÓÚ <application>inetd</application> µÄÅäÖã¬
ÊÇͨ¹ý <filename>/etc/inetd.conf</filename> ÎļþÀ´Íê³ÉµÄ¡£</para>
<para>ÔÚÐÞ¸ÄÁË
<filename>/etc/inetd.conf</filename> Ö®ºó£¬ ¿ÉÒÔʹÓÃÏÂÃæµÄÃüÁîÀ´Ç¿ÖÆ
<application>inetd</application> ÖØÐ¶ÁÈ¡ÅäÖÃÎļþ£º</para>
<example id="network-inetd-reread">
<title>ÖØÐ¼ÓÔØ <application>inetd</application>
ÅäÖÃÎļþ</title>
<screen>&prompt.root; <userinput>/etc/rc.d/inetd reload</userinput></screen>
</example>
<para>ÅäÖÃÎļþÖеÄÿһÐж¼ÊÇÒ»¸ö¶ÀÁ¢µÄ·þÎñ³ÌÐò¡£ ÔÚÕâ¸öÎļþÖУ¬ Ç°ÃæÓÐ
<quote>#</quote> µÄÄÚÈݱ»ÈÏΪÊÇ×¢ÊÍ¡£
<filename>/etc/inetd.conf</filename> ÎļþµÄ¸ñʽÈçÏ£º</para>
<programlisting>service-name
socket-type
protocol
{wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]]
user[:group][/login-class]
server-program
server-program-arguments</programlisting>
<para>ÏÂÃæÊÇÕë¶Ô IPv4 µÄ &man.ftpd.8; ·þÎñµÄÀý×Ó£º</para>
<programlisting>ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l</programlisting>
<variablelist>
<varlistentry>
<term>service-name</term>
<listitem>
<para>Ö¸Ã÷¸÷¸ö·þÎñµÄ·þÎñÃû¡£Æä·þÎñÃû±ØÐëÓë<filename>/etc/services</filename>ÖÐÁгöµÄÒ»Ö¡£
Õ⽫¾ö¶¨<application>inetd</application>»á¼àÌýÄĸöport¡£
Ò»µ©ÓÐеķþÎñÐèÒªÌí¼Ó£¬±ØÐëÏÈÔÚ<filename>/etc/services</filename>ÀïÃæÌí¼Ó¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>socket-type</term>
<listitem>
<para>¿ÉÒÔÊÇ<literal>stream</literal>¡¢<literal>dgram</literal>¡¢<literal>raw</literal>»òÕß
<literal>seqpacket</literal>¡£ <literal>stream</literal>
ÓÃÓÚ»ùÓÚÁ¬½ÓµÄ TCP ·þÎñ£»¶ø <literal>dgram</literal> ÔòÓÃÓÚʹÓà <acronym>UDP</acronym> ЭÒéµÄ·þÎñ¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>protocol</term>
<listitem>
<para>ÏÂÁÐÖ®Ò»£º</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
<entry>ЭÒé</entry>
<entry>˵Ã÷</entry>
</row>
</thead>
<tbody>
<row>
<entry>tcp£¬ tcp4</entry>
<entry>TCP IPv4</entry>
</row>
<row>
<entry>udp£¬ udp4</entry>
<entry>UDP IPv4</entry>
</row>
<row>
<entry>tcp6</entry>
<entry>TCP IPv6</entry>
</row>
<row>
<entry>udp6</entry>
<entry>UDP IPv6</entry>
</row>
<row>
<entry>tcp46</entry>
<entry>Both TCP IPv4 and v6</entry>
</row>
<row>
<entry>udp46</entry>
<entry>Both UDP IPv4 and v6</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</listitem>
</varlistentry>
<varlistentry>
<term>{wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]]</term>
<listitem>
<para><option>wait|nowait</option> Ö¸Ã÷´Ó<application>inetd</application>
ÀïÍ·µ÷ÓõķþÎñÊÇ·ñ¿ÉÒÔ×Ô¼º´¦Àísocket.
<option>dgram</option>socketÀàÐͱØÐëʹÓÃ<option>wait</option>£¬
¶østream socket daemons£¬ ÓÉÓÚͨ³£Ê¹ÓöàÏ̷߳½Ê½£¬Ó¦µ±Ê¹ÓÃ
<option>nowait</option>. <option>wait</option> ͨ³£°Ñ¶à¸ö
socket ¶ª¸øµ¥¸ö·þÎñ½ø³Ì£¬ ¶ø <option>nowait</option> Ôò
»áΪÿ¸öÐ嵀 socket Éú³ÉÒ»¸ö×Ó½ø³Ì¡£</para>
<para><option>max-child</option> Ñ¡ÏîÄܹ»ÅäÖÃ
<application>inetd</application> ÄÜΪ±¾·þÎñÅÉÉú³öµÄ×î´ó×Ó½ø³ÌÊýÁ¿¡£
Èç¹ûÄ³ÌØ¶¨·þÎñÐèÒªÏÞ¶¨×î¸ß10¸öʵÀý£¬ °Ñ<literal>/10</literal>
·Åµ½<option>nowait</option>ºóÍ·¾Í¿ÉÒÔÁË¡£ Ö¸¶¨ <literal>/0</literal>
±íʾ²»ÏÞÖÆ×Ó½ø³ÌµÄÊýÁ¿¡£</para>
<para>³ýÁË <option>max-child</option> Ö®Í⣬
»¹ÓÐÁ½¸öÑ¡Ïî¿ÉÒÔÏÞÖÆÀ´×ÔͬһλÖõ½Ìض¨·þÎñµÄ×î´óÁ¬½ÓÊý¡£
<option>max-connections-per-ip-per-minute</option> ¿ÉÒÔÏÞÖÆÌØ¶¨ IP
µØÖ·Ã¿·ÖÖÓµÄ×ÜÁ¬½ÓÊý£¬ ÀýÈ磬 ÏÞÖÆÈκÎ
IP µØÖ·Ã¿·ÖÖÓ×î¶àÁ¬½ÓÊ®´Î¡£ <option>max-child-per-ip</option>
Ôò¿ÉÒÔÏÞÖÆÎªÄ³Ò» IP µØÖ·ÔÚÈκÎʱºòËùÆô¶¯µÄ×Ó½ø³ÌÊýÁ¿¡£
ÕâЩѡÏî¶ÔÓÚ·ÀÖ¹Õë¶Ô·þÎñÆ÷ÓÐÒâ»òÎÞÒâµÄ×ÊÔ´ºÄ½ßºÍ¾Ü¾ø·þÎñ (DoS)
¹¥»÷Ê®·ÖÓÐÓá£</para>
<para>Õâ¸ö×Ö¶ÎÖУ¬ ±ØÐëÖ¸¶¨ <option>wait</option> »ò
<option>nowait</option> Á½ÕßÖ®Ò»¡£ ¶ø
<option>max-child</option>¡¢
<option>max-connections-per-ip-per-minute</option> ºÍ
<option>max-child-per-ip</option> ÔòÊÇ¿ÉÑ¡Ïî¡£</para>
<para>Á÷ʽ¶àÏ̷߳þÎñ£¬ ²¢ÇÒ²»ÅäÖÃÈκÎ
<option>max-child</option>¡¢
<option>max-connections-per-ip-per-minute</option> »ò
<option>max-child-per-ip</option> ÏÞÖÆÊ±£¬
ÆäÅäÖÃΪ£º <literal>nowait</literal>¡£</para>
<para>ͬһ¸ö·þÎñ£¬ µ«Ï£Íû½«·þÎñÆô¶¯µÄÊýÁ¿ÏÞÖÆÎªÊ®¸öʱ£¬
ÔòÊÇ£º <literal>nowait/10</literal>¡£</para>
<para>ͬÑùÅäÖ㬠ÏÞÖÆÃ¿¸ö IP µØÖ·Ã¿·ÖÖÓ×î¶àÁ¬½Ó¶þÊ®´Î£¬
¶øÍ¬Ê±Æô¶¯µÄ×Ó½ø³Ì×î¶àÊ®¸ö£¬ Ӧд×÷£º
<literal>nowait/10/20</literal>¡£</para>
<para>ÏÂÃæÊÇ &man.fingerd.8; ·þÎñµÄĬÈÏÅäÖãº</para>
<programlisting>finger stream tcp nowait/3/10 nobody /usr/libexec/fingerd fingerd -s</programlisting>
<para>×îºóÕâ¸öÀý×ÓÖУ¬ ½«×Ó½ø³ÌÊýÏÞÖÆÎª
100 ¸ö£¬ ¶øÈÎÒâ IP ×î¶àͬʱ½¨Á¢ 5 ¸öÁ¬½Ó£º
<literal>nowait/100/0/5</literal>¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>user</term>
<listitem>
<para>¸Ã¿ª¹ØÖ¸¶¨·þÎñ½«ÒÔʲôÓû§Éí·ÝÔËÐС£Ò»°ã¶øÑÔ£¬·þÎñÔËÐÐÉí·ÝÊÇ
<username>root</username>¡£»ùÓÚ°²È«Ä¿µÄ£¬¿ÉÒÔ¿´µ½ÓÐЩ·þÎñÒÔ
<username>daemon</username>Éí·Ý£¬»òÕßÊÇ×îÐ¡ÌØÈ¨µÄ
<username>nobody</username>Éí·ÝÔËÐС£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>server-program</term>
<listitem>
<para>µ±Á¬½Óµ½À´Ê±£¬Ö´ÐзþÎñ³ÌÐòµÄȫ·¾¶¡£Èç¹û·þÎñÊÇÓÉ
<application>inetd</application>ÄÚÖÃÌṩµÄ£¬ÒÔ<option>internal</option>´úÌæ¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term>server-program-arguments</term>
<listitem>
<para>µ±<option>server-program</option>µ÷Óõ½Ê±£¬¸Ã¿ª¹Ø
µÄֵͨ¹ý<literal>argv[0]</literal>ͨ¹ý´«µÝ¸ø·þÎñ¶ø¹¤×÷¡£
Èç¹ûÃüÁîÐÐΪ£º<command>mydaemon -d</command>£¬Ôò
<literal>mydaemon -d</literal>Ϊ<option>server-program-arguments</option>
¿ª¹ØµÄÖµ¡£Í¬ÑùµÄ£¬Èç¹û·þÎñÊÇÓÉ<application>inetd</application>
ÄÚÖÃÌṩµÄ£¬ÕâÀﻹÊÇ
<option>internal</option>¡£</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="network-inetd-security">
<title>Security</title>
<para>Ëæ°²×°Ê±ËùÑ¡µÄģʽ²»Í¬£¬
Ðí¶à <application>inetd</application> µÄ·þÎñ¿ÉÄÜÒѾ­Ä¬ÈÏÆôÓá£
Èç¹ûȷʵ²»ÐèҪij¸öÌØ¶¨µÄ·þÎñ£¬ ÔòÓ¦¿¼ÂǽûÓÃËü¡£
ÔÚ <filename>/etc/inetd.conf</filename> ÖУ¬
½«¶ÔÓ¦·þÎñµÄÄÇÐÐÇ°Ãæ¼ÓÉÏ <quote>#</quote>£¬
È»ºó <link linkend="network-inetd-reread">ÖØÐ¼ÓÔØ
inetd ÅäÖÃ</link> ¾Í¿ÉÒÔÁË¡£ ijЩ·þÎñ£¬ ÀýÈç
<application>fingerd</application>£¬ ¿ÉÄÜÊÇÍêÈ«²»ÐèÒªµÄ£¬
ÒòΪËüÃÇÌṩµÄÐÅÏ¢¿ÉÄܶԹ¥»÷ÕßÓÐÓá£</para>
<para>ijЩ·þÎñÔÚÉè¼ÆÊ±ÊÇȱÉÙ°²È«ÒâʶµÄ£¬ »òÕßÓйý³¤»òѹ¸ùûÓÐÁ¬½ÓÇëÇóµÄ³¬Ê±»úÖÆ¡£
ÕâʹµÃ¹¥»÷ÕßÄܹ»Í¨¹ý»ºÂýµØ¶ÔÕâЩ·þÎñ·¢ÆðÁ¬½Ó£¬ ²¢ºÄ¾¡¿ÉÓõÄ×ÊÔ´¡£
¶ÔÓÚÕâÖÖÇé¿ö£¬ ÉèÖà <option>max-connections-per-ip-per-minute</option>¡¢
<option>max-child</option> »ò <option>max-child-per-ip</option> ÏÞÖÆ£¬
À´ÖÆÔ¼·þÎñµÄÐÐΪÊǸöºÃ°ì·¨¡£</para>
<para>ĬÈÏÇé¿öÏ£¬TCP wrapping ÊÇ´ò¿ªµÄ¡£²Î¿¼
&man.hosts.access.5; ÊֲᣬÒÔ»ñµÃ¸ü¶à¹ØÓÚÔÚ¸÷ÖÖ <application>inetd</application>
µ÷ÓõķþÎñÉÏÉèÖÃTCPÏÞÖÆµÄÐÅÏ¢¡£</para>
</sect2>
<sect2 id="network-inetd-misc">
<title>ÔÓÏî</title>
<para><application>daytime</application>¡¢
<application>time</application>¡¢
<application>echo</application>¡¢
<application>discard</application>¡¢
<application>chargen</application>£¬ ÒÔ¼°
<application>auth</application> ¶¼ÊÇÓÉ <application>inetd</application>
ÌṩµÄÄÚ½¨·þÎñ¡£</para>
<para><application>auth</application> ·þÎñÌṩÁËÍøÂçÉí·Ý·þÎñ£¬
Ëü¿ÉÒÔÅäÖÃΪÌṩ²»Í¬¼¶±ðµÄ·þÎñ£¬ ¶øÆäËü·þÎñÔòͨ³£Ö»Äܼòµ¥µÄ´ò¿ª»ò¹Ø±Õ¡£</para>
<para>²Î¿¼ &man.inetd.8; ÊÖ²á»ñµÃ¸ü¶àÐÅÏ¢¡£</para>
</sect2>
</sect1>
<sect1 id="network-nfs">
<sect1info>
<authorgroup>
<author>
<firstname>Tom</firstname>
<surname>Rhodes</surname>
<contrib>Reorganized and enhanced by </contrib>
</author>
</authorgroup>
<authorgroup>
<author>
<firstname>Bill</firstname>
<surname>Swingle</surname>
<contrib>Written by </contrib>
</author>
</authorgroup>
</sect1info>
<title>ÍøÂçÎļþϵͳ£¨NFS£©</title>
<indexterm><primary>NFS</primary></indexterm>
<para>ÍøÂçÎļþϵͳÊÇFreeBSDÖ§³ÖµÄÎļþϵͳÖеÄÒ»ÖÖ£¬
Ò²±»³ÆÎª <acronym role="Network
File System">NFS</acronym>¡£ <acronym role="Network File
System">NFS</acronym>ÔÊÐíÒ»¸öϵͳÔÚÍøÂçÉÏÓëËüÈ˹²ÏíĿ¼ºÍÎļþ¡£Í¨¹ýʹÓÃ<acronym
role="Network File System">NFS</acronym>£¬Óû§ºÍ³ÌÐò¿ÉÒÔÏó·ÃÎʱ¾µØÎļþ
Ò»Ñù·ÃÎÊÔ¶¶ËϵͳÉϵÄÎļþ¡£</para>
<para>ÒÔÏÂÊÇ<acronym>NFS</acronym>×îÏÔ¶øÒ×¼ûµÄºÃ´¦£º</para>
<itemizedlist>
<listitem>
<para>±¾µØ¹¤×÷վʹÓøüÉٵĴÅÅ̿ռ䣬ÒòΪͨ³£µÄÊý¾Ý¿ÉÒÔ´æ·ÅÔÚÒ»
̨»úÆ÷É϶øÇÒ¿ÉÒÔͨ¹ýÍøÂç·ÃÎʵ½¡£</para>
</listitem>
<listitem>
<para>Óû§²»±ØÔÚÿ¸öÍøÂçÉÏ»úÆ÷ÀïÍ·¶¼ÓÐÒ»¸öhomeĿ¼¡£HomeĿ¼
¿ÉÒÔ±»·ÅÔÚ<acronym>NFS</acronym>·þÎñÆ÷Éϲ¢ÇÒÔÚÍøÂçÉÏ´¦´¦¿ÉÓá£
</para>
</listitem>
<listitem>
<para>ÖîÈçÈíÇý£¬CDROM£¬ºÍ &iomegazip; Ö®ÀàµÄ´æ´¢É豸¿ÉÒÔÔÚÍøÂçÉÏÃæ±»±ðµÄ»úÆ÷ʹÓá£
Õâ¿ÉÒÔ¼õÉÙÕû¸öÍøÂçÉϵĿÉÒÆ¶¯½éÖÊÉ豸µÄÊýÁ¿¡£</para>
</listitem>
</itemizedlist>
<sect2>
<title><acronym>NFS</acronym>ÊÇÈçºÎ¹¤×÷µÄ</title>
<para><acronym>NFS</acronym> ÖÁÉÙ°üÀ¨Á½¸öÖ÷ÒªµÄ²¿·Ö£º һ̨·þÎñÆ÷£¬
ÒÔ¼°ÖÁÉÙһ̨¿Í»§»ú£¬ ¿Í»§»úÔ¶³ÌµØ·ÃÎʱ£´æÔÚ·þÎñÆ÷ÉϵÄÊý¾Ý¡£
ÒªÈÃÕâÒ»ÇÐÔËתÆðÀ´£¬ ÐèÒªÅäÖò¢ÔËÐм¸¸ö³ÌÐò¡£</para>
<para>·þÎñÆ÷±ØÐëÔËÐÐÒÔÏ·þÎñ£º</para>
<indexterm>
<primary>NFS</primary>
<secondary>server (·þÎñ)</secondary>
</indexterm>
<indexterm>
<primary>Îļþ·þÎñÆ÷</primary>
<secondary>UNIX ¿Í»§»ú</secondary>
</indexterm>
<indexterm>
<primary><application>rpcbind</application></primary>
</indexterm>
<indexterm>
<primary><application>mountd</application></primary>
</indexterm>
<indexterm>
<primary><application>nfsd</application></primary>
</indexterm>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<colspec colwidth="1*">
<colspec colwidth="3*">
<thead>
<row>
<entry>·þÎñ</entry>
<entry>ÃèÊö</entry>
</row>
</thead>
<tbody>
<row>
<entry><application>nfsd</application></entry>
<entry><acronym>NFS</acronym>£¬ÎªÀ´×Ô<acronym>NFS</acronym>¿Í»§¶ËµÄ
ÇëÇó·þÎñ¡£</entry>
</row>
<row>
<entry><application>mountd</application></entry>
<entry><acronym>NFS</acronym>¹ÒÔØ·þÎñ£¬´¦Àí&man.nfsd.8;µÝ½»¹ýÀ´µÄÇëÇó¡£</entry>
</row>
<row>
<entry><application>rpcbind</application></entry>
<entry> ´Ë·þÎñÔÊÐí
<acronym>NFS</acronym> ¿Í»§³ÌÐò²éѯÕýÔÚ±» <acronym>NFS</acronym> ·þÎñʹÓõĶ˿ڡ£</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>¿Í»§¶ËͬÑùÔËÐÐһЩ½ø³Ì£¬±ÈÈç
<application>nfsiod</application>¡£
<application>nfsiod</application>´¦ÀíÀ´×Ô<acronym>NFS</acronym>µÄÇëÇó¡£
ÕâÊÇ¿ÉÑ¡µÄ£¬¶øÇÒ¿ÉÒÔÌá¸ßÐÔÄÜ£¬¶ÔÓÚÆÕͨºÍÕýÈ·µÄ²Ù×÷À´Ëµ²¢²»ÊDZØÐëµÄ¡£
²Î¿¼&man.nfsiod.8;ÊÖ²á»ñµÃ¸ü¶àÐÅÏ¢¡£
</para>
</sect2>
<sect2 id="network-configuring-nfs">
<title>ÅäÖÃ<acronym>NFS</acronym></title>
<indexterm>
<primary>NFS</primary>
<secondary>configuration</secondary>
</indexterm>
<para><acronym>NFS</acronym>µÄÅäÖùý³ÌÏà¶Ô¼òµ¥¡£Õâ¸ö¹ý³ÌÖ»ÐèÒª
¶Ô<filename>/etc/rc.conf</filename>Îļþ×÷һЩ¼òµ¥Ð޸ġ£</para>
<para>ÔÚ<acronym>NFS</acronym>·þÎñÆ÷Õâ¶Ë£¬È·ÈÏ<filename>/etc/rc.conf</filename>
ÎļþÀïÍ·ÒÔÏ¿ª¹Ø¶¼ÅäÉÏÁË:</para>
<programlisting>rpcbind_enable="YES"
nfs_server_enable="YES"
mountd_flags="-r"</programlisting>
<para>Ö»Òª<acronym>NFS</acronym>·þÎñ±»ÖÃΪenable£¬<application>mountd</application>
¾ÍÄÜ×Ô¶¯ÔËÐС£</para>
<para>ÔÚ¿Í»§¶ËÒ»²à£¬È·ÈÏÏÂÃæÕâ¸ö¿ª¹Ø³öÏÖÔÚ
<filename>/etc/rc.conf</filename>ÀïÍ·:</para>
<programlisting>nfs_client_enable="YES"</programlisting>
<para><filename>/etc/exports</filename>ÎļþÖ¸¶¨ÁËÄĸöÎļþϵͳ
<acronym>NFS</acronym>Ó¦¸ÃÊä³ö£¨ÓÐʱ±»³ÆÎª<quote>¹²Ïí</quote>£©¡£
<filename>/etc/exports</filename>ÀïÃæÃ¿ÐÐÖ¸¶¨Ò»¸öÊä³öµÄÎļþϵͳºÍ
ÄÄЩ»úÆ÷¿ÉÒÔ·ÃÎʸÃÎļþϵͳ¡£ÔÚÖ¸¶¨»úÆ÷·ÃÎÊȨÏÞµÄͬʱ£¬·ÃÎÊÑ¡Ïî
¿ª¹ØÒ²¿ÉÒÔ±»Ö¸¶¨¡£Óкܶ࿪¹Ø¿ÉÒÔ±»ÓÃÔÚÕâ¸öÎļþÀïÍ·£¬²»¹ý²»»áÔÚÕâ
ÀïÏêϸ̸¡£Äú¿ÉÒÔͨ¹ýÔĶÁ&man.exports.5; ÊÖ²áÀ´·¢ÏÖÕâЩ¿ª¹Ø¡£</para>
<para>ÒÔÏÂÊÇһЩ<filename>/etc/exports</filename>µÄÀý×Ó£º</para>
<indexterm>
<primary>NFS</primary>
<secondary>export examples</secondary>
</indexterm>
<para>ÏÂÃæÊÇÒ»¸öÊä³öÎļþϵͳµÄÀý×Ó£¬ ²»¹ýÕâÖÖÅäÖÃÓëÄúËù´¦µÄÍøÂç»·¾³¼°ÆäÅäÖÃÃÜÇÐÏà¹Ø¡£
ÀýÈ磬 Èç¹ûÒª°Ñ <filename>/cdrom</filename> Êä³ö¸øÓë·þÎñÆ÷ÓòÃûÏàͬµÄÈý̨¼ÆËã»ú
(Òò´ËÀý×ÓÖÐÖ»ÓлúÆ÷Ãû£¬ ¶øÃ»Óиø³öÕâЩ¼ÆËã»úµÄÓòÃû)£¬ »òÔÚ
<filename>/etc/hosts</filename> ÎļþÖнøÐÐÁËÕâÖÖÅäÖᣠ<option>-ro</option>
±êÖ¾±íʾ°ÑÊä³öµÄÎļþϵͳÖÃΪֻ¶Á¡£ ÓÉÓÚʹÓÃÁËÕâ¸ö±êÖ¾£¬
Ô¶³ÌϵͳÔÚÊä³öµÄÎļþϵͳÉϾͲ»ÄÜдÈëÈκα䶯ÁË¡£</para>
<programlisting>/cdrom -ro host1 host2 host3</programlisting>
<para>ÏÂÃæµÄÀý×Ó¿ÉÒÔÊä³ö<filename>/home</filename>¸øÈý¸öÒÔIPµØÖ··½Ê½±íʾµÄÖ÷»ú¡£
¶ÔÓÚÔÚûÓÐÅäÖÃ<acronym>DNS</acronym>·þÎñÆ÷µÄ˽ÓÐÍøÂçÀïÍ·£¬ÕâºÜÓÐÓá£
´ËÍ⣬ <filename>/etc/hosts</filename> ÎļþÒ²¿ÉÒÔÓÃÒÔÅäÖÃÖ÷»úÃû£»²Î¿´ &man.hosts.5; ¡£
<option>-alldirs</option> ±ê¼ÇÔÊÐí×ÓĿ¼±»×÷Ϊ¹ÒÔØµã¡£
Ò²¾ÍÊÇ˵£¬¿Í»§¶Ë¿ÉÒÔ¸ù¾ÝÐèÒª¹ÒÔØÐèÒªµÄĿ¼¡£ </para>
<programlisting>/home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4</programlisting>
<para>ÏÂÃæ¼¸ÐÐÊä³ö <filename>/a</filename> £¬ÒÔ±ãÁ½¸öÀ´×Ô²»Í¬ÓòµÄ¿Í»§¶Ë¿ÉÒÔ·ÃÎÊÎļþϵͳ¡£
<option>-maproot=root</option> ±ê¼ÇÊÚȨԶ¶ËϵͳÉϵÄ
<username>root</username> Óû§ÔÚ±»Êä³öµÄÎļþϵͳÉÏÒÔ<username>root</username>Éí·Ý½øÐжÁд¡£
Èç¹ûûÓÐÌØ±ðÖ¸¶¨ <literal>-maproot=root</literal> ±ê¼Ç£¬
Ôò¼´Ê¹Óû§ÔÚÔ¶¶ËϵͳÉÏÊÇ <username>root</username> Éí·Ý£¬
Ò²²»ÄÜÐ޸ı»Êä³öÎļþϵͳÉϵÄÎļþ¡£ </para>
<programlisting>/a -maproot=root host.example.com box.example.org</programlisting>
<para> ΪÁËÄܹ»·ÃÎʵ½±»Êä³öµÄÎļþϵͳ£¬¿Í»§¶Ë±ØÐë±»ÊÚȨ¡£
ÇëÈ·ÈϿͻ§¶ËÔÚÄúµÄ <filename>/etc/exports</filename> ±»Áгö¡£ </para>
<para>ÔÚ <filename>/etc/exports</filename> ÀïÍ·£¬Ã¿Ò»ÐÐÀïÃæ£¬Êä³öÐÅÏ¢ºÍÎļþϵͳһһ¶ÔÓ¦¡£
Ò»¸öÔ¶³ÌÖ÷»úÿ´ÎÖ»ÄܶÔÓ¦Ò»¸öÎļþϵͳ¡£¶øÇÒÖ»ÄÜÓÐÒ»¸öĬÈÏÈë¿Ú¡£±ÈÈ磬¼ÙÉè
<filename>/usr</filename> ÊǶÀÁ¢µÄÎļþϵͳ¡£Õâ¸ö <filename>/etc/exports</filename> ¾ÍÊÇÎÞЧµÄ£º</para>
<programlisting># Invalid when /usr is one file system
/usr/src client
/usr/ports client</programlisting>
<para>Ò»¸öÎļþϵͳ£¬<filename>/usr</filename>£¬ ÓÐÁ½ÐÐÖ¸¶¨Êä³öµ½Í¬Ò»Ö÷»ú£¬
<hostid>client</hostid>.
½â¾öÕâÒ»ÎÊÌâµÄÕýÈ·µÄ¸ñʽÊÇ£º</para>
<programlisting>/usr/src /usr/ports client</programlisting>
<para>ÔÚͬһÎļþϵͳÖУ¬ Êä³öµ½Ö¸¶¨¿Í»§»úµÄËùÓÐĿ¼£¬ ¶¼±ØÐëдµ½Í¬Ò»ÐÐÉÏ¡£
ûÓÐÖ¸¶¨¿Í»§»úµÄÐлᱻÈÏΪÊǵ¥Ò»Ö÷»ú¡£ ÕâÏÞÖÆÁËÄã¿ÉÒÔÔõÑùÊä³öµÄÎļþϵͳ£¬
µ«¶Ô¾ø´ó¶àÊýÈËÀ´ËµÕâ²»ÊÇÎÊÌâ¡£</para>
<para>ÏÂÃæÊÇÒ»¸öÓÐЧÊä³öÁбíµÄÀý×Ó£¬
<filename>/usr</filename> ºÍ <filename>/exports</filename>
ÊDZ¾µØÎļþϵͳ£º</para>
<programlisting># Export src and ports to client01 and client02, but only
# client01 has root privileges on it
/usr/src /usr/ports -maproot=root client01
/usr/src /usr/ports client02
# The client machines have root and can mount anywhere
# on /exports. Anyone in the world can mount /exports/obj read-only
/exports -alldirs -maproot=root client01 client02
/exports/obj -ro</programlisting>
<para>ÔÚÐÞ¸ÄÁË <filename>/etc/exports</filename> ÎļþÖ®ºó£¬
¾Í±ØÐëÈà <application>mountd</application> ·þÎñÖØÐ¼ì²éËü£¬
ÒÔ±ãʹÐÞ¸ÄÉúЧ¡£ Ò»ÖÖ·½·¨ÊÇͨ¹ý¸øÕýÔÚÔËÐеķþÎñ³ÌÐò·¢ËÍ HUP
ÐźÅÀ´Íê³É£º</para>
<screen>&prompt.root; <userinput>kill -HUP `cat /var/run/mountd.pid`</userinput></screen>
<para>»òÖ¸¶¨Êʵ±µÄ²ÎÊýÀ´ÔËÐÐ <command>mountd</command> &man.rc.8; ½Å±¾£º</para>
<screen>&prompt.root; <userinput>/etc/rc.d/mountd onereload</userinput></screen>
<para>¹ØÓÚʹÓà rc ½Å±¾µÄϸ½Ú£¬ Çë²Î¼û <xref linkend="configtuning-rcd">¡£</para>
<para>ÁíÍ⣬ ÏµÍ³ÖØÆô¶¯¿ÉÒÔÈà FreeBSD °ÑÒ»Çж¼ÅªºÃ¡£ ¾¡¹ÜÈç´Ë£¬
ÖØÆô²»ÊDZØÐëµÄ¡£ ÒÔ <username>root</username> Éí·ÝÖ´ÐÐÏÂÃæµÄÃüÁî¿ÉÒԸ㶨һÇС£</para>
<para>ÔÚ <acronym>NFS</acronym> ·þÎñÆ÷¶Ë£º</para>
<screen>&prompt.root; <userinput>rpcbind</userinput>
&prompt.root; <userinput>nfsd -u -t -n 4</userinput>
&prompt.root; <userinput>mountd -r</userinput></screen>
<para>ÔÚ <acronym>NFS</acronym> ¿Í»§¶Ë£º</para>
<screen>&prompt.root; <userinput>nfsiod -n 4</userinput></screen>
<para>ÏÖÔÚÿ¼þÊÂÇé¶¼Ó¦¸Ã¾ÍÐ÷£¬ÒÔ±¸¹ÒÔØÒ»¸öÔ¶¶ËÎļþϵͳ¡£ ÔÚÕâЩÀý×ÓÀïÍ·£¬
·þÎñÆ÷Ãû×Ö½«ÊÇ£º<hostid>server</hostid> £¬¶ø¿Í»§¶ËµÄÃû×Ö½«ÊÇ£º <hostid>client</hostid>¡£
Èç¹ûÄúÖ»´òËãÁÙʱ¹ÒÔØÒ»¸öÔ¶¶ËÎļþϵͳ»òÕßÖ»ÊÇ´òËã×÷²âÊÔÅäÖÃÕýÈ·Óë·ñ£¬
Ö»ÒªÔÚ¿Í»§¶ËÒÔ <username>root</username> Éí·ÝÖ´ÐÐÏÂÃæµÄÃüÁ</para>
<indexterm>
<primary>NFS</primary>
<secondary>mounting</secondary>
</indexterm>
<screen>&prompt.root; <userinput>mount server:/home /mnt</userinput></screen>
<para>ÕâÌõÃüÁî»á°Ñ·þÎñ¶ËµÄ <filename>/home</filename> Ŀ¼¹ÒÔØµ½¿Í»§¶ËµÄ <filename>/mnt</filename> ÉÏ¡£
Èç¹ûÅäÖÃÕýÈ·£¬ÄúÓ¦¸Ã¿ÉÒÔ½øÈë¿Í»§¶ËµÄ <filename>/mnt</filename> Ŀ¼²¢ÇÒ¿´µ½ËùÓзþÎñ¶ËµÄÎļþ¡£ </para>
<para>Èç¹ûÄú´òËãÈÃϵͳÿ´ÎÔÚÖØÆô¶¯µÄʱºò¶¼×Ô¶¯¹ÒÔØÔ¶¶ËµÄÎļþϵͳ£¬°ÑÄǸöÎļþϵͳ¼Óµ½
<filename>/etc/fstab</filename> ÎļþÀïÍ·È¥¡£ÏÂÃæÊÇÀý×Ó£º</para>
<programlisting>server:/home /mnt nfs rw 0 0</programlisting>
<para> &man.fstab.5; ÊÖ²áÀïÓÐËùÓпÉÓõĿª¹Ø¡£</para>
</sect2>
<sect2>
<title>Ëø</title>
<para>ijЩӦÓóÌÐò (ÀýÈç <application>mutt</application>)
ÐèÒªÎļþÉÏËøÖ§³Ö²ÅÄÜÕý³£ÔËÐС£ ÔÚʹÓÃ
<acronym>NFS</acronym> ʱ£¬ ¿ÉÒÔÓà <application>rpc.lockd</application>
À´Ö§³ÖÎļþÉÏËø¹¦ÄÜ¡£ ÒªÆôÓÃËü£¬
ÐèÒªÔÚ·þÎñÆ÷ºÍ¿Í»§»úµÄ <filename>/etc/rc.conf</filename> ÖмÓÈë
(¼Ù¶¨Á½¶Ë¾ùÒÑÅäºÃÁË <acronym>NFS</acronym>)£º</para>
<programlisting>rpc_lockd_enable="YES"
rpc_statd_enable="YES"</programlisting>
<para>È»ºóʹÓÃÏÂÊöÃüÁîÆô¶¯¸Ã³ÌÐò£º</para>
<screen>&prompt.root; <userinput>/etc/rc.d/lockd start</userinput>
&prompt.root; <userinput>/etc/rc.d/statd start</userinput></screen>
<para>Èç¹û²¢²»ÐèÒªÕæµÄÔÚ <acronym>NFS</acronym> ¿Í»§»úºÍ
<acronym>NFS</acronym> ·þÎñÆ÷¼äÈ·±£ÉÏËøµÄÓïÒ壬
¿ÉÒÔÈà <acronym>NFS</acronym> ¿Í»§»úÔÚ±¾µØÉÏËø£¬
·½·¨ÊÇʹÓà &man.mount.nfs.8; ʱָ¶¨ <option>-L</option> ²ÎÊý¡£
Çë²Î¼û &man.mount.nfs.8; Áª»úÊÖ²áÒÔÁ˽â¸ü¶àϸ½Ú¡£
</para>
</sect2>
<sect2>
<title>ʵ¼ÊÓ¦ÓÃ</title>
<para><acronym>NFS</acronym> Óкܶàʵ¼ÊÓ¦Óá£ÏÂÃæÊDZȽϳ£¼ûµÄһЩ£º</para>
<indexterm>
<primary>NFS</primary>
<secondary>uses</secondary>
</indexterm>
<itemizedlist>
<listitem>
<para>¶à¸ö»úÆ÷¹²Ïíһ̨CDROM»òÕ߯äËûÉ豸¡£Õâ¶ÔÓÚÔÚ¶ą̀»úÆ÷Öа²×°Èí¼þÀ´Ëµ¸ü¼Ó±ãÒ˸ú·½±ã¡£
</para>
</listitem>
<listitem>
<para>ÔÚ´óÐÍÍøÂçÖУ¬ÅäÖÃһ̨ÖÐÐÄ <acronym>NFS</acronym> ·þÎñÆ÷ÓÃÀ´·ÅÖÃËùÓÐÓû§µÄhomeĿ¼¿ÉÄÜ»á´øÀ´±ãÀû¡£
ÕâЩĿ¼Äܱ»Êä³öµ½ÍøÂçÒÔ±ãÓû§²»¹ÜÔÚÄĄ̈¹¤×÷Õ¾ÉϵǼ£¬×ÜÄܵõ½ÏàͬµÄhomeĿ¼¡£
</para>
</listitem>
<listitem>
<para>¼¸Ì¨»úÆ÷¿ÉÒÔÓÐͨÓõÄ<filename>/usr/ports/distfiles</filename> Ŀ¼¡£
ÕâÑùµÄ»°£¬µ±ÄúÐèÒªÔÚ¼¸Ì¨»úÆ÷Éϰ²×°portʱ£¬Äú¿ÉÒÔÎÞÐèÔÚÿ̨É豸ÉÏÏÂÔØ¶ø¿ìËÙ·ÃÎÊÔ´Âë¡£
</para>
</listitem>
</itemizedlist>
</sect2>
<sect2 id="network-amd">
<sect2info>
<authorgroup>
<author>
<firstname>Wylie</firstname>
<surname>Stilwell</surname>
<contrib>Contributed by </contrib>
</author>
</authorgroup>
<authorgroup>
<author>
<firstname>Chern</firstname>
<surname>Lee</surname>
<contrib>Rewritten by </contrib>
</author>
</authorgroup>
</sect2info>
<title>ͨ¹ý <application>amd</application> ×Ô¶¯µØ¹Ò½Ó</title>
<indexterm><primary>amd</primary></indexterm>
<indexterm><primary>×Ô¶¯¹Ò½Ó·þÎñ</primary></indexterm>
<para>&man.amd.8; (×Ô¶¯¹Ò½Ó·þÎñ) Äܹ»×Ô¶¯µØÔÚ·ÃÎÊʱ¹Ò½ÓÔ¶³ÌµÄÎļþϵͳ¡£
Èç¹ûÎļþϵͳÔÚÒ»¶Îʱ¼äÖ®ÄÚûÓл£¬ Ôò»á±»
<application>amd</application> ×Ô¶¯Ð¶Ï¡£ ͨ¹ýʹÓÃ
<application>amd</application>£¬ Äܹ»Ìṩһ¸ö³Ö¾Ã¹Ò½ÓÒÔÍâµÄÑ¡Ôñ£¬
¶øºóÕßÍùÍùÐèÒªÁÐÈë
<filename>/etc/fstab</filename>¡£</para>
<para><application>amd</application> ͨ¹ý½«×Ô¼ºÒÔ NFS ·þÎñÆ÷µÄÐÎʽ£¬
¸½¼Óµ½ <filename>/host</filename> ºÍ
<filename>/net</filename> Ŀ¼ÉÏÀ´¹¤×÷¡£
µ±·ÃÎÊÕâЩĿ¼ÖеÄÎļþʱ£¬ <application>amd</application>
½«²éÕÒÏàÓ¦µÄÔ¶³Ì¹Ò½Óµã£¬ ²¢×Ô¶¯µØ¹Ò½Ó¡£
<filename>/net</filename> ÓÃÓÚ¹Ò½ÓÔ¶³Ì IP µØÖ·Éϵ¼³öµÄÎļþϵͳ£¬
¶ø <filename>/host</filename> ÔòÓÃÓÚ¹Ò½ÓÔ¶³ÌÖ÷»úÃûÉϵÄÎļþϵͳ¡£</para>
<para>·ÃÎÊ
<filename>/host/foobar/usr</filename> ÖеÄÎļþ£¬ Ï൱ÓÚ¸æËß
<application>amd</application> ³¢ÊÔ¹Ò½ÓÔÚÖ÷»ú
<hostid>foobar</hostid> Éϵ¼³öµÄ
<filename>/usr</filename>¡£</para>
<example>
<title>ͨ¹ý <application>amd</application> À´¹Ò½Óµ¼³öµÄÎļþϵͳ</title>
<para>Äú¿ÉÒÔͨ¹ýʹÓà <command>showmount</command>
ÃüÁîÀ´²é¿´Ô¶³ÌÖ÷»úÉϵ¼³öµÄÎļþϵͳ¡£ ÀýÈ磬
Òª²é¿´ <hostid>foobar</hostid> Éϵ¼³öµÄÎļþϵͳ£¬ ¿ÉÒÔÓãº</para>
<screen>&prompt.user; <userinput>showmount -e foobar</userinput>
Exports list on foobar:
/usr 10.10.10.0
/a 10.10.10.0
&prompt.user; <userinput>cd /host/foobar/usr</userinput></screen>
</example>
<para>ÈçͬÔÚÇ°ÃæÀý×ÓÖÐËù¿´µ½µÄ£¬ <command>showmount</command> ÏÔʾÁ˵¼³öµÄ
<filename>/usr</filename>¡£ µ±½øÈë
<filename>/host/foobar/usr</filename> Õâ¸öĿ¼ʱ£¬ <application>amd</application>
½«³¢ÊÔ½âÎöÖ÷»úÃû <hostid>foobar</hostid>
²¢×Ô¶¯µØ¹Ò½ÓÐèÒªµÄÎļþϵͳµ¼³ö¡£</para>
<para><application>amd</application> ¿ÉÒÔͨ¹ýÆô¶¯½Å±¾À´Æô¶¯£¬ ·½·¨ÊÇÔÚ
<filename>/etc/rc.conf</filename> ÖмÓÈ룺</para>
<programlisting>amd_enable="YES"</programlisting>
<para>³ý´ËÖ®Í⣬ »¹¿ÉÒÔ¸ø
<application>amd</application> ͨ¹ý
<varname>amd_flags</varname> Ñ¡ÏîÀ´´«µÝ¶îÍâµÄ²ÎÊý¡£ ĬÈÏÇé¿öÏ£¬
<varname>amd_flags</varname> Ϊ£º</para>
<programlisting>amd_flags="-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map"</programlisting>
<para><filename>/etc/amd.map</filename>
Îļþ¶¨ÒåÁ˹ҽӵ¼³öÎļþϵͳʱËùʹÓõÄĬÈÏÑ¡Ïî¡£
<filename>/etc/amd.conf</filename> Îļþ£¬ Ôò¶¨ÒåÁ˸ü¶à¹ØÓÚ
<application>amd</application> µÄ¸ß¼¶¹¦ÄÜÑ¡Ïî¡£</para>
<para>Çë²Î¿¼ &man.amd.8; ºÍ &man.amd.conf.5; Áª»úÊֲᣬ
ÒÔÁË½â½øÒ»²½µÄÇé¿ö¡£</para>
</sect2>
<sect2 id="network-nfs-integration">
<sect2info>
<authorgroup>
<author>
<firstname>John</firstname>
<surname>Lind</surname>
<contrib>Contributed by </contrib>
</author>
</authorgroup>
</sect2info>
<title>ÓëÆäËûϵͳ¼¯³ÉʱµÄ³£¼ûÎÊÌâ</title>
<para>Ä³Ð©ÌØ¶¨µÄ ISA PC ϵͳÉϵÄÒÔÌ«ÍøÊÊÅäÆ÷ÉÏÓÐһЩÏÞÖÆ£¬
ÕâЩÏÞÖÆ¿ÉÄܻᵼÖÂÑÏÖØµÄÍøÂçÎÊÌ⣬ ÌØ±ðÊÇÓë NFS ÅäºÏʹÓÃʱ¡£
ÕâЩÎÊÌâ²¢·Ç FreeBSD ËùÌØÓеģ¬ µ« FreeBSD ϵͳ»áÊܵ½ÕâЩÎÊÌâµÄÓ°Ïì¡£</para>
<para>ÕâÑùµÄÎÊÌ⣬ ¼¸ºõ×ÜÊÇÔÚµ± (FreeBSD) PC ϵͳÓë¸ßÐÔÄܵŤ×÷Õ¾£¬
ÀýÈç Silicon Graphics, Inc., ºÍ Sun Microsystems, Inc. µÄ¹¤×÷Õ¾ÁªÍøÊ±·¢Éú¡£
NFS ¹Ò½ÓÄܹ»Õý³£¹¤×÷£¬ ¶øÇÒһЩ²Ù×÷Ò²¿ÉÄܳɹ¦£¬
µ«·þÎñÆ÷»áºÜ¿ì±äµÃ¶Ô¿Í»§»ú²»Ì«Àí»á£¬
ËäÈ»¶ÔÆäËû¿Í»§»úµÄÇëÇóÈÔÈ»Äܹ»Õý³£´¦Àí¡£
ÕâÖÖÇé¿öͨ³£·¢ÉúÔÚ¿Í»§¶Ë£¬ ÎÞÂÛËüÊÇÒ»¸ö FreeBSD ϵͳ»òÊÇÖÕ¶Ë¡£
ÔÚÐí¶àϵͳÉÏ£¬ Ò»µ©·¢ÉúÁËÕâÑùµÄÎÊÌ⣬ ͨ³£Ã»°ì·¨Õý³£µØ¹Ø±Õ¿Í»§»ú¡£
ΨһµÄ°ì·¨Í¨³£ÊÇÈÃÖն˸´Î»£¬ ÒòΪÕâÒ» NFS ×´¿öûÓа취±»½â¾ö¡£</para>
<para>¾¡¹Ü <quote>ÕýÈ·µÄ</quote> ½â¾ö°ì·¨£¬ ÊÇΪ
FreeBSD ϵͳÅ䱸һ¿é¸ßÐÔÄܵġ¢ ÊÊÓõÄÒÔÌ«ÍøÊÊÅäÆ÷£¬
È»¶øÒ²ÓÐ°ì·¨ÈÆ¹ýÎÊÌâ²¢µÃµ½Ïà¶ÔÂúÒâµÄ½á¹û¡£
Èç¹û FreeBSD ϵͳÊÇ
<emphasis>·þÎñÆ÷</emphasis>£¬ ÔòÔÚ¿Í»§»ú¹Ò½Óʱ£¬ Ó¦¸ÃÖ¸¶¨
<option>-w=1024</option>¡£ Èç¹û
FreeBSD ϵͳÊÇ <emphasis>¿Í»§»ú</emphasis>£¬
ÔòÓ¦¼ÓÈë <option>-r=1024</option> ²ÎÊý¡£ ÕâЩѡÏî¿ÉÒÔͨ¹ýÔÚ¶ÔÓ¦µÄ
<filename>fstab</filename> µÄµÚËĸö×ֶμÓÈ룬
ÒÔ±ãÈÿͻ§»úÄܹ»×Ô¶¯µØ¹Ò½Ó£¬ »òÕßͨ¹ý &man.mount.8; µÄ
<option>-o</option> ²ÎÊýÔÚÊÖ¹¤¹Ò½Óʱָ¶¨¡£</para>
<para>»¹ÐèҪעÒâµÄÊÇÁíÒ»¸öÎÊÌ⣬ ÓÐʱ»á±»ÎóÈÏΪÊǺÍÉÏÃæÒ»ÑùµÄÎÊÌâ¡£
Õâ¸öÎÊÌâ¶à¼ûÓÚ NFS ·þÎñÆ÷ºÍ¿Í»§»úÔÚ²»Í¬µÄÍøÂçÉÏʱ¡£ Èç¹ûÊÇÕâÖÖÇé¿ö£¬ Ò»¶¨Òª
<emphasis>È·¶¨</emphasis> ÄúµÄ·ÓÉÆ÷ȷʵ°Ñ±ØÐèµÄ <acronym>UDP</acronym>
ÐÅϢ·Óɵ½ÁËÄ¿µÄµØ£¬ ·ñÔòÄú½«Ê²Ã´Ò²×ö²»ÁË¡£</para>
<para>ÏÂÃæµÄÀý×ÓÖУ¬ <hostid>fastws</hostid> ÊÇÖ÷»ú
(½Ó¿Ú) µÄÃû×Ö£¬ ËüÊÇһ̨¸ßÐÔÄܵÄÖÕ¶Ë£¬ ¶ø
<hostid>freebox</hostid> ÊÇÁíһ̨Ö÷»ú (½Ó¿Ú) µÄÃû×Ö£¬
ËüÊÇÒ»¸öʹÓýϵÍÐÔÄܵÄÒÔÌ«ÍøÊÊÅäÆ÷µÄ FreeBSD ϵͳ¡£ ͬʱ£¬
<filename>/sharedfs</filename> ½«±»µ¼³ö³ÉΪ NFS
Îļþϵͳ (²Î¼û &man.exports.5;)£¬ ¶ø
<filename>/project</filename>
½«Êǿͻ§»úÉϹҽÓÕâÒ»µ¼³öÎļþϵͳµÄ¹Ò½Óµã¡£ ËùÓеÄÓ¦Óó¡¾°ÖУ¬
Çë×¢Ò⸽¼ÓÑ¡Ï ÀýÈç <option>hard</option> »ò
<option>soft</option> ÒÔ¼° <option>bg</option> ¿ÉÄÜÊÇÄúµÄÓ¦ÓÃËùÐèÒªµÄ¡£</para>
<para>¹ØÓÚ FreeBSD ϵͳ (<hostid>freebox</hostid>)
×÷Ϊ¿Í»§»úµÄʾ·¶ <filename>/etc/fstab</filename> Îļþ£¬ ¼ûÓÚ
<hostid>freebox</hostid> Ö®ÉÏ£º</para>
<programlisting>fastws:/sharedfs /project nfs rw,-r=1024 0 0</programlisting>
<para>ÔÚ <hostid>freebox</hostid> ÉÏÊÖ¹¤¹Ò½Ó£º</para>
<screen>&prompt.root; <userinput>mount -t nfs -o -r=1024 fastws:/sharedfs /project</userinput></screen>
<para>ÒÔ FreeBSD ϵͳ×÷Ϊ·þÎñÆ÷µÄÀý×Ó£¬ ÊÇ <hostid>fastws</hostid> ÉϵÄ
<filename>/etc/fstab</filename>£º</para>
<programlisting>freebox:/sharedfs /project nfs rw,-w=1024 0 0</programlisting>
<para>ÔÚ <hostid>fastws</hostid> ÉÏÊÖ¹¤¹Ò½ÓµÄÃüÁîÊÇ£º</para>
<screen>&prompt.root; <userinput>mount -t nfs -o -w=1024 freebox:/sharedfs /project</userinput></screen>
<para>¼¸ºõËùÓÐµÄ 16-λ ÒÔÌ«Íø¿ØÖÆÆ÷£¬
¶¼Äܹ»ÔÚûÓÐÉÏÊö¶Áд³ß´çÏÞÖÆµÄÇé¿öÏÂÕý³£¹¤×÷¡£</para>
<para>¶ÔÓÚÄÇЩ¹ØÐĵ½µ×ÊÇʲôÎÊÌâµÄÈË£¬ ÏÂÃæÊÇʧ°ÜÈçºÎ·¢ÉúµÄ½âÊÍ£¬
ͬʱÕâҲ˵Ã÷ÁËΪʲôÕâÊÇÒ»¸öÎÞ·¨»Ö¸´µÄÎÊÌâ¡£ µäÐÍÇé¿öÏ£¬
NFS »áʹÓÃÒ»¸ö <quote>¿é</quote> Ϊµ¥Î»½øÐвÙ×÷£¬ Æä³ß´çÊÇ
8&nbsp;K (ËäÈ»Ëü¿ÉÄܻὫ²Ù×÷·Ö³É¸üС³ß´çµÄ·ÖƬ)¡£
ÓÉÓÚ×î´óµÄÒÔÌ«Íø°ü³ß´ç´óÔ¼ÊÇ 1500&nbsp;×Ö½Ú£¬
Òò´Ë NFS <quote>¿é</quote> »á·Ö³É¶à¸öÒÔÌ«Íø°ü£¬
ËäÈ»ÔÚ¸ü¸ß²ãµÄ´úÂë¿´À´ËüÈÔÈ»ÊÇÒ»¸öÍêÕûµÄµ¥Ôª£¬
²¢ÔÚ½ÓÊÕ·½ÖØÐÂ×é×°£¬ ×÷Ϊһ¸öÕûÌåÀ´
<emphasis>È·ÈÏ</emphasis>¡£ ¸ßÐÔÄܵŤ×÷Õ¾£¬
¿ÉÒÔ½«¹¹³É NFS µ¥ÔªµÄ°üѸËÙ·¢³ö£¬ Æä½Ú×à»á¿ìµ½±ê×¼ÔÊÐíµÄ×î´óÏÞ¶È¡£
ÔÚÈÝÁ¿½ÏСµÄ¿¨ÉÏ£¬ ºóÀ´µÄ°ü»á³åµôͬһµ¥ÔªÄڵĽÏÔçµÄ°ü£¬
Òò¶øÕû¸öµ¥ÔªÎÞ·¨±»Öؽ¨»òÈ·ÈÏ¡£ Æä½á¹ûÊÇ£¬
¹¤×÷Õ¾½«³¬Ê±²¢ÖØÊÔ£¬ µ«ÈÔÈ»ÊÇÍêÕûµÄ 8&nbsp;K µ¥Ôª£¬
ÕâÒ»¹ý³Ì½«ÎÞÐÝÖ¹µØÖظ´ÏÂÈ¥¡£</para>
<para>Èç¹û½«µ¥Ôª³ß´çÏÞÖÆÔÚÒÔÌ«Íø°ü³ß´ç֮ϣ¬
ÎÒÃǾÍÄܹ»È·±£Ã¿Ò»¸öÒÔÌ«Íø°ü¶¼Äܹ»±»¶ÀÁ¢µØ½ÓÊÕºÍÈ·ÈÏ£¬
´Ó¶ø±ÜÃâÁËÉÏÃæµÄËÀËøÇéÐΡ£</para>
<para>Òç³öÔÚ¸ßÐÔÄܹ¤×÷Õ¾½«Êý¾Ý¿âͶÏò PC ϵͳʱÈԻᷢÉú£¬
µ«ÔÚ¸üºÃµÄÍø¿¨ÉÏ£¬ Äܹ»±£Ö¤ÕâÀàÒç³ö²»»áÔÚÿһ¸ö NFS
<quote>µ¥Ôª</quote> É϶¼·¢Éú¡£ µ±³öÏÖÒç³öʱ£¬
±»Ó°ÏìµÄµ¥Ôª±»ÖØ´«£¬ Òò¶ø´ËʱÓкܴóµÄ»ú»áËü½«±»ÕýÈ·½ÓÊÕ¡¢
ÖØ×飬 ²¢È·ÈÏ¡£</para>
</sect2>
</sect1>
<sect1 id="network-nis">
<sect1info>
<authorgroup>
<author>
<firstname>Bill</firstname>
<surname>Swingle</surname>
<contrib>Written by </contrib>
</author>
</authorgroup>
<authorgroup>
<author>
<firstname>Eric</firstname>
<surname>Ogren</surname>
<contrib>Enhanced by </contrib>
</author>
<author>
<firstname>Udo</firstname>
<surname>Erdelhoff</surname>
</author>
</authorgroup>
</sect1info>
<title>ÍøÂçÐÅÏ¢·þÎñ (NIS/YP)</title>
<sect2>
<title>ËüÊÇʲô£¿</title>
<indexterm><primary>NIS</primary></indexterm>
<indexterm><primary>Solaris</primary></indexterm>
<indexterm><primary>HP-UX</primary></indexterm>
<indexterm><primary>AIX</primary></indexterm>
<indexterm><primary>Linux</primary></indexterm>
<indexterm><primary>NetBSD</primary></indexterm>
<indexterm><primary>OpenBSD</primary></indexterm>
<para><acronym role="Network Information System">NIS</acronym>£¬
±íÊ¾ÍøÂçÐÅÏ¢·þÎñ (Network Information Services)£¬
×î³õÓÉ Sun Microsystems ¿ª·¢£¬ ÓÃÓÚ &unix;
(×î³õÊÇ &sunos;) ϵͳµÄ¼¯ÖйÜÀí¡£ Ŀǰ£¬
Ëü»ù±¾ÉÏÒѾ­³ÉΪÁËÒµ½ç±ê×¼£» ËùÓÐÖ÷Á÷µÄÀà &unix; ϵͳ
(&solaris;, HP-UX, &aix;, Linux, NetBSD, OpenBSD, FreeBSD,
µÈµÈ) ¶¼Ö§³Ö <acronym role="Network Information
System">NIS</acronym>¡£</para>
<indexterm><primary>»ÆÒ³ (yellow pages)</primary><see>NIS</see></indexterm>
<para><acronym role="Network Information System">NIS</acronym>
Ò²¾ÍÊÇÈËÃÇËùÊìÖªµÄ»ÆÒ³(Yellow Pages)£¬ µ«ÓÉÓÚÉ̱êµÄÎÊÌ⣬
Sun ½«Æä¸ÄÃûΪÏÖÔÚµÄÃû×Ö¡£ ¾ÉµÄÊõÓï (ÒÔ¼° yp)£¬
ÈÔÈ»¾­³£¿ÉÒÔ¿´µ½£¬ ²¢±»¹ã·ºÊ¹Óá£</para>
<indexterm>
<primary>NIS</primary>
<secondary>Óò</secondary>
</indexterm>
<para>ÕâÊÇÒ»¸ö»ùÓÚ RPC µÄ¿Í»§»ú/·þÎñÆ÷ϵͳ£¬
ËüÔÊÐíÔÚÒ»¸ö NIS ÓòÖеÄÒ»×é»úÆ÷¹²ÏíһϵÁÐÅäÖÃÎļþ¡£
ÕâÑù£¬ ϵͳ¹ÜÀíÔ±¾Í¿ÉÒÔÅäÖÃÖ»°üº¬×î»ù±¾ÅäÖÃÊý¾ÝµÄ NIS ¿Í»§»úϵͳ£¬
²¢ÔÚµ¥µãÉÏÔö¼Ó¡¢ ɾ³ý»òÐÞ¸ÄÅäÖÃÊý¾Ý¡£</para>
<indexterm><primary>Windows NT</primary></indexterm>
<para>¾¡¹ÜʵÏÖµÄÄÚ²¿Ï¸½Ú½ØÈ»²»Í¬£¬ ÕâºÍ &windowsnt; Óòϵͳ·Ç³£ÀàËÆ£¬
ÒÔÖÁÓÚ¿ÉÒÔ½«Á½ÕߵĻù±¾¹¦ÄÜÏ໥Àà±È¡£</para>
</sect2>
<sect2>
<title>ÄúÓ¦¸ÃÖªµÀµÄÊõÓïºÍ½ø³Ì</title>
<para>ÓÐһϵÁÐÊõÓïºÍÖØÒªµÄÓû§½ø³Ì½«ÔÚÄúÔÚ FreeBSD
ÉÏʵÏÖ NIS ʱÓõ½£¬ ÎÞÂÛÊÇÔÚ´´½¨
NIS ·þÎñÆ÷£¬ »ò×÷Ϊ NIS ¿Í»§»ú£º</para>
<indexterm>
<primary><application>rpcbind</application></primary>
</indexterm>
<indexterm>
<primary><application>portmap</application></primary>
</indexterm>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<colspec colwidth="1*">
<colspec colwidth="3*">
<thead>
<row>
<entry>ÊõÓï</entry>
<entry>˵Ã÷</entry>
</row>
</thead>
<tbody>
<row>
<entry>NIS ÓòÃû</entry>
<entry>NIS Ö÷·þÎñÆ÷ºÍËùÓÐÆä¿Í»§»ú
(°üÀ¨´Ó·þÎñÆ÷) »áʹÓÃͬһ NIS ÓòÃû¡£
ºÍ &windowsnt; ÓòÃûÀàËÆ£¬ NIS ÓòÃûÓë
<acronym>DNS</acronym> Î޹ء£</entry>
</row>
<row>
<entry><application>rpcbind</application></entry>
<entry>±ØÐëÔËÐÐÕâ¸ö³ÌÐò£¬ ²ÅÄܹ»ÆôÓÃ
<acronym>RPC</acronym> (Ô¶³Ì¹ý³Ìµ÷Ó㬠NIS
Óõ½µÄÒ»ÖÖÍøÂçЭÒé)¡£ Èç¹ûûÓÐÔËÐÐ
<application>rpcbind</application>£¬
ÔòûÓа취ÔËÐÐ NIS ·þÎñÆ÷£¬
»ò×÷Ϊ NIS ¿Í»§»ú¡£</entry>
</row>
<row>
<entry><application>ypbind</application></entry>
<entry><quote>°ó¶¨(bind)</quote> NIS ¿Í»§»úµ½ËüµÄ NIS
·þÎñÆ÷ÉÏ¡£ ÕâÑù£¬ Ëü½«´ÓϵͳÖлñÈ¡ NIS ÓòÃû£¬
²¢Ê¹Óà <acronym>RPC</acronym> Á¬½Óµ½·þÎñÆ÷ÉÏ¡£
<application>ypbind</application> ÊÇ NIS »·¾³ÖУ¬
¿Í»§»ú-·þÎñÆ÷ͨѶµÄºËÐÄ£» Èç¹û¿Í»§»úÉϵÄ
<application>ypbind</application> ËÀµôµÄ»°£¬ Ëü½«ÎÞ·¨·ÃÎÊ
NIS ·þÎñÆ÷¡£</entry>
</row>
<row>
<entry><application>ypserv</application></entry>
<entry>Ö»Ó¦ÔÚ NIS ·þÎñÆ÷ÉÏÔËÐÐËü£» ÕâÊÇ NIS µÄ·þÎñÆ÷½ø³Ì¡£
Èç¹û &man.ypserv.8; ËÀµôµÄ»°£¬
Ôò·þÎñÆ÷½«²»ÔÙ¾ßÓÐÏìÓ¦ NIS ÇëÇóµÄÄÜÁ¦ (´Ëʱ£¬
Èç¹ûÓдӷþÎñÆ÷µÄ»°£¬ Ôò»á½Ó¹Ü²Ù×÷)¡£ ÓÐһЩ NIS
µÄʵÏÖ (µ«²»ÊÇ FreeBSD µÄÕâ¸ö) µÄ¿Í»§»úÉÏ£¬
Èç¹û֮ǰÓùýÒ»¸ö·þÎñÆ÷£¬ ¶øÄÇ̨·þÎñÆ÷ËÀµôµÄ»°£¬
²¢²»³¢ÊÔÖØÐÂÁ¬½Óµ½ÁíÒ»¸ö·þÎñÆ÷¡£ ͨ³££¬
·¢ÉúÕâÖÖÇé¿öʱ£¬ ΨһµÄ°ì·¨¾ÍÊÇÖØÐÂÆô¶¯·þÎñÆ÷½ø³Ì
(»òÕߣ¬ ÉõÖÁÖØÐÂÆô¶¯·þÎñÆ÷) »ò¿Í»§»úÉϵÄ
<application>ypbind</application> ½ø³Ì¡£
</entry>
</row>
<row>
<entry><application>rpc.yppasswdd</application></entry>
<entry>ÁíÒ»¸öÖ»Ó¦ÔÚ
NIS Ö÷·þÎñÆ÷ÉÏÔËÐеĽø³Ì£» ÕâÊÇÒ»¸ö·þÎñ³ÌÐò£¬
Æä×÷ÓÃÊÇÔÊÐí NIS ¿Í»§»ú¸Ä±äËüÃÇµÄ NIS ¿ÚÁî¡£
Èç¹ûûÓÐÔËÐÐÕâ¸ö·þÎñ£¬ Óû§½«±ØÐëµÇ¼µ½ NIS
Ö÷·þÎñÆ÷ÉÏ£¬ ²¢ÔÚÄÇÀïÐ޸ĿÚÁî¡£</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<!-- XXX Missing: rpc.ypxfrd (not important, though) May only run
on the master -->
</sect2>
<sect2>
<title>ËüÊÇÈçºÎ¹¤×÷µÄ£¿</title>
<para>ÔÚ NIS »·¾³ÖУ¬ ÓÐÈýÖÖÀàÐ͵ÄÖ÷»ú£º
Ö÷·þÎñÆ÷£¬ ´Ó·þÎñÆ÷£¬ ÒÔ¼°¿Í»§»ú¡£
·þÎñÆ÷µÄ×÷ÓÃÊdz䵱Ö÷»úÅäÖÃÐÅÏ¢µÄÖÐÑëÊý¾Ý¿â¡£
Ö÷·þÎñÆ÷Éϱ£´æ×ÅÕâЩÐÅÏ¢µÄȨÍþ¸±±¾£¬
¶ø´Ó·þÎñÆ÷ÔòÊDZ£´æÕâЩÐÅÏ¢µÄÈßÓั±¾¡£
¿Í»§»úÒÀÀµÓÚ·þÎñÆ÷ÏòËüÃÇÌṩÕâЩÐÅÏ¢¡£</para>
<para>Ðí¶àÎļþµÄÐÅÏ¢¿ÉÒÔͨ¹ýÕâÖÖ·½Ê½À´¹²Ïí¡£
ͨ³£Çé¿öÏ£¬ <filename>master.passwd</filename>¡¢
<filename>group</filename>£¬ ÒÔ¼° <filename>hosts</filename>
ÊÇͨ¹ý NIS ·Ö·¢µÄ¡£ ÎÞÂÛʲôʱºò£¬
Èç¹û¿Í»§»úÉϵÄij¸ö½ø³ÌÇëÇóÕâЩ±¾Ó¦ÔÚ±¾µØµÄÎļþÖеÄ×ÊÁϵÄʱºò£¬
Ëü¶¼»áÏòËù°ó¶¨µÄ NIS ·þÎñÆ÷·¢³öÇëÇó£¬ ¶ø²»Ê¹Óñ¾µØµÄ°æ±¾¡£</para>
<sect3>
<title>»úÆ÷ÀàÐÍ</title>
<itemizedlist>
<indexterm>
<primary>NIS</primary>
<secondary>Ö÷·þÎñÆ÷</secondary>
</indexterm>
<listitem>
<para>һ̨ <emphasis>NIS Ö÷·þÎñÆ÷</emphasis>¡£
Õą̂·þÎñÆ÷£¬ ºÍ &windowsnt; Óò¿ØÖÆÆ÷ÀàËÆ£¬
»áά»¤ËùÓÐ NIS ¿Í»§»úËùʹÓõÄÎļþ¡£ <filename>passwd</filename>£¬
<filename>group</filename>£¬ ÒÔ¼°Ðí¶àÆäËû NIS
¿Í»§»úËùʹÓõÄÎļþ£¬ ¶¼±»´æ·Åµ½Ö÷·þÎñÆ÷ÉÏ¡£</para>
<note><para>¿ÉÒÔ½«Ò»Ì¨ NIS Ö÷·þÎñÆ÷ÓÃÔÚ¶à¸ö NIS ÓòÖС£
È»¶ø£¬ ±¾Êé²»´òËã¶ÔÕâÖÖÅäÖýøÐнéÉÜ£¬
ÒòΪÕâÖÖÅäÖ㬠ͨ³£Ö»³öÏÖÔÚС¹æÄ£µÄ NIS »·¾³ÖС£</para></note>
</listitem>
<indexterm>
<primary>NIS</primary>
<secondary>´Ó·þÎñÆ÷</secondary>
</indexterm>
<listitem>
<para><emphasis>NIS ´Ó·þÎñÆ÷</emphasis>¡£ ÕâÒ»¸ÅÄ
Óë &windowsnt; µÄ±¸·ÝÓò¿ØÖÆÆ÷ÀàËÆ¡£ NIS ´Ó·þÎñÆ÷£¬
ÓÃÓÚά»¤ NIS Ö÷·þÎñÆ÷µÄÊý¾ÝÎļþ¸±±¾¡£
NIS ´Ó·þÎñÆ÷ÌṩÁËÒ»ÖÖÈßÓ࣬
ÕâÔÚÐí¶àÖØÒªµÄ»·¾³ÖÐÊDZØÐèµÄ¡£ ´ËÍ⣬
ËüÒ²°ïÖú¼õÇáÁËÖ÷·þÎñÆ÷µÄ¸ººÉ£º NIS
¿Í»§»ú×ÜÊǹҽӵ½×îÏÈÏìÓ¦ËüÃÇµÄ NIS ·þÎñÆ÷ÉÏ£¬
¶øÕâÒ²°üÀ¨À´×Ô´Ó·þÎñÆ÷µÄÏìÓ¦¡£</para>
</listitem>
<indexterm>
<primary>NIS</primary>
<secondary>¿Í»§»ú</secondary>
</indexterm>
<listitem>
<para><emphasis>NIS ¿Í»§»ú</emphasis>¡£ NIS ¿Í»§»ú£¬
ºÍ¶àÊý &windowsnt; ¹¤×÷Õ¾ÀàËÆ£¬ ͨ¹ý
NIS ·þÎñÆ÷ (»ò¶ÔÓÚ &windowsnt; ¹¤×÷Õ¾£¬ ÔòÊÇ
&windowsnt; Óò¿ØÖÆÆ÷) À´Íê³ÉµÇ¼ʱµÄÉí·ÝÑéÖ¤¹ý³Ì¡£</para>
</listitem>
</itemizedlist>
</sect3>
</sect2>
<sect2>
<title>ʹÓà NIS/YP</title>
<para>ÕâÒ»½Ú½«Í¨¹ýʵÀý½éÉÜÈçºÎÅäÖà NIS »·¾³¡£</para>
<sect3>
<title>¹æ»®</title>
<para>¼Ù¶¨ÄúÕýÔÚ¹ÜÀí´óѧÖеÄÒ»¸öСÐÍʵÑéÊÒ¡£ ÔÚÕâ¸öʵÑéÊÒÖУ¬
ÓÐ 15 ̨ FreeBSD »úÆ÷£¬ ĿǰÉÐûÓм¯ÖеĹÜÀíµã£»
ÿһ̨»úÆ÷ÉÏÓÐ×Ô¼ºµÄ
<filename>/etc/passwd</filename> ºÍ
<filename>/etc/master.passwd</filename>¡£
ÕâЩÎļþͨ¹ýÈ˹¤¸ÉÔ¤µÄ·½·¨À´±£³ÖÓëÆäËû»úÆ÷Éϰ汾µÄͬ²½£»
Ŀǰ£¬ Èç¹ûÄúÔÚʵÑéÊÒÖÐÔö¼ÓÒ»¸öÓû§£¬ ½«²»µÃ²»ÔÚËùÓÐ 15
̨»úÆ÷ÉÏÊÖ¹¤Ö´ÐÐ <command>adduser</command> ÃüÁî¡£
ÎãÓ¹ÖÃÒÉ£¬ ÕâÒ»ÏÖ×´±ØÐë¸Ä±ä£¬
Òò´ËÄú¾ö¶¨½«Õû¸öʵÑéÊÒתΪʹÓà NIS£¬
²¢Ê¹ÓÃÁ½Ì¨»úÆ÷×÷Ϊ·þÎñÆ÷¡£</para>
<para>Òò´Ë£¬ ʵÑéÊÒµÄÅäÖÃÓ¦¸ÃÊÇÕâÑùµÄ£º</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="3">
<thead>
<row>
<entry>»úÆ÷Ãû</entry>
<entry>IP µØÖ·</entry>
<entry>»úÆ÷µÄ½ÇÉ«</entry>
</row>
</thead>
<tbody>
<row>
<entry><hostid>ellington</hostid></entry>
<entry><hostid role="ipaddr">10.0.0.2</hostid></entry>
<entry>NIS Ö÷·þÎñÆ÷</entry>
</row>
<row>
<entry><hostid>coltrane</hostid></entry>
<entry><hostid role="ipaddr">10.0.0.3</hostid></entry>
<entry>NIS ´Ó·þÎñÆ÷</entry>
</row>
<row>
<entry><hostid>basie</hostid></entry>
<entry><hostid role="ipaddr">10.0.0.4</hostid></entry>
<entry>½ÌÔ±¹¤×÷Õ¾</entry>
</row>
<row>
<entry><hostid>bird</hostid></entry>
<entry><hostid role="ipaddr">10.0.0.5</hostid></entry>
<entry>¿Í»§»ú</entry>
</row>
<row>
<entry><hostid>cli[1-11]</hostid></entry>
<entry><hostid role="ipaddr">10.0.0.[6-17]</hostid></entry>
<entry>ÆäËû¿Í»§»ú</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Èç¹ûÄúÊÇÊ×´ÎÅäÖà NIS£¬ ×Ðϸ˼¿¼ÈçºÎ½øÐй滮¾ÍÊ®·ÖÖØÒª¡£
ÎÞÂÛÄúµÄÍøÂçµÄ´óСÈçºÎ£¬ ¶¼±ØÐë½øÐм¸¸ö¾ö²ß¡£</para>
<sect4>
<title>Ñ¡Ôñ NIS ÓòÃû</title>
<indexterm>
<primary>NIS</primary>
<secondary>ÓòÃû</secondary>
</indexterm>
<para>Õâ¿ÉÄܲ»ÊÇÄú¹ýȥʹÓÃµÄ <quote>ÓòÃû(domainname)</quote>¡£
ËüµÄ¹æ·¶µÄ½Ð·¨£¬ Ó¦¸ÃÊÇ
<quote>NIS ÓòÃû</quote>¡£ µ±¿Í»§»ú¹ã²¥¶Ô´ËÐÅÏ¢µÄÇëÇóʱ£¬
Ëü»á½« NIS ÓòµÄÃû×Ö×÷ΪÇëÇóµÄÒ»²¿·Ö·¢³ö¡£ ÕâÑù£¬
Í³Ò»ÍøÂçÉϵĶà¸ö·þÎñÆ÷£¬ ¾ÍÄܹ»ÖªµÀË­Ó¦¸Ã»ØÓ¦ÇëÇó¡£
Äú¿ÉÒÔ°Ñ NIS ÓòÃûÏëÏó³ÉÒÔijÖÖ·½Ê½Ïà¹ØµÄÒ»×éÖ÷»úµÄÃû×Ö¡£</para>
<para>һЩ»ú¹¹»áÑ¡ÔñʹÓÃËüÃÇµÄ Internet
ÓòÃûÀ´×÷Ϊ NIS ÓòÃû¡£ ²¢²»ÍƼöÕâÑù×ö£¬ ÒòΪÔÚµ÷ÊÔÍøÂçÎÊÌâʱ£¬
Õâ¿ÉÄܻᵼÖ²»±ØÒªµÄÀ§ÈÅ¡£ NIS ÓòÃûÓ¦¸ÃÊÇÔÚÄúÍøÂçÉÏΨһµÄ£¬
²¢ÇÒÓÐÖúÓÚÁ˽âËüËùÃèÊöµÄµ½µ×ÊÇÄÄÒ»×é»úÆ÷¡£ ÀýÈç¶ÔÓÚ Acme
¹«Ë¾µÄÃÀ¹¤²¿ÃÅ£¬ ¿ÉÒÔ¿¼ÂÇʹÓÃ
<quote>acme-art</quote> ÕâÑùµÄ NIS ÓòÃû¡£
ÔÚÕâ¸öÀý×ÓÖУ¬ ÄúʹÓõÄÓòÃûÊÇ
<literal>test-domain</literal>¡£</para>
<indexterm><primary>SunOS</primary></indexterm>
<para>È»¶ø£¬ ijЩ²Ù×÷ϵͳ (×îÖøÃûµÄÊÇ &sunos;)
»áʹÓÃÆä NIS ÓòÃû×÷Ϊ Internet ÓòÃû¡£
Èç¹ûÄúµÄÍøÂçÉÏ´æÔÚ°üº¬ÕâÀàÏÞÖÆµÄ»úÆ÷£¬ ¾Í
<emphasis>±ØÐë</emphasis> ʹÓà Internet ÓòÃûÀ´×÷ΪÄúµÄ NIS ÓòÃû¡£</para>
</sect4>
<sect4>
<title>·þÎñÆ÷µÄÎïÀíÒªÇó</title>
<para>Ñ¡Ôñ NIS ·þÎñÆ÷ʱ£¬ ÐèҪʱ¿ÌÀμÇһЩ¶«Î÷¡£
NIS µÄÒ»¸ö²»Ì«ºÃµÄÌØÐÔ¾ÍÊÇÆä¿Í»§»ú¶ÔÓÚ·þÎñÆ÷µÄÒÀÀµ³Ì¶È¡£
Èç¹û¿Í»§»úÎÞ·¨ÓëÆä NIS ÓòµÄ·þÎñÆ÷ÁªÏµ£¬
ÔòÕą̂»úÆ÷ͨ³£»áÏÝÓÚ²»¿ÉÓõÄ״̬¡£ ȱÉÙÓû§ºÍ×éÐÅÏ¢£¬
»áʹ¾ø´ó¶àÊýϵͳ½øÈë¶ÌÔݵͳ½á״̬¡£ »ùÓÚÕâÑùµÄ¿¼ÂÇ£¬
ÄúÐèҪѡÔñһ̨²»¾­³£ÖØÐÂÆô¶¯£¬ »òÓÃÓÚ¿ª·¢µÄ»úÆ÷À´³Ðµ£ÆäÔðÈΡ£
Èç¹ûÄúµÄÍøÂ粻̫棬 Ò²¿ÉÒÔʹÓÃÔËÐÐ×ÅÆäËû·þÎñµÄ»úÆ÷À´°²·Å NIS
·þÎñ£¬ Ö»ÊÇÐèҪעÒ⣬ Ò»µ© NIS ·þÎñÆ÷²»¿ÉÓ㬠Ôò
<emphasis>ËùÓÐ</emphasis> µÄ NIS ¿Í»§»ú¶¼»áÊܵ½Ó°Ïì¡£</para>
</sect4>
</sect3>
<sect3>
<title>NIS ·þÎñÆ÷</title>
<para>ËùÓÐµÄ NIS ÐÅÏ¢µÄÕý¹æ°æ±¾£¬
¶¼±»±£´æÔÚһ̨µ¥¶ÀµÄ³Æ×÷ NIS Ö÷·þÎñÆ÷µÄ»úÆ÷ÉÏ¡£
ÓÃÓÚ±£´æÕâЩÐÅÏ¢µÄÊý¾Ý¿â£¬ ³ÆÎª NIS Ó³Éä(map)¡£
ÔÚ FreeBSD ÖУ¬ ÕâЩӳÉä±»±£´æÔÚ
<filename>/var/yp/[domainname]</filename> À ÆäÖÐ
<filename>[domainname]</filename> ÊÇÌṩ·þÎñµÄ NIS
ÓòµÄÃû×Ö¡£ һ̨ NIS ·þÎñÆ÷£¬ ¿ÉÒÔͬʱ֧³Ö¶à¸öÓò£¬
Òò´Ë¿ÉÒÔ½¨Á¢ºÜ¶àÕâÑùµÄĿ¼£¬ ËùÖ§³ÅÒ»¸öÓò¶ÔÓ¦Ò»¸ö¡£
ÿһ¸öÓò¶¼»áÓÐÒ»×é¶ÀÁ¢µÄÓ³Éä¡£</para>
<para>NIS Ö÷ºÍ´Ó·þÎñÆ÷£¬ ͨ¹ý <command>ypserv</command>
·þÎñ³ÌÐòÀ´´¦ÀíËùÓÐµÄ NIS ÇëÇó¡£
<command>ypserv</command> ÓÐÔðÈνÓÊÕÀ´×Ô NIS ¿Í»§»úµÄÇëÇó£¬
·­ÒëÇëÇóµÄÓò£¬ ²¢½«Ãû×ÖÓ³ÉäΪÏà¹ØµÄÊý¾Ý¿âÎļþµÄ·¾¶£¬
È»ºó½«À´×ÔÊý¾Ý¿âµÄÊý¾Ý´«»Ø¿Í»§»ú¡£</para>
<sect4>
<title>ÅäÖà NIS Ö÷·þÎñÆ÷</title>
<indexterm>
<primary>NIS</primary>
<secondary>·þÎñÆ÷ÅäÖÃ</secondary>
</indexterm>
<para>ÅäÖÃÖ÷ NIS ·þÎñÆ÷Ïà¶Ô¶øÑÔÊ®·ÖµÄ¼òµ¥£¬
¶øÆä¾ßÌå²½ÖèÔòÈ¡¾öÓÚÄúµÄÐèÒª¡£ FreeBSD
ÌṩÁËÒ»²½µ½Î»µÄ NIS Ö§³Ö¡£ ÄúÐèÒª×öµÄÈ«²¿ÊÂÇ飬 Ö»ÊÇÔÚ
<filename>/etc/rc.conf</filename> ÖмÓÈëһЩÅäÖã¬
ÆäËû¹¤×÷»áÓÉ FreeBSD Íê³É¡£</para>
<procedure>
<step>
<para><programlisting>nisdomainname="test-domain"</programlisting>
ÕâÒ»Ðн«ÔÚÍøÂçÆô¶¯ (ÀýÈçÖØÐÂÆô¶¯) ʱ£¬ °Ñ NIS ÓòÃûÅäÖÃΪ
<literal>test-domain</literal>¡£</para>
</step>
<step>
<para><programlisting>nis_server_enable="YES"</programlisting>
Õ⽫ҪÇó FreeBSD ÔÚÍøÂç×ÓϵͳÆô¶¯Ö®ºóÁ¢¼´Æô¶¯
NIS ·þÎñ½ø³Ì¡£</para>
</step>
<step>
<para><programlisting>nis_yppasswdd_enable="YES"</programlisting>
Õ⽫ÆôÓà <command>rpc.yppasswdd</command>
·þÎñ³ÌÐò£¬ ÈçÇ°ÃæÌáµ½µÄ£¬
ËüÔÊÐíÓû§ÔÚ¿Í»§»úÉÏÐÞ¸Ä×Ô¼ºµÄ NIS ¿ÚÁî¡£</para>
</step>
</procedure>
<note>
<para>Ëæ NIS ÅäÖõIJ»Í¬£¬ ¿ÉÄÜ»¹ÐèÒªÔö¼ÓÆäËûһЩÏîÄ¿¡£ Çë²Î¼û <link
linkend="network-nis-server-is-client">¹ØÓÚ NIS ·þÎñÆ÷ͬʱ³äµ± NIS
¿Í»§»ú</link> ÕâÒ»½Ú£¬ ÒÔÁË½â½øÒ»²½µÄÇé¿ö¡£</para>
</note>
<para>ÉèÖúÃÇ°ÃæÕâЩÅäÖÃÖ®ºó£¬ ÐèÒªÒÔ³¬¼¶Óû§Éí·ÝÔËÐÐ
<command>/etc/netstart</command> ÃüÁî¡£ Ëü»á¸ù¾Ý
<filename>/etc/rc.conf</filename> µÄÉèÖÃÀ´ÅäÖÃϵͳÖÐµÄÆäËû²¿·Ö¡£
×îºó£¬ ÔÚ³õʼ»¯ NIS Ó³Éä֮ǰ£¬ »¹ÐèÒªÊÖ¹¤Æô¶¯
<application>ypserv</application> ·þÎñ³ÌÐò£º</para>
<screen>&prompt.root; <userinput>/etc/rc.d/ypserv start</userinput></screen>
</sect4>
<sect4>
<title>³õʼ»¯ NIS Ó³Éä</title>
<indexterm>
<primary>NIS</primary>
<secondary>Ó³Éä</secondary>
</indexterm>
<para><emphasis>NIS Ó³Éä</emphasis> ÊÇһЩÊý¾Ý¿âÎļþ£¬
ËüÃÇλÓÚ <filename>/var/yp</filename> Ŀ¼ÖС£
ÕâЩÎļþ»ù±¾É϶¼ÊǸù¾Ý NIS Ö÷·þÎñÆ÷µÄ <filename>/etc</filename>
Ŀ¼×Ô¶¯Éú³ÉµÄ£¬ ΨһµÄÀýÍâÊÇ£º
<filename>/etc/master.passwd</filename> Îļþ¡£ Ò»°ãÀ´Ëµ£¬
Äú»áÓзdz£³ä·ÖµÄÀíÓɲ»½« <username>root</username>
ÒÔ¼°ÆäËû¹ÜÀíÕʺŵĿÚÁî·¢µ½ËùÓÐ NIS ÓòÉϵķþÎñÆ÷ÉÏ¡£
Òò´Ë£¬ ÔÚ¿ªÊ¼³õʼ»¯ NIS Ó³Éä֮ǰ£¬ ÎÒÃÇÓ¦¸Ã£º</para>
<screen>&prompt.root; <userinput>cp /etc/master.passwd /var/yp/master.passwd</userinput>
&prompt.root; <userinput>cd /var/yp</userinput>
&prompt.root; <userinput>vi master.passwd</userinput></screen>
<para>ÕâÀ ɾ³ýµôºÍϵͳÓйصÄÕʺŶÔÓ¦µÄÏî (<username>bin</username>¡¢
<username>tty</username>¡¢ <username>kmem</username>¡¢
<username>games</username>£¬ µÈµÈ)£¬
ÒÔ¼°ÆäËû²»Ï£Íû±»À©É¢µ½ NIS ¿Í»§»úµÄÕʺÅ
(ÀýÈç <username>root</username> ºÍÈÎºÎÆäËû UID 0
(³¬¼¶Óû§) µÄÕʺÅ)¡£</para>
<note><para>È·ÈÏ
<filename>/var/yp/master.passwd</filename> Õâ¸öÎļþÊÇͬ×éÓû§£¬
ÒÔ¼°ÆäËûÓû§²»¿É¶ÁµÄ (ģʽ 600)£¡ Èç¹ûÐèÒªµÄ»°£¬ ÓÃ
<command>chmod</command> ÃüÁîÀ´¸ÄËü¡£</para></note>
<indexterm><primary>Tru64 UNIX</primary></indexterm>
<para>Íê³ÉÕâЩ¹¤×÷Ö®ºó£¬ ¾Í¿ÉÒÔ³õʼ»¯
NIS Ó³ÉäÁË£¡ FreeBSD ÌṩÁËÒ»¸öÃûΪ
<command>ypinit</command> µÄ½Å±¾À´°ïÖúÄúÍê³ÉÕâÏ×÷ (ÏêϸÐÅÏ¢£¬
Çë¼ûÆäÁª»úÊÖ²á)¡£ Çë×¢Ò⣬ Õâ¸ö½Å±¾ÔÚ¾ø´ó¶àÊý &unix;
²Ù×÷ϵͳÉ϶¼¿ÉÒÔÕÒµ½£¬ µ«²¢²»ÊÇËùÓвÙ×÷ϵͳµÄ¶¼Ìṩ¡£
ÔÚ Digital UNIX/Compaq Tru64 UNIX ÉÏËüµÄÃû×ÖÊÇ
<command>ypsetup</command>¡£ ÓÉÓÚÎÒÃÇÕýÔÚÉú³ÉµÄÊÇ NIS
Ö÷·þÎñÆ÷µÄÓ³É䣬 Òò´ËÓ¦¸ÃʹÓà <command>ypinit</command> µÄ
<option>-m</option> ²ÎÊý¡£ Èç¹ûÒѾ­Íê³ÉÁËÉÏÊö²½Ö裬
ÒªÉú³É NIS Ó³É䣬 Ö»ÐèÖ´ÐУº</para>
<screen>ellington&prompt.root; <userinput>ypinit -m test-domain</userinput>
Server Type: MASTER Domain: test-domain
Creating an YP server will require that you answer a few questions.
Questions will all be asked at the beginning of the procedure.
Do you want this procedure to quit on non-fatal errors? [y/n: n] <userinput>n</userinput>
Ok, please remember to go back and redo manually whatever fails.
If you don't, something might not work.
At this point, we have to construct a list of this domains YP servers.
rod.darktech.org is already known as master server.
Please continue to add any slave servers, one per line. When you are
done with the list, type a &lt;control D&gt;.
master server : ellington
next host to add: <userinput>coltrane</userinput>
next host to add: <userinput>^D</userinput>
The current list of NIS servers looks like this:
ellington
coltrane
Is this correct? [y/n: y] <userinput>y</userinput>
[..output from map generation..]
NIS Map update completed.
ellington has been setup as an YP master server without any errors.</screen>
<para><command>ypinit</command> Ó¦¸Ã»á¸ù¾Ý
<filename>/var/yp/Makefile.dist</filename> À´´´½¨
<filename>/var/yp/Makefile</filename> Îļþ¡£
´´½¨ÍêÖ®ºó£¬ Õâ¸öÎļþ»á¼Ù¶¨ÄúÕýÔÚ²Ù×÷Ö»ÓÐ FreeBSD
»úÆ÷µÄµ¥·þÎñÆ÷ NIS »·¾³¡£ ÓÉÓÚ <literal>test-domain</literal>
»¹ÓÐÒ»¸ö´Ó·þÎñÆ÷£¬ Äú±ØÐë±à¼­
<filename>/var/yp/Makefile</filename>£º</para>
<screen>ellington&prompt.root; <userinput>vi /var/yp/Makefile</userinput></screen>
<para>Ó¦¸ÃÄܹ»¿´µ½ÕâÑùÒ»ÐУ¬ ÆäÄÚÈÝÊÇ</para>
<programlisting>NOPUSH = "True"</programlisting>
<para>(Èç¹û»¹Ã»ÓÐ×¢Ê͵ôµÄ»°)¡£</para>
</sect4>
<sect4>
<title>ÅäÖà NIS ´Ó·þÎñÆ÷</title>
<indexterm>
<primary>NIS</primary>
<secondary>´Ó·þÎñÆ÷</secondary>
</indexterm>
<para>ÅäÖà NIS ´Ó·þÎñÆ÷£¬ ÉõÖÁ±ÈÅäÖÃÖ÷·þÎñÆ÷»¹Òª¼òµ¥¡£
µÇ¼µ½´Ó·þÎñÆ÷ÉÏ£¬ ²¢°´ÕÕÇ°ÃæµÄ·½·¨£¬
±à¼­ <filename>/etc/rc.conf</filename> Îļþ¡£ ΨһµÄÇø±ðÊÇ£¬
ÔÚÔËÐÐ <command>ypinit</command> ʱÐèҪʹÓÃ
<option>-s</option> ²ÎÊý¡£
ÕâÀïµÄ <option>-s</option> Ñ¡Ï ͬʱҪÇóÌṩ NIS
Ö÷·þÎñÆ÷µÄÃû×Ö£¬ Òò´ËÎÒÃǵÄÃüÁîÐÐÓ¦¸ÃÊÇ£º</para>
<screen>coltrane&prompt.root; <userinput>ypinit -s ellington test-domain</userinput>
Server Type: SLAVE Domain: test-domain Master: ellington
Creating an YP server will require that you answer a few questions.
Questions will all be asked at the beginning of the procedure.
Do you want this procedure to quit on non-fatal errors? [y/n: n] <userinput>n</userinput>
Ok, please remember to go back and redo manually whatever fails.
If you don't, something might not work.
There will be no further questions. The remainder of the procedure
should take a few minutes, to copy the databases from ellington.
Transferring netgroup...
ypxfr: Exiting: Map successfully transferred
Transferring netgroup.byuser...
ypxfr: Exiting: Map successfully transferred
Transferring netgroup.byhost...
ypxfr: Exiting: Map successfully transferred
Transferring master.passwd.byuid...
ypxfr: Exiting: Map successfully transferred
Transferring passwd.byuid...
ypxfr: Exiting: Map successfully transferred
Transferring passwd.byname...
ypxfr: Exiting: Map successfully transferred
Transferring group.bygid...
ypxfr: Exiting: Map successfully transferred
Transferring group.byname...
ypxfr: Exiting: Map successfully transferred
Transferring services.byname...
ypxfr: Exiting: Map successfully transferred
Transferring rpc.bynumber...
ypxfr: Exiting: Map successfully transferred
Transferring rpc.byname...
ypxfr: Exiting: Map successfully transferred
Transferring protocols.byname...
ypxfr: Exiting: Map successfully transferred
Transferring master.passwd.byname...
ypxfr: Exiting: Map successfully transferred
Transferring networks.byname...
ypxfr: Exiting: Map successfully transferred
Transferring networks.byaddr...
ypxfr: Exiting: Map successfully transferred
Transferring netid.byname...
ypxfr: Exiting: Map successfully transferred
Transferring hosts.byaddr...
ypxfr: Exiting: Map successfully transferred
Transferring protocols.bynumber...
ypxfr: Exiting: Map successfully transferred
Transferring ypservers...
ypxfr: Exiting: Map successfully transferred
Transferring hosts.byname...
ypxfr: Exiting: Map successfully transferred
coltrane has been setup as an YP slave server without any errors.
Don't forget to update map ypservers on ellington.</screen>
<para>ÏÖÔÚÓ¦¸Ã»áÓÐÒ»¸ö½Ð×ö
<filename>/var/yp/test-domain</filename> µÄĿ¼¡£
ÔÚÕâ¸öĿ¼ÖУ¬ Ó¦¸Ã±£´æ NIS Ö÷·þÎñÆ÷ÉϵÄÓ³ÉäµÄ¸±±¾¡£
½ÓÏÂÀ´ÐèҪȷ¶¨ÕâЩÎļþ¶¼¼°Ê±µØÍ¬²½¸üÐÂÁË¡£ ÔÚ´Ó·þÎñÆ÷ÉÏ£¬ ÏÂÃæµÄ
<filename>/etc/crontab</filename> Ï°ïÖúÄúÈ·±£ÕâÒ»µã£º</para>
<programlisting>20 * * * * root /usr/libexec/ypxfr passwd.byname
21 * * * * root /usr/libexec/ypxfr passwd.byuid</programlisting>
<para>ÕâÁ½Ðн«Ç¿ÖÆ´Ó·þÎñÆ÷½«Ó³ÉäÓëÖ÷·þÎñÆ÷ͬ²½¡£
ÓÉÓÚÖ÷·þÎñÆ÷»á³¢ÊÔÈ·±£ËùÓÐÆä NIS Ó³ÉäµÄ±ä¶¯¶¼Öª»á´Ó·þÎñÆ÷£¬
Òò´ËÕâЩÏî²¢²»ÊǾø¶Ô±ØÐèµÄ£¬ ¾¡¹ÜÈç´Ë£¬
Ç¿ÖÆ¸üÐÂÄܹ»±£Ö¤ÕâЩ¶ÔÒÀÀµÓÚ·þÎñÆ÷µÄϵͳÖÁ¹ØÖØÒªµÄ¿ÚÁîÐÅÏ¢¼°Ê±µØÍ¬²½¡£
ͬʱ£¬ ÔÚ·±Ã¦µÄÍøÂçÉÏ£¬ ÓÐʱҲ»á³öÏÖÓ³Éäͬ²½¸üв»ÍêÈ«µÄÇé¿ö¡£</para>
<para>ÏÖÔÚ£¬ ÔÚ´Ó·þÎñÆ÷ÉÏÖ´ÐÐ <command>/etc/netstart</command>£¬
¾Í¿ÉÒÔÆô¶¯ NIS ·þÎñÁË¡£</para>
</sect4>
</sect3>
<sect3>
<title>NIS ¿Í»§»ú</title>
<para>NIS ¿Í»§»ú»áͨ¹ý
<command>ypbind</command> ·þÎñ³ÌÐòÀ´ÓëÌØ¶¨µÄ NIS
·þÎñÆ÷½¨Á¢Ò»ÖÖ³Æ×÷°ó¶¨µÄÁªÏµ¡£
<command>ypbind</command> »á¼ì²éϵͳµÄĬÈÏÓò
(ÕâÊÇͨ¹ý <command>domainname</command> ÃüÁîÀ´ÉèÖõÄ)£¬
²¢¿ªÊ¼ÔÚ±¾µØÍøÂçÉϹ㲥 RPC ÇëÇó¡£ ÕâЩÇëÇó»áÖ¸¶¨
<command>ypbind</command> ³¢Ê԰󶨵ÄÓòÃû¡£
Èç¹ûÒѾ­ÅäÖÃÁË·þÎñÆ÷£¬ ²¢ÇÒÕâЩ·þÎñÆ÷½Óµ½Á˹㲥£¬ Ëü½«»ØÓ¦
<command>ypbind</command>£¬ ºóÕßÔò¼Ç¼·þÎñÆ÷µÄµØÖ·¡£
Èç¹ûÓжà¸ö¿ÉÓõķþÎñÆ÷ (ÀýÈçÒ»¸öÖ÷·þÎñÆ÷£¬ ¼ÓÉ϶à¸ö´Ó·þÎñÆ÷)£¬
<command>ypbind</command> ½«Ê¹ÓõÚÒ»¸öÏìÓ¦µÄµØÖ·¡£
´ÓÕâһʱ¿Ì¿ªÊ¼£¬ ¿Í»§»ú»á°ÑËùÓÐµÄ NIS ÇëÇóÖ±½Ó·¢¸øÄǸö·þÎñÆ÷¡£
<command>ypbind</command> ż¶û»á <quote>ping</quote>
·þÎñÆ÷ÒÔÈ·ÈÏÆäÈÔÈ»ÔÚÕý³£ÔËÐС£ Èç¹ûÔÚºÏÀíµÄʱ¼äÄÚûÓеõ½ÏìÓ¦£¬ Ôò
<command>ypbind</command> »á°ÑÓò±ê¼ÇΪδ°ó¶¨£¬ ²¢Ôٴη¢Æð¹ã²¥£¬
ÒÔÆÚÕÒµ½Áíһ̨·þÎñÆ÷¡£</para>
<sect4>
<title>ÉèÖÃ NIS ¿Í»§»ú</title>
<indexterm>
<primary>NIS</primary>
<secondary>¿Í»§»úÅäÖÃ</secondary>
</indexterm>
<para>ÅäÖÃһ̨ FreeBSD »úÆ÷×÷Ϊ NIS ¿Í»§»úÊǷdz£¼òµ¥µÄ¡£</para>
<procedure>
<step>
<para>±à¼­ <filename>/etc/rc.conf</filename> Îļþ£¬
²¢ÔÚÆäÖмÓÉÏÏÂÃæ¼¸ÐУ¬ ÒÔÉèÖà NIS ÓòÃû£¬
²¢ÔÚÍøÂçÆô¶¯Ê±Æô¶¯ <command>ypbind</command>£º</para>
<programlisting>nisdomainname="test-domain"
nis_client_enable="YES"</programlisting>
</step>
<step>
<para>Òª´Ó NIS ·þÎñÆ÷µ¼ÈëËùÓеĿÚÁîÏ
ÐèÒª´ÓÄúµÄ
<filename>/etc/master.passwd</filename> ÎļþÖÐɾ³ýËùÓÐÓû§£¬
²¢Ê¹ÓÃ
<command>vipw</command> ÔÚÕâ¸öÎļþµÄ×îºóÒ»ÐмÓÈ룺</para>
<programlisting>+:::::::::</programlisting>
<note>
<para>ÕâÒ»Ðн«Èà NFS ·þÎñÆ÷µÄ¿ÚÁîÓ³ÉäÖеÄÕʺÅÄܹ»µÇ¼¡£
Ò²ÓкܶàÐÞ¸ÄÕâÒ»ÐÐÀ´ÅäÖà NIS ¿Í»§»úµÄ°ì·¨¡£
Çë²Î¼ûÉÔºóµÄ <link linkend="network-netgroups">netgroups
С½Ú</link> ÒÔÁË½â½øÒ»²½µÄÇé¿ö¡£
ÒªÁ˽â¸ü¶àÐÅÏ¢£¬ ¿ÉÒÔ²ÎÔÄ O'Reilly µÄ
<literal>Managing NFS and NIS</literal> Õâ±¾Êé¡£</para>
</note>
<note>
<para>ÐèÒªÖÁÉÙ±£ÁôÒ»¸ö±¾µØÕʺŠ(Ò²¾ÍÊDz»Í¨¹ý NIS µ¼Èë) ÔÚÄúµÄ
<filename>/etc/master.passwd</filename> ÎļþÖУ¬
¶øÕâ¸öÕʺÅÓ¦¸ÃÊÇ
<groupname>wheel</groupname> ×éµÄ³ÉÔ±¡£ Èç¹û NIS ·¢Éú²»²â£¬
Õâ¸öÕʺſÉÒÔÓÃÀ´Ô¶³ÌµÇ¼£¬
³ÉΪ <username>root</username>£¬ ²¢ÐÞÕýÎÊÌâ¡£</para>
</note>
</step>
<step>
<para>Òª´Ó NIS ·þÎñÆ÷Éϵ¼Èë×éÐÅÏ¢£¬ ÐèÒªÔÚ
<filename>/etc/group</filename> Îļþĩβ¼ÓÈ룺</para>
<programlisting>+:*::</programlisting>
</step>
</procedure>
<para>ÏëÒªÁ¢¼´Æô¶¯ NIS ¿Í»§¶Ë£¬ ÐèÒªÒÔ³¬¼¶Óû§Éí·ÝÔËÐÐÖ´ÐÐÏÂÁÐÃüÁ</para>
<screen>&prompt.root; <userinput>/etc/netstart</userinput>
&prompt.root; <userinput>/etc/rc.d/ypbind start</userinput></screen>
<para>Íê³ÉÕâЩ²½ÖèÖ®ºó£¬ ¾ÍÓ¦¸Ã¿ÉÒÔͨ¹ýÔËÐÐ
<command>ypcat passwd</command> À´¿´µ½ NIS ·þÎñÆ÷µÄ¿ÚÁîÓ³ÉäÁË¡£</para>
</sect4>
</sect3>
</sect2>
<sect2>
<title>NIS µÄ°²È«ÐÔ</title>
<para>»ù±¾ÉÏ£¬ ÈκÎÔ¶³ÌÓû§¶¼¿ÉÒÔ·¢ÆðÒ»¸ö RPC µ½
&man.ypserv.8; ²¢»ñµÃÄúµÄ NIS Ó³ÉäµÄÄÚÈÝ£¬
Èç¹ûÔ¶³ÌÓû§Á˽âÄúµÄÓòÃûµÄ»°¡£
Òª±ÜÃâÕâÀàδ¾­ÊÚȨµÄ·ÃÎÊ£¬ &man.ypserv.8;
Ö§³ÖÒ»¸ö³ÆÎª <quote>securenets</quote> µÄÌØÐÔ£¬
ÓÃÒÔ½«·ÃÎÊÏÞÖÆÔÚÒ»×éÌØ¶¨µÄ»úÆ÷ÉÏ¡£ ÔÚÆô¶¯¹ý³ÌÖУ¬
&man.ypserv.8; »á³¢ÊÔ´Ó
<filename>/var/yp/securenets</filename>
ÖмÓÔØ securenet ÐÅÏ¢¡£</para>
<note>
<para>Õâ¸ö·¾¶Ëæ
<option>-p</option> ²ÎÊý¸Ä±ä¡£ Õâ¸öÎļþ°üº¬ÁËһЩÏ
ÿһÏîÖаüº¬ÁËÒ»¸öÍøÂç±êʶºÍ×ÓÍøÑÚÂ룬 ÖмäÓÿոñ·Ö¿ª¡£
ÒÔ <quote>#</quote> ¿ªÍ·µÄÐлᱻÈÏΪÊÇ×¢ÊÍ¡£
ʾ·¶µÄ securenets ÎļþÈçÏÂËùʾ£º</para>
</note>
<programlisting># allow connections from local host -- mandatory
127.0.0.1 255.255.255.255
# allow connections from any host
# on the 192.168.128.0 network
192.168.128.0 255.255.255.0
# allow connections from any host
# between 10.0.0.0 to 10.0.15.255
# this includes the machines in the testlab
10.0.0.0 255.255.240.0</programlisting>
<para>Èç¹û &man.ypserv.8; ½Óµ½ÁËÀ´×ÔÆ¥ÅäÉÏÊöÈÎÒ»¹æÔòµÄµØÖ·µÄÇëÇó£¬
ÔòËü»áÕý³£´¦ÀíÇëÇó¡£ ·´Ö®£¬ ÔòÇëÇ󽫱»ºöÂÔ£¬ ²¢¼Ç¼һÌõ¾¯¸æÐÅÏ¢¡£ Èç¹û
<filename>/var/yp/securenets</filename> Îļþ²»´æÔÚ£¬ Ôò
<command>ypserv</command> »áÔÊÐíÀ´×ÔÈÎÒâÖ÷»úµÄÇëÇó¡£</para>
<para><command>ypserv</command> ³ÌÐòÒ²Ö§³Ö
Wietse Venema µÄ <application>TCP Wrapper</application> Èí¼þ°ü¡£
ÕâÑù£¬ ¹ÜÀíÔ±¾ÍÄܹ»Ê¹ÓÃ
<application>TCP Wrapper</application> µÄÅäÖÃÎļþÀ´´úÌæ
<filename>/var/yp/securenets</filename> Íê³É·ÃÎÊ¿ØÖÆ¡£</para>
<note>
<para>¾¡¹ÜÕâÁ½ÖÖ·ÃÎÊ¿ØÖÆ»úÖÆ¶¼Äܹ»ÌṩijÖ̶ֳȵݲȫ£¬
µ«ÊÇ£¬ ºÍÌØÈ¨¶Ë¿Ú¼ì²éÒ»Ñù£¬
ËüÃÇÎÞ·¨±ÜÃâ <quote>IP αÔì</quote> ¹¥»÷¡£ ÄúµÄ·À»ðǽӦ¸Ã×èÖ¹ËùÓÐÓë
NIS ÓйصķÃÎÊ¡£</para>
<para>ʹÓà <filename>/var/yp/securenets</filename> µÄ·þÎñÆ÷£¬
¿ÉÄÜ»áÎÞ·¨ÎªÄ³Ð©Ê¹ÓÃ³Â¾ÉµÄ TCP/IP ʵÏÖµÄ NIS ¿Í»§»ú·þÎñ¡£
ÕâЩʵÏÖ¿ÉÄÜ»áÔڹ㲥ʱ£¬ ½«Ö÷»úλ¶¼ÉèÖÃΪ 0£¬
»òÔÚ¼ÆËã¹ã²¥µØÖ·Ê±ºöÂÔ×ÓÍøÑÚÂë¡£
¾¡¹ÜÕâЩÎÊÌâ¿ÉÒÔͨ¹ýÐ޸Ŀͻ§»úµÄÅäÖÃÀ´½â¾ö£¬
ÆäËûһЩÎÊÌâÒ²¿ÉÄܵ¼Ö²»µÃ²»ÌÔÌ­ÄÇЩ¿Í»§»úϵͳ£¬
»òÕß²»Ê¹Óà <filename>/var/yp/securenets</filename>¡£</para>
<para>ÔÚʹÓÃ³Â¾ÉµÄ TCP/IP ʵÏÖµÄϵͳÉÏ£¬
ʹÓà <filename>/var/yp/securenets</filename> ÊÇÒ»¸ö·Ç³£Ôã¸âµÄ×ö·¨£¬
ÒòΪÕ⽫µ¼ÖÂÄúµÄÍøÂçÉ쵀 NIS ɥʧ´ó²¿·Ö¹¦ÄÜ¡£</para>
<indexterm><primary>TCP Wrappers</primary></indexterm>
<para>ʹÓà <application>TCP Wrapper</application>
Èí¼þ°ü£¬ »áµ¼ÖÂÄúµÄ NIS ·þÎñÆ÷µÄÏìÓ¦ÑÓ³ÙÔö¼Ó¡£
¶øÔö¼ÓµÄÑÓ³Ù£¬ Ôò¿ÉÄܻᵼÖ¿ͻ§¶Ë³ÌÐò³¬Ê±£¬
ÌØ±ðÊÇÔÚ·±Ã¦µÄÍøÂç»òÕߺÜÂýµÄ
NIS ·þÎñÆ÷ÉÏ¡£ Èç¹ûÄúµÄij¸ö¿Í»§»úÒò´Ë¶ø²úÉúһЩÒì³££¬
ÔòÓ¦½«ÕâЩ¿Í»§»ú±äΪ NIS ´Ó·þÎñÆ÷£¬
²¢Ç¿ÖÆÆä°ó¶¨×Ô¼º¡£</para>
</note>
</sect2>
<sect2>
<title>²»ÔÊÐíijЩÓû§µÇ¼</title>
<para>ÔÚÎÒÃǵÄʵÑéÊÒÖУ¬ <hostid>basie</hostid> Õą̂»úÆ÷£¬
ÊÇһ̨½ÌԱרÓõŤ×÷Õ¾¡£ ÎÒÃDz»Ï£Íû½«Õą̂»úÆ÷Äóö NIS Óò£¬
¶øÖ÷ NIS ·þÎñÆ÷É쵀 <filename>passwd</filename> Îļþ£¬
Ôòͬʱ°üº¬Á˽ÌÔ±ºÍѧÉúµÄÕʺš£ ÕâʱӦ¸ÃÔõô×ö£¿</para>
<para>ÓÐÒ»ÖÖ°ì·¨À´½ûÖ¹ÌØ¶¨µÄÓû§µÇ¼»úÆ÷£¬ ¼´Ê¹ËûÃÇÉí´¦ NIS Êý¾Ý¿âÖ®ÖС£
ÒªÍê³ÉÕâÒ»¹¤×÷£¬ Ö»ÐèÒªÔÚ¿Í»§»úµÄ <filename>/etc/master.passwd</filename>
ÎļþÖмÓÈëһЩ
<literal>-<replaceable>username</replaceable></literal> ÕâÑùµÄÏ
ÆäÖУ¬ <replaceable>username</replaceable> ÊÇÏ£Íû½ûÖ¹µÇ¼µÄÓû§Ãû¡£
Ò»°ãÍÆ¼öʹÓà <command>vipw</command> À´Íê³ÉÕâ¸ö¹¤×÷£¬
ÒòΪ <command>vipw</command> »á¶ÔÄúÔÚ <filename>/etc/master.passwd</filename>
ÎļþÉÏËù×÷µÄÐ޸ĽøÐкϷ¨ÐÔ¼ì²é£¬
²¢Ôڱ༭½áÊøÊ±ÖØÐ¹¹½¨¿ÚÁîÊý¾Ý¿â¡£ ÀýÈ磬 Èç¹ûÏ£Íû½ûÖ¹Óû§
<username>bill</username> 怬
<hostid>basie</hostid>£¬ ÎÒÃÇÓ¦¸Ã£º</para>
<screen>basie&prompt.root; <userinput>vipw</userinput>
<userinput>[ÔÚĩβ¼ÓÈë -bill£¬ ²¢Í˳ö]</userinput>
vipw: rebuilding the database...
vipw: done
basie&prompt.root; <userinput>cat /etc/master.passwd</userinput>
root:[password]:0:0::0:0:The super-user:/root:/bin/csh
toor:[password]:0:0::0:0:The other super-user:/root:/bin/sh
daemon:*:1:1::0:0:Owner of many system processes:/root:/sbin/nologin
operator:*:2:5::0:0:System &:/:/sbin/nologin
bin:*:3:7::0:0:Binaries Commands and Source,,,:/:/sbin/nologin
tty:*:4:65533::0:0:Tty Sandbox:/:/sbin/nologin
kmem:*:5:65533::0:0:KMem Sandbox:/:/sbin/nologin
games:*:7:13::0:0:Games pseudo-user:/usr/games:/sbin/nologin
news:*:8:8::0:0:News Subsystem:/:/sbin/nologin
man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/sbin/nologin
bind:*:53:53::0:0:Bind Sandbox:/:/sbin/nologin
uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico
xten:*:67:67::0:0:X-10 daemon:/usr/local/xten:/sbin/nologin
pop:*:68:6::0:0:Post Office Owner:/nonexistent:/sbin/nologin
nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/sbin/nologin
+:::::::::
-bill
basie&prompt.root;</screen>
</sect2>
<sect2 id="network-netgroups">
<sect2info>
<authorgroup>
<author>
<firstname>Udo</firstname>
<surname>Erdelhoff</surname>
<contrib>Contributed by </contrib>
</author>
</authorgroup>
</sect2info>
<title>ʹÓà Netgroups</title>
<indexterm><primary>netgroups</primary></indexterm>
<para>ǰһ½Ú½éÉܵķ½·¨£¬
ÔÚÄúÐèҪΪ·Ç³£ÉÙµÄÓû§ºÍ/»ò»úÆ÷½øÐÐÌØÊâµÄ¹æÔòÅäÖÃʱ»¹Ëã´ÕºÏ¡£
ÔÚ¸ü´óµÄÍøÂçÉÏ£¬ Äú
<emphasis>Ò»¶¨»á</emphasis> Íü¼Ç½ûֹijЩÓû§µÇ¼µ½Ãô¸ÐµÄ»úÆ÷ÉÏ£¬
»òÕߣ¬ ÉõÖÁ±ØÐëµ¥¶ÀµØÐÞ¸Äÿһ̨»úÆ÷µÄÅäÖ㬠Òò¶ø¶ªµôÁË NIS ×îÖØÒªµÄÓÅÔ½ÐÔ£º
<emphasis>¼¯ÖÐʽ</emphasis> ¹ÜÀí¡£</para>
<para>NIS ¿ª·¢ÈËԱΪÕâ¸öÎÊÌâÌṩµÄ½â¾ö·½°¸£¬ ±»³Æ×÷
<emphasis>netgroups</emphasis>¡£ ËüÃǵÄ×÷ÓúÍÓïÒ壬
»ù±¾ÉÏ¿ÉÒÔµÈͬÓÚ &unix; ÎļþϵͳÉÏʹÓõÄ×é¡£
Ö÷ÒªµÄÇø±ðÊÇËüÃÇûÓÐÊý×Ö»¯µÄ ID£¬ ÒÔ¼°¿ÉÒÔÔÚ netgroup
ÖÐͬʱ°üº¬Óû§ºÍÆäËû netgroup¡£</para>
<para>Netgroups ±»Éè¼ÆÓÃÀ´´¦Àí´óµÄ¡¢ ¸´Ôӵİüº¬Êý°ÙÓû§ºÍ»úÆ÷µÄÍøÂç¡£
Ò»·½Ã棬 ÔÚÄú²»µÃ²»´¦ÀíÕâÀàÇéÐÎʱ£¬ ÕâÊÇÒ»¸öºÜÓÐÓõĶ«Î÷¡£
¶øÁíÒ»·½Ã棬 ËüµÄ¸´ÔÓÐÔÓÖʹµÃͨ¹ý·Ç³£¼òµ¥µÄÀý×ÓºÜÄѽâÊÍ netgroup
µ½µ×ÊÇʲô¡£ ÕâÒ»½ÚµÄÆäÓಿ·ÖµÄÀý×Ó½«Õ¹Ê¾Õâ¸öÎÊÌâ¡£</para>
<para>¼ÙÉèÄúÔÚʵÑéÊÒÖгɹ¦µØ²¿Êð NIS ÒýÆðÁËÉÏ˾µÄÐËȤ¡£
Äú½ÓÏÂÀ´µÄÈÎÎñÊǽ« NIS ÓòÀ©Õ¹£¬ ÒÔ¸²¸ÇУ԰ÖеÄһЩÆäËûµÄ»úÆ÷¡£
ÏÂÃæÁ½¸ö±í¸ñÖаüÀ¨ÁËÐÂÓû§ºÍлúÆ÷£¬ ¼°Æä¼òҪ˵Ã÷¡£</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
<entry>Óû§Ãû</entry>
<entry>˵Ã÷</entry>
</row>
</thead>
<tbody>
<row>
<entry><username>alpha</username>, <username>beta</username></entry>
<entry>IT ²¿ÃŵįÕͨ¹ÍÔ±</entry>
</row>
<row>
<entry><username>charlie</username>, <username>delta</username></entry>
<entry>IT ²¿ÃŵÄѧͽ</entry>
</row>
<row>
<entry><username>echo</username>, <username>foxtrott</username>, <username>golf</username>, ...</entry>
<entry>ÆÕͨ¹ÍÔ±</entry>
</row>
<row>
<entry><username>able</username>, <username>baker</username>, ...</entry>
<entry>ĿǰµÄʵϰÉú</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
<entry>»úÆ÷Ãû</entry>
<entry>˵Ã÷</entry>
</row>
</thead>
<tbody>
<row>
<!-- Names taken from "Good Omens" by Neil Gaiman and Terry
Pratchett. Many thanks for a brilliant book. -->
<entry><hostid>war</hostid>, <hostid>death</hostid>,
<hostid>famine</hostid>,
<hostid>pollution</hostid></entry>
<entry>×îÖØÒªµÄ·þÎñÆ÷¡£ Ö»ÓÐ IT
²¿ÃŵĹÍÔ±²ÅÔÊÐíµÇ¼ÕâЩ»úÆ÷¡£</entry>
</row>
<row>
<!-- gluttony was omitted because it was too fat -->
<entry><hostid>pride</hostid>, <hostid>greed</hostid>,
<hostid>envy</hostid>, <hostid>wrath</hostid>,
<hostid>lust</hostid>, <hostid>sloth</hostid></entry>
<entry>²»Ì«ÖØÒªµÄ·þÎñÆ÷£¬ ËùÓÐ IT ²¿ÃŵijÉÔ±£¬
¶¼¿ÉÒԵǼÕâЩ»úÆ÷¡£</entry>
</row>
<row>
<entry><hostid>one</hostid>, <hostid>two</hostid>,
<hostid>three</hostid>, <hostid>four</hostid>,
...</entry>
<entry>ÆÕͨ¹¤×÷Õ¾¡£ Ö»ÓÐ
<emphasis>ÕæÕýµÄ</emphasis> ¹ÍÔ±²ÅÔÊÐíµÇ¼ÕâЩ»úÆ÷¡£</entry>
</row>
<row>
<entry><hostid>trashcan</hostid></entry>
<entry>һ̨²»°üº¬¹Ø¼üÊý¾ÝµÄ¾É»úÆ÷¡£
¼´Ê¹ÊÇʵϰÉú£¬ Ò²ÔÊÐíµÇ¼Ëü¡£</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Èç¹ûÄú³¢ÊÔͨ¹ýÒ»¸öÒ»¸öµØ×èÖ¹Óû§À´ÊµÏÖÕâЩÏÞÖÆ£¬
¾ÍÐèÒªÔÚÿһ¸öϵͳµÄ <filename>passwd</filename> ÎļþÖУ¬
Ϊÿһ¸ö²»ÔÊÐíµÇ¼¸ÃϵͳµÄÓû§Ìí¼Ó¶ÔÓ¦µÄ
<literal>-<replaceable>user</replaceable></literal> ÐС£
Èç¹ûÍü¼ÇÁËÈκÎÒ»¸ö£¬ ¾Í¿ÉÄÜ»áÔì³ÉÎÊÌâ¡£ ÔÚ½øÐгõʼÅäÖÃʱ£¬
ÕýÈ·µØÅäÖÃÒ²Ðí²»ÊÇʲôÎÊÌ⣬ µ«Ëæ×ÅÈÕ¸´Ò»ÈÕµØÌí¼ÓÐÂÓû§£¬
<emphasis>×ÜÓÐÒ»Ìì</emphasis> Äú»áÍü¼ÇΪÐÂÓû§Ìí¼Óij¸öÐС£
±Ï¾¹£¬ Murphy ÊÇÒ»¸öÀÖ¹ÛµÄÈË¡£</para>
<para>ʹÓà netgroups À´´¦ÀíÕâÒ»×´¿ö¿ÉÒÔ´øÀ´Ðí¶àºÃ´¦¡£
²»ÐèÒªµ¥¶ÀµØ´¦Àíÿһ¸öÓû§£» Äú¿ÉÒÔ¸³ÓèÓû§Ò»¸ö»ò¶à¸ö netgroups
Éí·Ý£¬ ²¢ÔÊÐí»ò½ûֹijһ¸ö netgroup µÄËùÓгÉÔ±µÇ¼¡£
Èç¹ûÌí¼ÓÁËеĻúÆ÷£¬ Ö»ÐèÒª¶¨Òå netgroup µÄµÇ¼ÏÞÖÆ¡£
Èç¹ûÔö¼ÓÁËÐÂÓû§£¬ Ò²Ö»ÐèÒª½«Óû§¼ÓÈëÒ»¸ö»ò¶à¸ö netgroup¡£
ÕâЩ±ä»¯ÊÇÏ໥¶ÀÁ¢µÄ£º ²»ÔÙÐèÒª <quote>¶Ôÿһ¸öÓû§ºÍ»úÆ÷Ö´ÐÐ
¡­¡­</quote>¡£ Èç¹ûÄúµÄ NIS ÅäÖþ­¹ýÁ˽÷É÷µÄ¹æ»®£¬
¾ÍÖ»ÐèÒªÐÞ¸ÄÒ»¸öÖÐÑëµÄÅäÖÃÎļþ£¬ ¾ÍÄܹ»ÔÊÐí»ò½ûÖ¹·ÃÎÊij̨»úÆ÷µÄȨÏÞÁË¡£</para>
<para>µÚÒ»²½Êdzõʼ»¯ NIS Ó³Éä
netgroup¡£ FreeBSD µÄ &man.ypinit.8; ĬÈÏÇé¿öϲ¢²»´´½¨Õâ¸öÓ³É䣬
µ«ËüµÄ NIS ʵÏÖÄܹ»ÔÚ´´½¨Õâ¸öÓ³ÉäÖ®ºóÁ¢¼´¶ÔÆäÌṩ֧³Ö¡£
Òª´´½¨¿ÕÓ³É䣬 ¼òµ¥µØÊäÈë</para>
<screen>ellington&prompt.root; <userinput>vi /var/yp/netgroup</userinput></screen>
<para>²¢¿ªÊ¼Ôö¼ÓÄÚÈÝ¡£ ÔÚÎÒÃǵÄÀý×ÓÖУ¬ ÖÁÉÙÐèÒªËĸö nergruop£º
IT ¹ÍÔ±£¬ IT ѧͽ£¬ ÆÕͨ¹ÍÔ±ºÍʵϰÉú¡£</para>
<programlisting>IT_EMP (,alpha,test-domain) (,beta,test-domain)
IT_APP (,charlie,test-domain) (,delta,test-domain)
USERS (,echo,test-domain) (,foxtrott,test-domain) \
(,golf,test-domain)
INTERNS (,able,test-domain) (,baker,test-domain)</programlisting>
<para><literal>IT_EMP</literal>, <literal>IT_APP</literal> µÈµÈ£¬
ÊÇ netgroup µÄÃû×Ö¡£ ÿһ¸öÀ¨ºÅÖеÄ×éÖУ¬
¶¼ÓÐһЩÓû§Õʺš£ ×éÖеÄÈý¸ö×Ö¶ÎÊÇ£º</para>
<orderedlist>
<listitem>
<para>ÔÚÄÄЩ»úÆ÷ÉÏÄܹ»Ê¹ÓÃÕâЩÏî¡£ Èç¹û²»Ö¸¶¨Ö÷»úÃû£¬
ÔòÏîÔÚËùÓлúÆ÷É϶¼ÓÐЧ¡£ Èç¹ûÖ¸¶¨ÁËÖ÷»ú£¬
ÔòºÜÈÝÒ×Ôì³É»ìÏý¡£</para>
</listitem>
<listitem>
<para>ÊôÓÚÕâ¸ö netgroup µÄÕʺš£</para>
</listitem>
<listitem>
<para>ÕÊºÅµÄ NIS Óò¡£ Äú¿ÉÒÔ´ÓÆäËû NIS
ÓòÖаÑÕʺŵ¼Èëµ½ÄúµÄ netgroup ÖУ¬
Èç¹ûÄú¹ÜÀí¶à¸ö NIS ÓòµÄ»°¡£</para>
</listitem>
</orderedlist>
<para>ÿһ¸ö×ֶζ¼¿ÉÒÔ°üÀ¨Í¨Åä·û¡£ ²Î¼û
&man.netgroup.5; Á˽â¸ü¶àϸ½Ú¡£</para>
<note>
<indexterm><primary>netgroups</primary></indexterm>
<para>Netgroup µÄÃû×ÖÒ»°ãÀ´Ëµ²»Ó¦³¬¹ý 8 ¸ö×Ö·û£¬
ÌØ±ðÊǵ±ÄúµÄ NIS ÓòÖÐÓлúÆ÷´òËãÔËÐÐÆäËü²Ù×÷ϵͳµÄʱºò¡£
Ãû×ÖÊÇÇø·Ö´óСдµÄ£» ʹÓôóд×Öĸ×÷Ϊ netgroup µÄÃû×Ö£¬
Äܹ»ÈÃÄú¸üÈÝÒ×µØÇø·ÖÓû§¡¢ »úÆ÷ºÍ netgroup µÄÃû×Ö¡£</para>
<para>ijЩ NIS ¿Í»§³ÌÐò (FreeBSD ÒÔÍâµÄÄÇЩ) ¿ÉÄÜÎÞ·¨´¦Àíº¬ÓдóÁ¿ÏîµÄ
netgroup¡£ ÀýÈ磬 ijЩÔçÆÚ°æ±¾µÄ &sunos; »áÔÚ netgroup
Öаüº¬¶àÓÚ 15 ¸ö <emphasis>Ïî</emphasis> ʱ³öÏÖÎÊÌâ¡£
ÒªÈÆ¹ýÕâ¸öÎÊÌ⣬ ¿ÉÒÔ´´½¨¶à¸ö ×Ónetgroup£¬Ã¿Ò»¸öÖаüº¬ÉÙÓÚ 15 ¸öÓû§£¬
ÒÔ¼°Ò»¸ö°üº¬ËùÓÐ ×Ónetgroup µÄÕæÕýµÄ netgroup£º</para>
<programlisting>BIGGRP1 (,joe1,domain) (,joe2,domain) (,joe3,domain) [...]
BIGGRP2 (,joe16,domain) (,joe17,domain) [...]
BIGGRP3 (,joe31,domain) (,joe32,domain)
BIGGROUP BIGGRP1 BIGGRP2 BIGGRP3</programlisting>
<para>Èç¹ûÐèÒª³¬¹ý 225 ¸öÓû§£¬ ¿ÉÒÔ¼ÌÐøÖØ¸´ÉÏÃæµÄ¹ý³Ì¡£</para>
</note>
<para>¼¤»î²¢·Ö·¢Ð嵀 NIS Ó³Éä·Ç³£¼òµ¥£º</para>
<screen>ellington&prompt.root; <userinput>cd /var/yp</userinput>
ellington&prompt.root; <userinput>make</userinput></screen>
<para>Õâ¸ö²Ù×÷»áÉú³ÉÈý¸ö NIS Ó³É䣬 ¼´
<filename>netgroup</filename>¡¢
<filename>netgroup.byhost</filename> ºÍ
<filename>netgroup.byuser</filename>¡£ ÓÃ &man.ypcat.1;
¿ÉÒÔ¼ì²éÕâЩ NIS Ó³ÉäÊÇ·ñ¿ÉÓÃÁË£º</para>
<screen>ellington&prompt.user; <userinput>ypcat -k netgroup</userinput>
ellington&prompt.user; <userinput>ypcat -k netgroup.byhost</userinput>
ellington&prompt.user; <userinput>ypcat -k netgroup.byuser</userinput></screen>
<para>µÚÒ»¸öÃüÁîµÄÊä³ö£¬
Ó¦¸ÃÓë <filename>/var/yp/netgroup</filename> µÄÄÚÈÝÏà½ü¡£
µÚ¶þ¸öÃüÁ Èç¹ûûÓÐÖ¸¶¨±¾»úרÓÐµÄ netgroup£¬
ÔòÓ¦¸ÃûÓÐÊä³ö¡£ µÚÈý¸öÃüÁ
ÔòÓÃÓÚÏÔʾij¸öÓû§¶ÔÓ¦µÄ netgroup ÁÐ±í¡£</para>
<para>¿Í»§»úµÄÉèÖÃÒ²ºÜ¼òµ¥¡£ ÒªÅäÖ÷þÎñÆ÷
<hostid>war</hostid>£¬ Ö»Ðè½øÈë
&man.vipw.8; ²¢°Ñ</para>
<programlisting>+:::::::::</programlisting>
<para>¸ÄΪ</para>
<programlisting>+@IT_EMP:::::::::</programlisting>
<para>ÏÖÔÚ£¬ Ö»ÓÐ netgroup
<literal>IT_EMP</literal> Öж¨ÒåµÄÓû§»á±»µ¼Èëµ½
<hostid>war</hostid> µÄ¿ÚÁîÊý¾Ý¿âÖУ¬
Òò´ËÖ»ÓÐÕâЩÓû§Äܹ»µÇ¼¡£</para>
<para>²»¹ý£¬ Õâ¸öÏÞÖÆÒ²»á×÷ÓÃÓÚ shell µÄ
<literal>~</literal>£¬ ÒÔ¼°ËùÓÐÔÚÓû§ÃûºÍÊý×ÖÓû§ ID
Ö®¼äʵʩת»»µÄº¯ÊýµÄ¹¦ÄÜ¡£ »»ÑÔÖ®£¬ <command>cd
~<replaceable>user</replaceable></command> ½«²»»áÕý³£¹¤×÷£¬ ¶ø
<command>ls -l</command> Ò²½«ÏÔʾÊý×ÖµÄ ID ¶ø²»ÊÇÓû§Ãû£¬
²¢ÇÒ <command>find . -user joe -print</command>
½«Ê§°Ü£¬ ²¢¸ø³ö <errorname>No such user</errorname> µÄ´íÎóÐÅÏ¢¡£
ÒªÐÞÕýÕâ¸öÎÊÌ⣬ ÄúÐèÒªµ¼ÈëËùÓеÄÓû§Ï ¶ø
<emphasis>²»ÔÊÐíËûÃǵǼ·þÎñÆ÷</emphasis>¡£</para>
<para>Õâ¿ÉÒÔͨ¹ýÔÚ
<filename>/etc/master.passwd</filename> ¼ÓÈëÁíÒ»ÐÐÀ´Íê³É¡£
ÕâÐеÄÄÚÈÝÊÇ£º</para>
<para><literal>+:::::::::/sbin/nologin</literal>£¬ Òâ˼ÊÇ
<quote>µ¼ÈëËùÓеÄÏ µ«µ¼ÈëÏîµÄ shell ÔòÌæ»»Îª
<filename>/sbin/nologin</filename></quote>¡£
ͨ¹ýÔÚ <filename>/etc/master.passwd</filename>
ÖÐÔö¼ÓĬÈÏÖµ£¬ ¿ÉÒÔÌæ»»µô
<literal>passwd</literal> ÖеÄÈÎÒâ×ֶΡ£</para>
<!-- Been there, done that, got the scars to prove it - ue -->
<warning>
<para>Îñ±ØÈ·ÈÏ
<literal>+:::::::::/sbin/nologin</literal> ÕâÒ»ÐгöÏÖÔÚ
<literal>+@IT_EMP:::::::::</literal> Ö®ºó¡£
·ñÔò£¬ ËùÓÐ´Ó NIS µ¼ÈëµÄÓû§ÕʺŽ«ÒÔ <filename>/sbin/nologin</filename>
×÷ΪµÇ¼ shell¡£</para>
</warning>
<para>Íê³ÉÉÏÃæµÄÐÞ¸ÄÖ®ºó£¬ ÔÚ IT ²¿ÃÅÓÐÁËÐÂÔ±¹¤Ê±£¬
Ö»ÐèÐÞ¸ÄÒ»¸ö NIS Ó³Éä¾Í×ã¹»ÁË¡£ ÄúÒ²¿ÉÒÔÓÃÀàËÆµÄ·½·¨£¬
ÔÚ²»Ì«ÖØÒªµÄ·þÎñÆ÷ÉÏ£¬ °ÑÏÈǰ±¾µØ°æ±¾µÄ <filename>/etc/master.passwd</filename>
ÖÐµÄ <literal>+:::::::::</literal> ¸ÄΪ£º</para>
<programlisting>+@IT_EMP:::::::::
+@IT_APP:::::::::
+:::::::::/sbin/nologin</programlisting>
<para>Ïà¹ØµÄÓÃÓÚÆÕͨ¹¤×÷Õ¾µÄÅäÖÃÔòÓ¦ÊÇ£º</para>
<programlisting>+@IT_EMP:::::::::
+@USERS:::::::::
+:::::::::/sbin/nologin</programlisting>
<para>Ò»ÇÐÆ½°²ÎÞÊ£¬ Ö±µ½ÊýÖÜºó£¬ ÓÐÒ»Ìì²ßÂÔ·¢ÉúÁ˱仯£º
IT ²¿ÃÅÒ²¿ªÊ¼ÕÐÊÕʵϰÉúÁË¡£ IT ʵϰÉúÔÊÐíʹÓÃÆÕͨµÄÖÕ¶Ë£¬
ÒÔ¼°²»Ì«ÖØÒªµÄ·þÎñÆ÷£» ¶ø IT ѧͽ£¬ Ôò¿ÉÒԵǼÖ÷·þÎñÆ÷¡£
ÄúÔö¼ÓÁËÐ嵀 netgroup <literal>IT_INTERN</literal>£¬ ÒÔ¼°Ð嵀 IT
ʵϰÉúµ½Õâ¸ö netgroup ²¢¿ªÊ¼ÐÞ¸Äÿһ̨»úÆ÷ÉϵÄÅäÖá­¡­
ÀÏ»°ËµµÃºÃ£º<quote>Ç£Ò»·¢£¬ ¶¯È«Éí</quote>¡£</para>
<para>NIS ͨ¹ý netgroup À´½¨Á¢ netgroup µÄÄÜÁ¦£¬
Õý¿ÉÒÔ±ÜÃâÕâÑùµÄÇéÐΡ£ Ò»ÖÖ¿ÉÄܵķ½·¨Êǽ¨Á¢»ùÓÚ½ÇÉ«µÄ netgroup¡£
ÀýÈ磬 Äú¿ÉÒÔ´´½¨³ÆÎª
<literal>BIGSRV</literal> µÄ netgroup£¬ ÓÃÓÚ¶¨Òå×îÖØÒªµÄ·þÎñÆ÷ÉϵĵǼÏÞÖÆ£¬
ÒÔ¼°ÁíÒ»¸ö³ÉΪ <literal>SMALLSRV</literal> µÄ netgroup£¬
ÓÃÒÔ¶¨Òå´ÎÖØÒªµÄ·þÎñÆ÷£¬ ÒÔ¼°µÚÈý¸ö£¬ ÓÃÓÚÆÕͨ¹¤×÷Õ¾µÄ netgroup
<literal>USERBOX</literal>¡£ ÕâÈý¸ö netgroup ÖеÄÿһ¸ö£¬
¶¼°üº¬ÁËÔÊÐíµÇ¼µ½ÕâЩ»úÆ÷ÉϵÄËùÓÐ netgroup¡£
ÄúµÄ NIS Ó³ÉäÖеÄÐÂÏîÈçÏÂËùʾ£º</para>
<programlisting>BIGSRV IT_EMP IT_APP
SMALLSRV IT_EMP IT_APP ITINTERN
USERBOX IT_EMP ITINTERN USERS</programlisting>
<para>ÕâÖÖ¶¨ÒåµÇ¼ÏÞÖÆµÄ·½·¨£¬
ÔÚÄúÄܹ»½«»úÆ÷·Ö×é²¢¼ÓÒÔÏÞÖÆµÄʱºò¿ÉÒÔ¹¤×÷µÄÏ൱ºÃ¡£
²»ÐÒµÄÊÇ£¬ ÕâÊÇÖÖÀýÍ⣬ ¶ø·Ç³£¹æÇé¿ö¡£ ¶àÊýʱºò£¬
ÐèÒª°´»úÆ÷È¥¶¨ÒåµÇ¼ÏÞÖÆ¡£</para>
<para>Óë»úÆ÷Ïà¹ØµÄ netgroup ¶¨Ò壬 ÊÇ´¦ÀíÉÏÊö²ßÂԸ͝µÄÁíÒ»ÖÖ¿ÉÄܵķ½·¨¡£
´Ëʱ£¬ ÿ̨»úÆ÷µÄ <filename>/etc/master.passwd</filename> ÖУ¬
¶¼°üº¬Á½¸ö <quote>+</quote> ¿ªÍ·µÄÐС£ µÚÒ»¸öÓÃÓÚÌí¼ÓÔÊÐíµÇ¼µÄ netgroup
Õʺţ¬ ¶øµÚ¶þ¸öÔòÓÃÓÚÔö¼ÓÆäËüÕʺţ¬ ²¢°Ñ shell
ÉèÖÃΪ <filename>/sbin/nologin</filename>¡£ ʹÓà <quote>È«´óд</quote>
µÄ»úÆ÷Ãû×÷Ϊ netgroup ÃûÊǸöºÃÖ÷Òâ¡£ »»ÑÔÖ®£¬ ÕâЩÐÐÓ¦¸ÃÀàËÆÓÚ£º</para>
<programlisting>+@<replaceable>BOXNAME</replaceable>:::::::::
+:::::::::/sbin/nologin</programlisting>
<para>Ò»µ©ÔÚËùÓлúÆ÷É϶¼Íê³ÉÁËÕâÑùµÄÐ޸ģ¬ ¾ÍÔÙÒ²²»ÐèÒªÐ޸ı¾µØµÄ
<filename>/etc/master.passwd</filename> ÁË¡£
ËùÓÐδÀ´µÄÐ޸ͼ¿ÉÒÔÔÚ NIS Ó³ÉäÖнøÐС£ ÕâÀïÊÇÒ»¸öÀý×Ó£¬
ÆäÖÐչʾÁËÔÚÕâÒ»Ó¦ÓÃÇé¾°ÖÐËùÐèÒªµÄ netgroup Ó³É䣬
ÒÔ¼°ÆäËüһЩ³£Óõļ¼ÇÉ£º</para>
<programlisting># Define groups of users first
IT_EMP (,alpha,test-domain) (,beta,test-domain)
IT_APP (,charlie,test-domain) (,delta,test-domain)
DEPT1 (,echo,test-domain) (,foxtrott,test-domain)
DEPT2 (,golf,test-domain) (,hotel,test-domain)
DEPT3 (,india,test-domain) (,juliet,test-domain)
ITINTERN (,kilo,test-domain) (,lima,test-domain)
D_INTERNS (,able,test-domain) (,baker,test-domain)
#
# Now, define some groups based on roles
USERS DEPT1 DEPT2 DEPT3
BIGSRV IT_EMP IT_APP
SMALLSRV IT_EMP IT_APP ITINTERN
USERBOX IT_EMP ITINTERN USERS
#
# And a groups for a special tasks
# Allow echo and golf to access our anti-virus-machine
SECURITY IT_EMP (,echo,test-domain) (,golf,test-domain)
#
# machine-based netgroups
# Our main servers
WAR BIGSRV
FAMINE BIGSRV
# User india needs access to this server
POLLUTION BIGSRV (,india,test-domain)
#
# This one is really important and needs more access restrictions
DEATH IT_EMP
#
# The anti-virus-machine mentioned above
ONE SECURITY
#
# Restrict a machine to a single user
TWO (,hotel,test-domain)
# [...more groups to follow]</programlisting>
<para>Èç¹ûÄúÕýʹÓÃijÖÖÊý¾Ý¿âÀ´¹ÜÀíÕʺţ¬
Ó¦¸Ã¿ÉÒÔʹÓÃÄúµÄÊý¾Ý¿âµÄ±¨¸æ¹¤¾ßÀ´´´½¨Ó³ÉäµÄµÚÒ»²¿·Ö¡£
ÕâÑù£¬ ÐÂÓû§¾Í×Ô¶¯µØ¿ÉÒÔ·ÃÎÊÕâЩ»úÆ÷ÁË¡£</para>
<para>×îºóµÄÌáÐÑ£º ʹÓûùÓÚ»úÆ÷µÄ netgroup ²¢²»×ÜÊÇÊÊÓõġ£
Èç¹ûÕýÔÚΪѧÉúʵÑéÊÒ²¿ÊðÊýʮ̨ÉõÖÁÉϰŲ̀ͬÑùµÄ»úÆ÷£¬
ÄúÓ¦¸ÃʹÓûùÓÚ½ÇÉ«µÄ netgroup£¬ ¶ø²»ÊÇ»ùÓÚ»úÆ÷µÄ netgroup£¬
ÒÔ±ã°Ñ NIS Ó³ÉäµÄ³ß´ç±£³ÖÔÚÒ»¸öºÏÀíµÄ·¶Î§ÄÚ¡£</para>
</sect2>
<sect2>
<title>ÐèÒªÀμǵÄÊÂÏî</title>
<para>ÕâÀïÊÇһЩÆäËüÔÚʹÓà NIS »·¾³Ê±ÐèҪעÒâµÄµØ·½¡£</para>
<itemizedlist>
<listitem>
<para>ÿ´ÎÐèÒªÔÚʵÑéÊÒÖÐÔö¼ÓÐÂÓû§Ê±£¬
±ØÐë <emphasis>Ö»</emphasis> ÔÚ NIS ·þÎñÆ÷ÉϼÓÈëÓû§£¬
¶øÇÒ <emphasis>Ò»¶¨Òª¼ÇµÃÖØ½¨ NIS Ó³Éä</emphasis>¡£
Èç¹ûÄúÍü¼ÇÁËÕâÑù×ö£¬ ÐÂÓû§½«ÎÞ·¨µÇ¼³ý NIS
Ö÷·þÎñÆ÷Ö®ÍâµÄÈÎºÎÆäËü»úÆ÷¡£ ÀýÈ磬 Èç¹ûÒªÔÚʵÑéÊÒÔö¼ÓÐÂÓû§
<username>jsmith</username>£¬ ÎÒÃÇÐèÒª£º</para>
<screen>&prompt.root; <userinput>pw useradd jsmith</userinput>
&prompt.root; <userinput>cd /var/yp</userinput>
&prompt.root; <userinput>make test-domain</userinput></screen>
<para>Ò²¿ÉÒÔÔËÐÐ <command>adduser jsmith</command> ¶ø²»ÊÇ
<command>pw useradd jsmith</command>.</para>
</listitem>
<listitem>
<para><emphasis>½«¹ÜÀíÓõÄÕʺÅÅųýÔÚ
NIS Ó³ÉäÖ®Íâ</emphasis>¡£ Ò»°ãÀ´Ëµ£¬
Äú²»Ï£ÍûÕâЩ¹ÜÀíÕʺźͿÚÁî±»À©É¢µ½ÄÇЩ°üº¬²»Ó¦Ê¹ÓÃËüÃǵÄÓû§µÄ»úÆ÷ÉÏ¡£</para>
</listitem>
<listitem>
<para><emphasis>È·±£ NIS Ö÷ºÍ´Ó·þÎñÆ÷µÄ°²È«£¬
²¢¾¡¿ÉÄܼõÉÙÆäÍ£»úʱ¼ä</emphasis>¡£
Èç¹ûÓÐÈ˹¥Èë»ò¼òµ¥µØ¹Ø±ÕÕâЩ»úÆ÷£¬
ÔòÕû¸öʵÑéÊÒµÄÈÎÒ²¾ÍÎÞ·¨µÇ¼ÁË¡£</para>
<para>ÕâÊǼ¯ÖÐʽ¹ÜÀíϵͳÖÐ×ÈõµÄ»·½Ú¡£
Èç¹ûûÓб£»¤ºÃ NIS ·þÎñÆ÷£¬ Äú¾ÍÓдóÅú·ßÅ­µÄÓû§ÐèÒª¶Ô¸¶ÁË£¡</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>NIS v1 ¼æÈÝÐÔ</title>
<para>FreeBSD µÄ <application>ypserv</application> ÌṩÁËijЩΪ NIS v1
¿Í»§Ìṩ·þÎñµÄÖ§³ÖÄÜÁ¦¡£ FreeBSD µÄ NIS ʵÏÖ£¬
ֻʹÓà NIS v2 ЭÒ飬 µ«ÆäËüʵÏÖ¿ÉÄÜ»á°üº¬ v1 ЭÒ飬
ÒÔÌṩ¶Ô¾ÉϵͳµÄÏòϼæÈÝÄÜÁ¦¡£ ËæÕâЩϵͳÌṩµÄ
<application>ypbind</application> ·þÎñ½«Ê×Ïȳ¢ÊÔ°ó¶¨ NIS v1
·þÎñÆ÷£¬ ¼´Ê¹ËüÃDz¢²»ÕæµÄÐèÒªËü (ÓÐЩÉõÖÁ¿ÉÄÜ»áÒ»Ö±¹ã²¥ËÑË÷ÇëÇó£¬
¼´Ê¹ÒѾ­´Óij̨ v2 ·þÎñÆ÷µÃµ½ÁË»ØÓ¦Ò²ÊÇÈç´Ë)¡£
×¢Ò⣬ ¾¡¹ÜÖ§³ÖÒ»°ãµÄ¿Í»§»úµ÷Ó㬠Õâ¸ö°æ±¾µÄ
<application>ypserv</application> ²¢²»ÄÜ´¦Àí v1 µÄÓ³Éä´«ËÍÇëÇó£»
Òò¶ø£¬ Ëü¾Í²»ÄÜÓë½ÏÔçµÄÖ§³Ö v1 ЭÒéµÄ NIS ·þÎñÆ÷ÅäºÏʹÓã¬
ÎÞÂÛÊÇ×÷ΪÖ÷·þÎñÆ÷»¹ÊÇ´Ó·þÎñÆ÷¡£ ÐÒÔ˵ÄÊÇ£¬
ÏÖ½ñÓ¦¸ÃÒѾ­Ã»ÓÐÈÔÈ»ÔÚÓõÄÕâÑùµÄ·þÎñÆ÷ÁË¡£</para>
</sect2>
<sect2 id="network-nis-server-is-client">
<title>ͬʱ×÷Ϊ NIS ¿Í»§»úµÄ NIS ·þÎñÆ÷</title>
<para>ÔÚ¶à·þÎñÆ÷ÓòµÄ»·¾³ÖУ¬ Èç¹û·þÎñÆ÷ͬʱ×÷Ϊ NIS ¿Í»§£¬ ÔÚÔËÐÐ
<application>ypserv</application> Ê±ÒªÌØ±ðСÐÄ¡£
Ò»°ãÀ´Ëµ£¬ Ç¿ÖÆ·þÎñÆ÷°ó¶¨×Ô¼ºÒª±ÈÔÊÐíËüÃǹ㲥°ó¶¨ÇëÇóÒªºÃ£¬
ÒòΪÕâÖÖÇé¿öÏÂËüÃÇ¿ÉÄÜ»áÏ໥°ó¶¨¡£ ijЩ¹ÖÒìµÄ¹ÊÕÏ£¬
ºÜ¿ÉÄÜÊÇÓÉÓÚijһ̨·þÎñÆ÷Í£»ú£¬ ¶øÆäËü·þÎñÆ÷¶¼ÒÀÀµÆä·þÎñËùµ¼Öµġ£
×îÖÕ£¬ ËùÓеĿͻ§»ú¶¼»á³¬Ê±²¢°ó¶¨µ½ÆäËü·þÎñÆ÷£¬
µ«Õâ¸öÑÓ³Ù¿ÉÄÜ»áÏ൱¿É¹Û£¬
¶øÇÒ»Ö¸´Ö®ºóÈÔÈ»´æÔÚÔٴη¢Éú´ËÀàÎÊÌâµÄÒþ»¼¡£</para>
<para>Äú¿ÉÒÔÇ¿ÖÆÒ»Ì¨»úÆ÷°ó¶¨µ½Ìض¨µÄ·þÎñÆ÷£¬ ÕâÊÇͨ¹ý
<command>ypbind</command> µÄ <option>-S</option>
²ÎÊýÀ´Íê³ÉµÄ¡£ Èç¹û²»Ï£Íûÿ´ÎÆô¶¯ NIS ·þÎñÆ÷ʱ¶¼ÊÖ¹¤Íê³ÉÕâÏ×÷£¬
¿ÉÒÔÔÚ <filename>/etc/rc.conf</filename> ÖмÓÈ룺</para>
<programlisting>nis_client_enable="YES" # run client stuff as well
nis_client_flags="-S <replaceable>NIS domain</replaceable>,<replaceable>server</replaceable>"</programlisting>
<para>²Î¼û &man.ypbind.8; ÒÔÁ˽â¸ü¶àÇé¿ö¡£</para>
</sect2>
<sect2>
<title>¿ÚÁî¸ñʽ</title>
<indexterm>
<primary>NIS</primary>
<secondary>¿ÚÁî¸ñʽ</secondary>
</indexterm>
<para>ÔÚʵÏÖ NIS ʱ£¬ ¿ÚÁî¸ñʽµÄ¼æÈÝÐÔÎÊÌâÊÇÒ»ÖÖ×îΪ³£¼ûµÄÎÊÌâ¡£
¼ÙÈçÄúµÄ NIS ·þÎñÆ÷ʹÓà DES ¼ÓÃÜ¿ÚÁ ÔòËüÖ»ÄÜÖ§³ÖʹÓà DES
µÄ¿Í»§»ú¡£ ÀýÈ磬 Èç¹ûÄúµÄÍøÂçÉÏÓÐ
&solaris; NIS ¿Í»§»ú£¬ Ôò¼¸ºõ¿Ï¶¨ÐèҪʹÓà DES ¼ÓÃÜ¿ÚÁî¡£</para>
<para>Òª¼ì²éÄúµÄ·þÎñÆ÷ºÍ¿Í»§»úʹÓõĿÚÁî¸ñʽ£¬
ÐèÒª²é¿´ <filename>/etc/login.conf</filename>¡£
Èç¹ûÖ÷»ú±»ÅäÖÃΪʹÓà DES ¼ÓÃܵĿÚÁ Ôò
<literal>default</literal> class ½«°üº¬ÀàËÆÕâÑùµÄÏ</para>
<programlisting>default:\
:passwd_format=des:\
:copyright=/etc/COPYRIGHT:\
[Further entries elided]</programlisting>
<para>ÆäËûһЩ¿ÉÄÜµÄ <literal>passwd_format</literal>
°üÀ¨ <literal>blf</literal> ºÍ <literal>md5</literal>
(·Ö±ð¶ÔÓ¦ÓÚ Blowfish ºÍ MD5 ¼ÓÃÜ¿ÚÁî)¡£</para>
<para>Èç¹ûÐÞ¸ÄÁË
<filename>/etc/login.conf</filename>£¬ ¾Í±ØÐëÖØ½¨µÇ¼ÐÔÄÜÊý¾Ý¿â£¬
ÕâÊÇͨ¹ýÒÔ
<username>root</username> Éí·ÝÔËÐÐÏÂÃæµÄ³ÌÐòÀ´Íê³ÉµÄ£º</para>
<screen>&prompt.root; <userinput>cap_mkdb /etc/login.conf</userinput></screen>
<note><para>ÒѾ­ÔÚ
<filename>/etc/master.passwd</filename> ÖеĿÚÁîµÄ¸ñʽ²»»á±»¸üУ¬
Ö±µ½Óû§ÔڵǼÐÔÄÜÊý¾Ý¿âÖØ½¨
<emphasis>Ö®ºó</emphasis> Ê×´ÎÐ޸ĿÚÁîΪֹ¡£</para></note>
<para>½ÓÏÂÀ´£¬ ΪÁËÈ·±£ËùÓеĿÚÁî¶¼°´ÕÕÄúÑ¡ÔñµÄ¸ñʽ¼ÓÃÜÁË£¬
»¹ÐèÒª¼ì²é <filename>/etc/auth.conf</filename>
ÖÐ <literal>crypt_default</literal> ¸ø³öµÄÓÅÏÈÑ¡ÔñµÄ¿ÚÁî¸ñʽ¡£
ÒªÍê³É´Ë¹¤×÷£¬ ½«ÄúÑ¡ÔñµÄ¸ñʽ·Åµ½ÁбíµÄµÚÒ»Ïî¡£ ÀýÈ磬
µ±Ê¹Óà DES ¼ÓÃܵĿÚÁîʱ£¬ ¶ÔÓ¦ÏîӦΪ£º</para>
<programlisting>crypt_default = des blf md5</programlisting>
<para>ÔÚÿһ̨»ùÓÚ &os; µÄ NIS ·þÎñÆ÷ºÍ¿Í»§»úÉÏÍê³ÉÉÏÊö¹¤×÷Ö®ºó£¬
¾Í¿ÉÒԿ϶¨ÄúµÄÍøÂçÉÏËüÃǶ¼ÔÚʹÓÃͬÑùµÄ¿ÚÁî¸ñʽÁË¡£ Èç¹ûÔÚ NIS
¿Í»§»úÉÏ×öÉí·ÝÑé֤ʱ·¢ÉúÎÊÌ⣬ ÕâÒ²ÊǵÚÒ»¸ö¿ÉÄܳöÏÖÎÊÌâµÄµØ·½¡£
×¢Ò⣺ Èç¹ûÄúÏ£ÍûÔÚ»ìºÏµÄÍøÂçÉϲ¿Êð NIS ·þÎñÆ÷£¬
¿ÉÄܾÍÐèÒªÔÚËùÓÐϵͳÉ϶¼Ê¹Óà DES£¬
ÒòΪÕâÊÇËùÓÐϵͳ¶¼Äܹ»Ö§³ÖµÄ×îµÍÏ޶ȵĹ«¹²±ê×¼¡£</para>
</sect2>
</sect1>
<sect1 id="network-dhcp">
<sect1info>
<authorgroup>
<author>
<firstname>Greg</firstname>
<surname>Sutter</surname>
<contrib>Written by </contrib>
</author>
</authorgroup>
</sect1info>
<title>ÍøÂç×Ô¶¯ÅäÖà (DHCP)</title>
<sect2>
<title>ʲôÊÇ DHCP£¿</title>
<indexterm>
<primary>¶¯Ì¬Ö÷»úÅäÖÃЭÒé</primary>
<see>DHCP</see>
</indexterm>
<indexterm>
<primary>Internet Systems Consortium (ISC)</primary>
</indexterm>
<para>DHCP£¬ ¶¯Ì¬Ö÷»úÅäÖÃЭÒ飬 ÊÇÒ»ÖÖÈÃϵͳµÃÒÔÁ¬½Óµ½ÍøÂçÉÏ£¬
²¢»ñÈ¡ËùÐèÒªµÄÅäÖòÎÊýÊֶΡ£ FreeBSD 6.0 ֮ǰµÄ°æ±¾£¬
²ÉÓõÄÊÇ ISC (Internet Systems
Consortium) µÄ DHCP ¿Í»§¶Ë (&man.dhclient.8;) ʵÏÖ¡£
¸ü¸ß°æ±¾Ê¹ÓõÄÔòÊÇÀ´×Ô OpenBSD&nbsp;3.7
µÄ OpenBSD <command>dhclient</command>¡£
ÕâÀïÌṩµÄËùÓйØÓÚ <command>dhclient</command> µÄÐÅÏ¢£¬
¶¼ÊÇÒÔ ISC »ò OpenBSD DHCP ¿Í»§¶Ë³ÌÐòΪ׼µÄ¡£ DHCP
·þÎñÆ÷ÊÇ ISC Èí¼þ°üµÄÒ»²¿·Ö¡£</para>
</sect2>
<sect2>
<title>ÕâÒ»½Ú¶¼½éÉÜÄÄЩÄÚÈÝ</title>
<para>ÕâÒ»½ÚÃèÊöÁË ISC ºÍ DHCP ϵͳÖеĿͻ§¶Ë£¬
ÒÔ¼°ºÍ ISC DHCP ϵͳÖеķþÎñÆ÷¶ËµÄ×é¼þ¡£
¿Í»§¶Ë³ÌÐò£¬ <command>dhclient</command>£¬
ÊÇËæ FreeBSD ×÷ΪËüµÄÒ»²¿·ÖÌṩµÄ£» ¶ø·þÎñÆ÷²¿·Ö£¬
Ôò¿ÉÒÔͨ¹ý <filename
role="package">net/isc-dhcp31-server</filename> port µÃµ½¡£
&man.dhclient.8;¡¢ &man.dhcp-options.5;¡¢ ÒÔ¼°
&man.dhclient.conf.5; Áª»úÊֲᣬ ¼ÓÉÏÏÂÃæËù½éÉܵIJο¼ÎÄÏ×£¬
¶¼ÊǷdz£ÓÐÓõÄ×ÊÔ´¡£</para>
</sect2>
<sect2>
<title>ËüÈçºÎ¹¤×÷</title>
<indexterm><primary>UDP</primary></indexterm>
<para>µ± DHCP ¿Í»§³ÌÐò£¬ <command>dhclient</command>
ÔÚ¿Í»§»úÉÏÔËÐÐʱ£¬ Ëü»á¿ªÊ¼¹ã²¥ÇëÇóÅäÖÃÐÅÏ¢µÄÏûÏ¢¡£ ĬÈÏÇé¿öÏ£¬
ÕâЩÇëÇóÊÇÔÚ UDP ¶Ë¿Ú 68 ÉÏ¡£ ·þÎñÆ÷ͨ¹ý UDP 67
¸ø³öÏìÓ¦£¬ Ïò¿Í»§»úÌṩһ¸ö IP µØÖ·£¬ ÒÔ¼°ÆäËûÓйصÄÅäÖòÎÊý£¬
ÀýÈç×ÓÍøÑÚÂë¡¢ ·ÓÉÆ÷£¬ ÒÔ¼° DNS ·þÎñÆ÷¡£
ËùÓÐÕâЩÐÅÏ¢¶¼»áÒÔ DHCP
<quote>lease</quote> µÄÐÎʽ¸ø³ö£¬ ²¢ÇÒÖ»ÔÚÒ»¶ÎÌØ¶¨µÄʱ¼äÄÚÓÐЧ
(ÕâÊÇÓÉ DHCP ·þÎñÆ÷µÄά»¤ÕßÅäÖõÄ)¡£ ÕâÑù£¬
ÄÇЩÒѾ­¶Ï¿ªÍøÂçµÄ¿Í»§»úʹÓÃµÄ³Â¾ÉµÄ IP µØÖ·¾ÍÄܱ»×Ô¶¯µØ»ØÊÕÁË¡£</para>
<para>DHCP ¿Í»§³ÌÐò¿ÉÒÔ´Ó·þÎñÆ÷¶Ë»ñÈ¡´óÁ¿µÄÐÅÏ¢¡£
¹ØÓÚÄÜ»ñµÃµÄÐÅÏ¢µÄÏêϸÁÐ±í£¬ Çë²Î¿¼
&man.dhcp-options.5;¡£</para>
</sect2>
<sect2>
<title>FreeBSD ¼¯³É</title>
<para>FreeBSD ÍêÈ«µØ¼¯³ÉÁË ISC »ò OpenBSD µÄ DHCP ¿Í»§¶Ë£¬
<command>dhclient</command> (È¡¾öÓÚÄúÔËÐÐµÄ &os; °æ±¾)¡£
DHCP ¿Í»§¶Ë±»°²×°³ÌÐòÖ±½ÓÖ§³Ö£¬
²¢ÇÒÊÇ»ù±¾ÏµÍ³µÄÒ»²¿·Ö¡£
ÕâʹµÃÄú²»ÔÙÐèҪȥÁ˽âÄÇЩÒѾ­ÔËÐÐÁË DHCP ·þÎñÆ÷µÄÍøÂçµÄ¾ßÌåÅäÖòÎÊý¡£
´Ó FreeBSD 3.2 ¿ªÊ¼£¬ ÿһ¸ö·¢ÐаæÖоù°üº¬ <command>dhclient</command>¡£</para>
<indexterm>
<primary><application>sysinstall</application></primary>
</indexterm>
<para><application>sysinstall</application> Äܹ»Ö§³Ö DHCP¡£ ÔÚ
<application>sysinstall</application> ÖÐÅäÖÃÍøÂç½Ó¿Úʱ£¬
ËüѯÎʵĵڶþ¸öÎÊÌâ±ãÊÇ£º <quote>Do you want to try DHCP configuration of
the interface? (ÄúÊÇ·ñÏ£ÍûÔڴ˽ӿÚÉϳ¢ÊÔ DHCP ÅäÖÃ?)</quote>¡£
Èç¹û×ö¿Ï¶¨µÄ»Ø´ð£¬ Ôò½«ÔËÐÐ <command>dhclient</command>£¬
Ò»µ©³É¹¦£¬ Ôò½«×Ô¶¯µØÌîÐ´ÍøÂçÅäÖÃÐÅÏ¢¡£</para>
<para>ÒªÔÚϵͳÆô¶¯Ê±Ê¹Óà DHCP£¬ Äú±ØÐë×öÁ½¼þÊ£º</para>
<indexterm>
<primary>DHCP</primary>
<secondary>ÐèÇó</secondary>
</indexterm>
<itemizedlist>
<listitem>
<para>ÄúµÄÄÚºËÖУ¬ ±ØÐë°üº¬ <devicename>bpf</devicename>
É豸¡£ Èç¹ûÐèÒªÕâÑù×ö£¬ ÐèÒª½«
<literal>device bpf</literal> Ìí¼Óµ½Äں˵ıàÒëÅäÖÃÎļþÖУ¬ ²¢ÖØÐ±àÒëÄںˡ£
ÒªÁË½â¹ØÓÚ±àÒëÄں˵ĽøÒ»²½ÐÅÏ¢£¬ Çë²Î¼û <xref
linkend="kernelconfig">¡£</para> <para><devicename>bpf</devicename>
É豸ÒѾ­ÊÇ FreeBSD ·¢ÐаæÖÐĬÈ쵀 <filename>GENERIC</filename>
Äں˵ÄÒ»²¿·ÖÁË£¬ Òò´ËÈç¹ûÄúûÓжÔÄں˽øÐж¨ÖÆ£¬
Ôò²»Óô´½¨Ò»·ÝеÄÄÚºËÅäÖÃÎļþ£¬ DHCP ¾ÍÄܹ¤×÷ÁË¡£</para>
<note>
<para>¶ÔÓÚÄÇЩ°²È«ÒâʶºÜÇ¿µÄÈËÀ´Ëµ£¬
ÄúÓ¦¸ÃÖªµÀ <devicename>bpf</devicename>
Ò²ÊǰüÕìÌý¹¤¾ßÄܹ»ÕýÈ·¹¤×÷µÄÌõ¼þÖ®Ò» (µ±È»£¬
ËüÃÇ»¹ÐèÒªÒÔ
<username>root</username> Éí·ÝÔËÐвÅÐÐ)¡£ <devicename>bpf</devicename>
<emphasis>ÊÇ</emphasis> ʹÓà DHCP Ëù±ØÐëµÄ£¬
µ«Èç¹ûÄú¶Ô°²È«·Ç³£Ãô¸Ð£¬
ÔòºÜ¿ÉÄÜ»áÓÐÀíÓɲ»°Ñ <devicename>bpf</devicename>
¼ÓÈëµ½ÄúµÄÄÚºËÅäÖÃÖУ¬ Ö±µ½ÄúÕæµÄÐèҪʹÓà DHCP
Ϊֹ¡£</para>
</note>
</listitem>
<listitem>
<para>±à¼­ÄúµÄ <filename>/etc/rc.conf</filename> ²¢¼ÓÈëÏÂÃæµÄÉèÖãº</para>
<programlisting>ifconfig_fxp0="DHCP"</programlisting>
<note>
<para>Îñ±Ø½« <literal>fxp0</literal>
Ìæ»»ÎªÄúÏ£Íû×Ô¶¯ÅäÖõÄÍøÂç½Ó¿ÚµÄÃû×Ö£¬ Äú¿ÉÒÔÔÚ
<xref linkend="config-network-setup"> ÕÒµ½¸ü½øÒ»²½µÄ½éÉÜ¡£</para>
</note>
<para>Èç¹ûÄúÏ£ÍûʹÓÃÁíһλÖõÄ
<command>dhclient</command>£¬
»òÕßÐèÒª¸ø <command>dhclient</command> ´«µÝÆäËû²ÎÊý£¬
»¹¿ÉÒÔÌí¼ÓÏÂÃæµÄÅäÖà (¸ù¾ÝÐèÒª½øÐÐÐÞ¸Ä)£º</para>
<programlisting>dhclient_program="/sbin/dhclient"
dhclient_flags=""</programlisting>
</listitem>
</itemizedlist>
<indexterm>
<primary>DHCP</primary>
<secondary>·þÎñÆ÷</secondary>
</indexterm>
<para>DHCP ·þÎñÆ÷£¬ <application>dhcpd</application>£¬
ÊÇ×÷Ϊ <filename
role="package">net/isc-dhcp31-server</filename> port µÄÒ»²¿·ÖÌṩµÄ¡£
Õâ¸ö port °üÀ¨ÁË ISC DHCP ·þÎñÆ÷¼°ÆäÎĵµ¡£</para>
</sect2>
<sect2>
<title>Îļþ</title>
<indexterm>
<primary>DHCP</primary>
<secondary>ÅäÖÃÎļþ</secondary>
</indexterm>
<itemizedlist>
<listitem><para><filename>/etc/dhclient.conf</filename></para>
<para><command>dhclient</command> ÐèÒªÒ»¸öÅäÖÃÎļþ£¬
<filename>/etc/dhclient.conf</filename>¡£ Ò»°ã˵À´£¬
Õâ¸öÎļþÖÐÖ»°üÀ¨×¢ÊÍ£¬ ¶øÄ¬ÈÏÖµ»ù±¾É϶¼ÊǺÏÀíµÄ¡£
Õâ¸öÅäÖÃÎļþÔÚ &man.dhclient.conf.5; Áª»úÊÖ²áÖнøÐÐÁ˽øÒ»²½µÄ²ûÊö¡£</para>
</listitem>
<listitem><para><filename>/sbin/dhclient</filename></para>
<para><command>dhclient</command> ÊÇÒ»¸ö¾²Ì¬Á¬±àµÄ£¬
Ëü±»°²×°µ½ <filename>/sbin</filename> ÖС£ &man.dhclient.8;
Áª»úÊÖ²á¸ø³öÁ˹ØÓÚ
<command>dhclient</command> µÄ½øÒ»²½Ï¸½Ú¡£</para>
</listitem>
<listitem><para><filename>/sbin/dhclient-script</filename></para>
<para><command>dhclient-script</command> ÊÇÒ»¸ö FreeBSD רÓõÄ
DHCP ¿Í»§¶ËÅäÖýű¾¡£ ÔÚ
&man.dhclient-script.8; ÖжÔËü½øÐÐÁËÃèÊö£¬
µ«Ò»°ãÀ´Ëµ£¬ Óû§²»ÐèÒª¶ÔÆä½øÐÐÈκÎÐ޸ģ¬
¾ÍÄܹ»ÈÃÒ»ÇÐÕý³£ÔËתÁË¡£</para>
</listitem>
<listitem><para><filename>/var/db/dhclient.leases</filename></para>
<para>DHCP ¿Í»§³ÌÐò»áά»¤Ò»¸öÊý¾Ý¿âÀ´±£´æÓÐЧµÄ lease£¬
ËüÃDZ»ÒÔÈÕÖ¾µÄÐÎʽ±£´æµ½Õâ¸öÎļþÖС£ &man.dhclient.leases.5;
¸ø³öÁ˸üΪϸÖµĽéÉÜ¡£</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>½ø½×¶ÁÎï</title>
<para>DHCP ЭÒéµÄÍêÕûÃèÊöÊÇ
<ulink url="http://www.freesoft.org/CIE/RFC/2131/">RFC 2131</ulink>¡£
¹ØÓÚËüµÄÆäËûÐÅÏ¢×ÊÔ´µÄÕ¾µã
<ulink url="http://www.dhcp.org/"></ulink>
Ò²ÌṩÁËÏ꾡µÄ×ÊÁÏ¡£</para>
</sect2>
<sect2 id="network-dhcp-server">
<title>°²×°ºÍÅäÖà DHCP ·þÎñÆ÷</title>
<sect3>
<title>ÕâÒ»Õ°üº¬ÄÄЩÄÚÈÝ</title>
<para>ÕâÒ»ÕÂÌṩÁ˹ØÓÚÈçºÎÔÚ FreeBSD ϵͳÉÏʹÓà ISC
(Internet ϵͳЭ»á) µÄ DHCP ʵÏÖÌ×¼þÀ´¼ÜÉè DHCP ·þÎñÆ÷µÄÐÅÏ¢¡£</para>
<para>DHCP Ì×¼þÖеķþÎñÆ÷²¿·Ö²¢Ã»ÓÐ×÷Ϊ FreeBSD µÄÒ»²¿·ÖÀ´Ìṩ£¬
Òò´ËÄúÐèÒª°²×°
<filename role="package">net/isc-dhcp31-server</filename>
port ²ÅÄÜÌṩÕâ¸ö·þÎñ¡£ Çë²Î¼û <xref linkend="ports">
ÒÔÁË½â¹ØÓÚÈçºÎʹÓà Ports Collection µÄ½øÒ»²½ÏêÇé¡£</para>
</sect3>
<sect3>
<title>°²×° DHCP ·þÎñÆ÷</title>
<indexterm>
<primary>DHCP</primary>
<secondary>°²×°</secondary>
</indexterm>
<para>ΪÁËÔÚÄúµÄ FreeBSD ϵͳÉϽøÐÐÅäÖÃÒÔ±ã×÷Ϊ DHCP ·þÎñÆ÷À´Ê¹Óã¬
ÐèÒª°Ñ &man.bpf.4; É豸±àÒë½øÄںˡ£ ÒªÍê³ÉÕâÏ×÷£¬ ÐèÒª½«
<literal>device bpf</literal> ¼ÓÈëµ½ÄúµÄÄÚºËÅäÖÃÎļþÖУ¬
²¢ÖØÐÂÁª±àÄںˡ£ ÒªµÃµ½¹ØÓÚÈçºÎÁª±àÄں˵ĽøÒ»²½ÐÅÏ¢£¬ Çë²Î¼û
<xref linkend="kernelconfig">¡£</para>
<para><devicename>bpf</devicename> É豸ÊÇ FreeBSD Ëù¸½´øµÄ
<filename>GENERIC</filename> ÄÚºËÖÐÒѾ­ÁªÈëµÄ×é¼þ£¬
Òò´ËÄú²¢²»ÐèҪΪÁËÈà DHCP Õý³£¹¤×÷¶øÌØ±ðµØ¶¨ÖÆÄںˡ£</para>
<note>
<para>Èç¹ûÄúÓнÏÇ¿µÄ°²È«Òâʶ£¬ Ó¦¸Ã×¢Òâ
<devicename>bpf</devicename> ͬʱҲÊÇÈÃÌý°ü³ÌÐòÄܹ»ÕýÈ·¹¤×÷µÄÉ豸
(¾¡¹ÜÕâÀà³ÌÐòÈÔÈ»ÐèÒªÒÔÌØÈ¨Óû§Éí·ÝÔËÐÐ)¡£
<devicename>bpf</devicename>
<emphasis>ÊÇ</emphasis> ʹÓà DHCP Ëù±ØÐèµÄ£¬
µ«Èç¹ûÄú¶Ô°²È«·Ç³£Ãô¸Ð£¬ Äú¿ÉÄܻ᲻ϣÍû½«
<devicename>bpf</devicename> ·Å½øÄںˣ¬
Ö±µ½ÄúÕæµÄÈÏΪ DHCP ÊDZØÐèµÄΪֹ¡£</para>
</note>
<para>½ÓÏÂÀ´Òª×öµÄÊDZ༭ʾ·¶µÄ
<filename>dhcpd.conf</filename>£¬ ËüÓÉ
<filename role="package">net/isc-dhcp31-server</filename> port
°²×°¡£ ĬÈÏÇé¿öÏ£¬ ËüµÄÃû×ÖÓ¦¸ÃÊÇ
<filename>/usr/local/etc/dhcpd.conf.sample</filename>£¬
ÔÚ¿ªÊ¼ÐÞ¸Ä֮ǰ£¬ ÄúÐèÒª°ÑËü¸´ÖÆÎª
<filename>/usr/local/etc/dhcpd.conf</filename>¡£</para>
</sect3>
<sect3>
<title>ÅäÖà DHCP ·þÎñÆ÷</title>
<indexterm>
<primary>DHCP</primary>
<secondary>dhcpd.conf</secondary>
</indexterm>
<para><filename>dhcpd.conf</filename> °üº¬ÁËһϵÁйØÓÚ×ÓÍøºÍÖ÷»úµÄ¶¨Ò壬
ÏÂÃæµÄÀý×Ó¿ÉÒÔ°ïÖúÄúÀí½âËü£º</para>
<programlisting>option domain-name "example.com";<co id="domain-name">
option domain-name-servers 192.168.4.100;<co id="domain-name-servers">
option subnet-mask 255.255.255.0;<co id="subnet-mask">
default-lease-time 3600;<co id="default-lease-time">
max-lease-time 86400;<co id="max-lease-time">
ddns-update-style none;<co id="ddns-update-style">
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.129 192.168.4.254;<co id="range">
option routers 192.168.4.1;<co id="routers">
}
host mailhost {
hardware ethernet 02:03:04:05:06:07;<co id="hardware">
fixed-address mailhost.example.com;<co id="fixed-address">
}</programlisting>
<calloutlist>
<callout arearefs="domain-name">
<para>Õâ¸öÑ¡ÏîÖ¸¶¨ÁËÌṩ¸ø¿Í»§»ú×÷ΪĬÈÏËÑË÷ÓòµÄÓòÃû¡£ Çë²Î¿¼
&man.resolv.conf.5; ÒÔÁË½â¹ØÓÚÕâÒ»¸ÅÄîµÄÏêÇé¡£</para>
</callout>
<callout arearefs="domain-name-servers">
<para>Õâ¸öÑ¡ÏîÓÃÓÚÖ¸¶¨Ò»×é¿Í»§»úʹÓÃµÄ DNS ·þÎñÆ÷£¬
ËüÃÇÖ®¼äÒÔ¶ººÅ·Ö¸ô¡£</para>
</callout>
<callout arearefs="subnet-mask">
<para>Ìṩ¸ø¿Í»§»úµÄ×ÓÍøÑÚÂë¡£</para>
</callout>
<callout arearefs="default-lease-time">
<para>¿Í»§»ú¿ÉÒÔÇëÇó×âÔ¼µÄÓÐЧÆÚ£¬ ¶øÈç¹ûûÓУ¬
Ôò·þÎñÆ÷½«Ö¸¶¨Ò»¸ö×âÔ¼ÓÐЧÆÚ£¬ Ò²¾ÍÊÇÕâ¸öÖµ (µ¥Î»ÊÇÃë)¡£</para>
</callout>
<callout arearefs="max-lease-time">
<para>ÕâÊÇ·þÎñÆ÷ÔÊÐí×â³öµØÖ·µÄ×î´óʱ³¤¡£
Èç¹û¿Í»§»úÇëÇóÁ˸ü³¤µÄ×âÆÚ£¬ ÔòËü½«µÃµ½Ò»¸öµØÖ·£¬
µ«Æä×âÆÚ½öÏÞÓÚ <literal>max-lease-time</literal> Ãë¡£</para>
</callout>
<callout arearefs="ddns-update-style">
<para>Õâ¸öÑ¡ÏîÓÃÓÚÖ¸¶¨ DHCP ·þÎñÆ÷ÔÚÒ»¸öµØÖ·±»½ÓÊÜ»òÊÍ·ÅʱÊÇ·ñÓ¦¶ÔÓ¦³¢ÊÔ¸üÐÂ
DNS¡£ ÔÚ ISC ʵÏÖÖУ¬ ÕâһѡÏîÊÇ <emphasis>±ØÐëÖ¸¶¨µÄ</emphasis>¡£</para>
</callout>
<callout arearefs="range">
<para>Ö¸¶¨µØÖ·³ØÖпÉÒÔÓÃÀ´·ÖÅ䏸¿Í»§»úµÄ IP µØÖ··¶Î§¡£
ÔÚÕâ¸ö·¶Î§Ö®¼ä£¬ ÒÔ¼°Æä±ß½çµÄ IP µØÖ·½«·ÖÅ䏸¿Í»§»ú¡£</para>
</callout>
<callout arearefs="routers">
<para>¶¨Òå¿Í»§»úµÄĬÈÏÍø¹Ø¡£</para>
</callout>
<callout arearefs="hardware">
<para>Ö÷»úµÄÓ²¼þ MAC µØÖ· (ÕâÑù DHCP
·þÎñÆ÷¾ÍÄܹ»ÔÚ½Óµ½ÇëÇóʱ֪µÀÇëÇóµÄÖ÷»úÉí·Ý)¡£</para>
</callout>
<callout arearefs="fixed-address">
<para>Ö¸¶¨×ÜÊǵõ½Í¬Ò» IP µØÖ·µÄÖ÷»ú¡£
Çë×¢ÒâÔÚ´Ë´¦Ê¹ÓÃÖ÷»úÃûÊǶԵģ¬ ÒòΪ DHCP
·þÎñÆ÷»áÔÚ·µ»Ø×â½èµØÖ·ÐÅϢ֮ǰ×ÔÐнâÎöÖ÷»úÃû¡£</para>
</callout>
</calloutlist>
<para>ÔÚÅäÖÆºÃ
<filename>dhcpd.conf</filename> Ö®ºó£¬ Ó¦ÔÚ
<filename>/etc/rc.conf</filename> ÖÐÆôÓà DHCP ·þÎñÆ÷£¬
Ò²¾ÍÊÇÔö¼Ó£º</para>
<programlisting>dhcpd_enable="YES"
dhcpd_ifaces="dc0"</programlisting>
<para>´Ë´¦µÄ <literal>dc0</literal> ½Ó¿ÚÃûÓ¦¸ÄΪ DHCP
·þÎñÆ÷ÐèÒª¼àÌý DHCP ¿Í»§¶ËÇëÇóµÄ½Ó¿Ú (Èç¹ûÓжà¸ö£¬ ÔòÓÿոñ·Ö¿ª)¡£</para>
<para>½ÓÏÂÀ´£¬ ¿ÉÒÔÓÃÏÂÃæµÄÃüÁîÀ´Æô¶¯·þÎñ£º</para>
<screen>&prompt.root; <userinput>/usr/local/etc/rc.d/isc-dhcpd start</userinput></screen>
<para>Èç¹ûδÀ´ÄúÐèÒªÐ޸ķþÎñÆ÷µÄÅäÖ㬠ÇëÎñ±ØÀμǷ¢ËÍ
<literal>SIGHUP</literal> ÐźŸø
<application>dhcpd</application> ²¢ <emphasis>²»»á</emphasis>
µ¼ÖÂÅäÖÃÎļþµÄÖØÐ¼ÓÔØ£¬ ¶øÕâÔÚÆäËû·þÎñ³ÌÐòÖÐÔòÊÇ±È½ÏÆÕ±éµÄÔ¼¶¨¡£
ÄúÐèÒª·¢ËÍ <literal>SIGTERM</literal> ÐźÅÀ´Í£Ö¹½ø³Ì£¬
È»ºóʹÓÃÉÏÃæµÄÃüÁîÀ´ÖØÐÂÆô¶¯Ëü¡£</para>
</sect3>
<sect3>
<title>Îļþ</title>
<indexterm>
<primary>DHCP</primary>
<secondary>ÅäÖÃÎļþ</secondary>
</indexterm>
<itemizedlist>
<listitem><para><filename>/usr/local/sbin/dhcpd</filename></para>
<para><application>dhcpd</application> ÊǾ²Ì¬Á¬½ÓµÄ£¬ ²¢°²×°µ½
<filename>/usr/local/sbin</filename> ÖС£ Ëæ port °²×°µÄ
&man.dhcpd.8; Áª»úÊÖ²áÌṩÁ˹ØÓÚ
<application>dhcpd</application> ¸üΪÏ꾡µÄÐÅÏ¢¡£</para>
</listitem>
<listitem><para><filename>/usr/local/etc/dhcpd.conf</filename></para>
<para><application>dhcpd</application> ÐèÒªÅäÖÃÎļþ£¬
¼´ <filename>/usr/local/etc/dhcpd.conf</filename>
²ÅÄܹ»Ïò¿Í»§»úÌṩ·þÎñ¡£ Õâ¸öÎļþÐèÒª°üÀ¨Ó¦Ìṩ¸ø¿Í»§»úµÄËùÓÐÐÅÏ¢£¬
ÒÔ¼°¹ØÓÚ·þÎñÆ÷ÔËÐÐµÄÆäËûÐÅÏ¢¡£ ´ËÅäÖÃÎļþµÄÏêϸÃèÊö¿ÉÒÔÔÚËæ port
°²×°µÄ &man.dhcpd.conf.5; Áª»úÊÖ²áÉÏÕÒµ½¡£</para>
</listitem>
<listitem><para><filename>/var/db/dhcpd.leases</filename></para>
<para>DHCP ·þÎñÆ÷»áά»¤Ò»¸öËüÇ©·¢µÄ×âÓõØÖ·Êý¾Ý¿â£¬
²¢±£´æÔÚÕâ¸öÎļþÖУ¬ Õâ¸öÎļþÊÇÒÔÈÕÖ¾µÄÐÎʽ±£´æµÄ¡£
Ëæ port °²×°µÄ
&man.dhcpd.leases.5; Áª»úÊÖ²áÌṩÁ˸üÏêϸµÄÃèÊö¡£</para>
</listitem>
<listitem><para><filename>/usr/local/sbin/dhcrelay</filename></para>
<para><application>dhcrelay</application> ÔÚ¸üΪ¸´ÔӵĻ·¾³ÖУ¬
¿ÉÒÔÓÃÀ´Ö§³ÖʹÓà DHCP ·þÎñÆ÷ת·¢ÇëÇó¸øÁíÒ»¸ö¶ÀÁ¢ÍøÂçÉϵÄ
DHCP ·þÎñÆ÷¡£ Èç¹ûÄúÐèÒªÕâ¸ö¹¦ÄÜ£¬ ÐèÒª°²×° <filename
role="package">net/isc-dhcp31-relay</filename> port¡£
&man.dhcrelay.8; Áª»úÊÖ²áÌṩÁ˸üΪÏ꾡µÄ½éÉÜ¡£</para>
</listitem>
</itemizedlist>
</sect3>
</sect2>
</sect1>
<sect1 id="network-dns">
<sect1info>
<authorgroup>
<author>
<firstname>Chern</firstname>
<surname>Lee</surname>
<contrib>Contributed by </contrib>
</author>
<author>
<firstname>Tom</firstname>
<surname>Rhodes</surname>
</author>
<author>
<firstname>Daniel</firstname>
<surname>Gerzo</surname>
</author>
</authorgroup>
</sect1info>
<title>ÓòÃûϵͳ (<acronym>DNS</acronym>)</title>
<sect2>
<title>×ÝÀÀ</title>
<indexterm><primary>BIND</primary></indexterm>
<para>&os; ÔÚĬÈÏÇé¿öÏÂʹÓÃÒ»¸ö°æ±¾µÄ BIND (Berkeley
Internet Name Domain)£¬ ÕâÊÇĿǰ×îΪÁ÷ÐÐµÄ <acronym>DNS</acronym> ЭÒéʵÏÖ¡£
<acronym>DNS</acronym> ÊÇÒ»ÖÖЭÒ飬 ¿ÉÒÔͨ¹ýËü½«ÓòÃûͬ <acronym>IP</acronym> µØÖ·Ï໥¶ÔÓ¦¡£
ÀýÈ磬 ²éѯ <hostid role="fqdn">www.FreeBSD.org</hostid>
½«µÃµ½ &os; Project µÄ web ·þÎñÆ÷µÄ <acronym>IP</acronym> µØÖ·£¬ ¶ø²éѯ <hostid
role="fqdn">ftp.FreeBSD.org</hostid> Ôò½«µÃµ½ÏìÓ¦µÄ <acronym>FTP</acronym> »úÆ÷µÄ
<acronym>IP</acronym> µØÖ·¡£ ÀàËÆµØ£¬ Ò²¿ÉÒÔ×öÏà·´µÄÊÂÇé¡£ ²éѯ <acronym>IP</acronym>
µØÖ·¿ÉÒԵõ½ÆäÖ÷»úÃû¡£ µ±È»£¬ Íê³É <acronym>DNS</acronym>
²éѯ²¢²»ÐèÒªÔÚϵͳÖÐÔËÐÐÓòÃû·þÎñÆ÷¡£</para>
<para>Ŀǰ£¬ ĬÈÏÇé¿öÏÂ&os; ʹÓõÄÊÇ <acronym>BIND</acronym>9
<acronym>DNS</acronym> ·þÎñÈí¼þ¡£ ÎÒÃÇÄÚ½¨ÓÚϵͳÖеİ汾ÌṩÁËÔöÇ¿µÄ°²È«ÌØÐÔ¡¢
еÄÎļþĿ¼½á¹¹£¬ ÒÔ¼°×Ô¶¯µÄ &man.chroot.8; ÅäÖá£</para>
<indexterm><primary>DNS</primary></indexterm>
<para>ÔÚ Internet É쵀 <acronym>DNS</acronym> ÊÇͨ¹ýÒ»Ì×½ÏΪ¸´ÔÓµÄȨÍþ¸ùÓòÃûϵͳ£¬
¶¥¼¶ÓòÃû (<acronym>TLD</acronym>)£¬ ÒÔ¼°Ò»ÏµÁÐС¹æÄ£µÄ£¬
ÌṩÉÙÁ¿ÓòÃû½âÎö·þÎñ²¢¶ÔÓòÃûÐÅÏ¢½øÐлº´æµÄÓòÃû·þÎñÆ÷×é³ÉµÄ¡£</para>
<para>Ŀǰ£¬ BIND ÓÉ
Internet Systems Consortium
<ulink url="https://www.isc.org/"></ulink>
ά»¤¡£</para>
</sect2>
<sect2>
<title>ÊõÓï</title>
<para>ÒªÀí½âÕâ·ÝÎĵµ£¬ ÐèÒªÊ×ÏÈÁ˽âһЩÏà¹ØµÄ
<acronym>DNS</acronym> ÊõÓï¡£</para>
<indexterm><primary>resolver (½âÎöÆ÷)</primary></indexterm>
<indexterm><primary>reverse DNS (·´Ïò DNS)</primary></indexterm>
<indexterm><primary>root zone (¸ùÓò)</primary></indexterm>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<colspec colwidth="1*">
<colspec colwidth="3*">
<thead>
<row>
<entry>ÊõÓï</entry>
<entry>¶¨Òå</entry>
</row>
</thead>
<tbody>
<row>
<entry>ÕýÏò <acronym>DNS</acronym></entry>
<entry>½«ÓòÃûÓ³Éäµ½ IP µØÖ·</entry>
</row>
<row>
<entry>Ô­µã (Origin)</entry>
<entry>±íÊ¾ÌØ¶¨ÓòÎļþËùÔÚµÄÓò</entry>
</row>
<row>
<entry><application>named</application>, BIND</entry>
<entry>ÔÚ &os; ÖÐ BIND ÓòÃû·þÎñÆ÷Èí¼þ°üµÄ³£¼û½Ð·¨¡£</entry>
</row>
<row>
<entry>½âÎöÆ÷ (Resolver)</entry>
<entry>¼ÆËã»úÓÃÒÔÏòÓòÃû·þÎñÆ÷²éѯÓòÃûÐÅÏ¢µÄÒ»¸öϵͳ½ø³Ì</entry>
</row>
<row>
<entry>·´Ïò <acronym>DNS</acronym></entry>
<entry>½« <acronym>IP</acronym> µØÖ·Ó³ÉäΪÖ÷»úÃû</entry>
</row>
<row>
<entry>¸ùÓò</entry>
<entry>Internet Óò²ã´ÎµÄÆðµã¡£ ËùÓеÄÓò¶¼ÔÚ¸ùÓò֮ϣ¬
ÀàËÆÎļþϵͳÖУ¬ Îļþ¶¼ÔÚ¸ùĿ¼֮ÏÂÄÇÑù¡£</entry>
</row>
<row>
<entry>Óò (Zone)</entry>
<entry>¶ÀÁ¢µÄÓò£¬ ×ÓÓò£¬ »òÕßÓÉͬһ»ú¹¹¹ÜÀíµÄ <acronym>DNS</acronym> µÄÒ»²¿·Ö¡£</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<indexterm>
<primary>Óò</primary>
<secondary>Àý×Ó</secondary>
</indexterm>
<para>ÓòµÄÀý×Ó£º</para>
<itemizedlist>
<listitem>
<para><hostid>.</hostid> ÔÚ±¾ÎĵµÖÐͨ³£Ö¸´ú¸ùÓò¡£</para>
</listitem>
<listitem>
<para><hostid>org.</hostid> ÊǸùÓò֮ϵÄÒ»¸ö¶¥¼¶ÓòÃû
(<acronym>TLD</acronym>)¡£</para>
</listitem>
<listitem>
<para><hostid role="domainname">example.org.</hostid> ÊÇÔÚ
<hostid>org.</hostid>
<acronym>TLD</acronym> ֮ϵÄÒ»¸öÓò¡£</para>
</listitem>
<listitem>
<para><hostid>1.168.192.in-addr.arpa</hostid> ÊÇÒ»¸ö±íʾËùÓÐ
<hostid role="ipaddr">192.168.1.*</hostid>
<acronym>IP</acronym> µØÖ·¿Õ¼äÖÐ <acronym>IP</acronym>
µØÖ·µÄÓò¡£</para>
</listitem>
</itemizedlist>
<para>ÈçÄúËù¼û£¬ ÓòÃûÖÐԽϸ½ÚµÄ²¿·Ö»áÔ½¿¿×ó³öÏÖ¡£ ÀýÈ磬 <hostid
role="domainname">example.org.</hostid> ¾Í±È
<hostid>org.</hostid> ·¶Î§¸üС£¬ ÀàËÆµØ <hostid>org.</hostid> ÓֱȸùÓò¸üС¡£
ÓòÃû¸÷¸ö²¿·ÖµÄ¸ñ¾ÖÓëÎļþϵͳʮ·ÖÀàËÆ£º
<filename class="directory">/dev</filename> Ŀ¼ÔÚ¸ùĿ¼֮Ï£¬ µÈµÈ¡£</para>
</sect2>
<sect2>
<title>ÔËÐÐÓòÃû·þÎñÆ÷µÄÀíÓÉ</title>
<para>ÓòÃû·þÎñÆ÷ͨ³£»áÓÐÁ½ÖÖÐÎʽ£º ȨÍþÓòÃû·þÎñÆ÷£¬
ÒÔ¼°»º´æÓòÃû·þÎñÆ÷¡£</para>
<para>ÏÂÁÐÇé¿öÐèÒªÓÐȨÍþÓòÃû·þÎñÆ÷£º</para>
<itemizedlist>
<listitem>
<para>ÏëÒªÏòÈ«ÊÀ½çÌṩ <acronym>DNS</acronym> ÐÅÏ¢£¬
²¢¶ÔÇëÇó¸ø³öȨÍþÓ¦´ð¡£</para>
</listitem>
<listitem>
<para>×¢²áÁËÀàËÆ <hostid role="domainname">example.org</hostid>
µÄÓò£¬ ¶øÐèÒª½« <acronym>IP</acronym> Ö¸¶¨µ½ÆäϵÄÖ÷»úÃûÉÏ¡£</para>
</listitem>
<listitem>
<para>ij¸ö <acronym>IP</acronym> µØÖ·¿éÐèÒª·´Ïò
<acronym>DNS</acronym> Ïî (<acronym>IP</acronym> µ½Ö÷»úÃû)¡£</para>
</listitem>
<listitem>
<para>±¸·Ý·þÎñÆ÷£¬ »ò³£ËµµÄ´Ó (slave) ·þÎñÆ÷£¬
»áÔÚÖ÷·þÎñÆ÷³öÏÖÎÊÌâ»òÎÞ·¨·ÃÎÊʱÀ´Ó¦´ð²éѯÇëÇó¡£</para>
</listitem>
</itemizedlist>
<para>ÏÂÁÐÇé¿öÐèÒªÓлº´æÓòÃû·þÎñÆ÷£º</para>
<itemizedlist>
<listitem>
<para>±¾µØµÄ <acronym>DNS</acronym> ·þÎñÆ÷Äܹ»»º´æ£¬
²¢±ÈÖ±½ÓÏòÍâ½çµÄÓòÃû·þÎñÆ÷ÇëÇó¸ü¿ìµØµÃµ½Ó¦´ð¡£</para>
</listitem>
</itemizedlist>
<para>µ±ÓÐÈ˲éѯ <hostid
role="fqdn">www.FreeBSD.org</hostid> ʱ£¬½âÎöÆ÷ͨ³£»áÏòÉϼ¶
<acronym>ISP</acronym> µÄÓòÃû·þÎñÆ÷·¢³öÇëÇó£¬ ²¢»ñµÃ»ØÓ¦¡£ Èç¹ûÓб¾µØµÄ»º´æ
<acronym>DNS</acronym> ·þÎñÆ÷£¬ ²éѯֻÓÐÔÚµÚÒ»´Î±»»º´æ <acronym>DNS</acronym>
·þÎñÆ÷·¢µ½ÍⲿÊÀ½ç¡£ ÆäËûµÄ²éѯ²»»á·¢Ïò¾ÖÓòÍøÍ⣬
ÒòΪËüÃÇÒѾ­ÓÐÔÚ±¾µØµÄ»º´æÁË¡£</para>
</sect2>
<sect2>
<title>DNS ÈçºÎÔË×÷</title>
<para>ÔÚ &os; ÖУ¬ BIND ·þÎñ³ÌÐò±»³ÆÎª
<application>named</application>¡£</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
<entry>Îļþ</entry>
<entry>ÃèÊö</entry>
</row>
</thead>
<tbody>
<row>
<entry>&man.named.8;</entry>
<entry>BIND ·þÎñ³ÌÐò</entry>
</row>
<row>
<entry>&man.rndc.8;</entry>
<entry>ÓòÃû·þÎñ¿ØÖƳÌÐò</entry>
</row>
<row>
<entry><filename class="directory">/etc/namedb</filename></entry>
<entry>BIND ´æ·ÅÓòÃûÐÅÏ¢µÄλÖá£</entry>
</row>
<row>
<entry><filename>/etc/namedb/named.conf</filename></entry>
<entry>ÓòÃû·þÎñÅäÖÃÎļþ</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>ËæÔÚ·þÎñÆ÷ÉÏÅäÖõÄÓòµÄÐÔÖʲ»Í¬£¬
ÓòµÄ¶¨ÒåÎļþÒ»°ã»á´æ·Åµ½
<filename class="directory">/etc/namedb</filename> Ŀ¼ÖÐµÄ <filename
class="directory">master</filename>¡¢ <filename
class="directory">slave</filename>£¬ »ò <filename
class="directory">dynamic</filename> ×ÓĿ¼ÖС£
ÕâЩÎļþÖÐÌṩÁËÓòÃû·þÎñÆ÷ÔÚÏìÓ¦²éѯʱËùÐèÒªµÄ <acronym>DNS</acronym> ÐÅÏ¢¡£</para>
</sect2>
<sect2>
<title>Æô¶¯ BIND</title>
<indexterm>
<primary>BIND</primary>
<secondary>starting (Æô¶¯)</secondary>
</indexterm>
<para>ÓÉÓÚ BIND ÊÇĬÈϰ²×°µÄ£¬ Òò´ËÅäÖÃËüÏà¶Ô¶øÑԺܼòµ¥¡£</para>
<para>ĬÈ쵀 <application>named</application> ÅäÖ㬠ÊÇÔÚ
&man.chroot.8; »·¾³ÖÐÌṩ»ù±¾µÄÓòÃû½âÎö·þÎñ£¬
²¢ÇÒÖ»ÏÞÓÚ¼àÌý±¾µØ IPv4 »Ø»·µØÖ· (127.0.0.1)¡£
Èç¹ûÏ£ÍûÆô¶¯ÕâÒ»ÅäÖ㬠¿ÉÒÔʹÓÃÏÂÃæµÄÃüÁ</para>
<screen>&prompt.root; <userinput>/etc/rc.d/named onestart</userinput></screen>
<para>Èç¹ûÏ£Íû <application>named</application>
·þÎñÔÚÿ´ÎÆô¶¯µÄʱºò¶¼Äܹ»Æô¶¯£¬ ÐèÒªÔÚ
<filename>/etc/rc.conf</filename> ÖмÓÈ룺</para>
<programlisting>named_enable="YES"</programlisting>
<para>µ±È»£¬ ³ýÁËÕâ·ÝÎĵµËù½éÉܵÄÅäÖÃÑ¡ÏîÖ®Í⣬ ÔÚ
<filename>/etc/namedb/named.conf</filename> Öл¹ÓкܶàÆäËüµÄÑ¡Ïî¡£
²»¹ý£¬ Èç¹ûÄúÐèÒªÁ˽â &os; ÖÐÓÃÓÚÆô¶¯ <application>named</application>
µÄÄÇЩѡÏîµÄ»°£¬ Ôò¿ÉÒԲ鿴
<filename>/etc/defaults/rc.conf</filename> ÖеÄ
<literal>named_<replaceable>*</replaceable></literal> ²ÎÊý£¬ ²¢²Î¿¼
&man.rc.conf.5; Áª»úÊֲᡣ ³ý´ËÖ®Í⣬
<xref linkend="configtuning-rcd"> Ò²ÊÇÒ»¸ö²»´íµÄÆðµã¡£</para>
</sect2>
<sect2>
<title>ÅäÖÃÎļþ</title>
<indexterm>
<primary>BIND</primary>
<secondary>configuration files (ÅäÖÃÎļþ)</secondary>
</indexterm>
<para>Ŀǰ£¬ <application>named</application> µÄÅäÖÃÎļþ´æ·ÅÓÚ
<filename class="directory">/etc/namedb</filename> Ŀ¼£¬
ÔÚʹÓÃǰӦ¸ù¾ÝÐèÒª½øÐÐÐ޸ģ¬
³ý·ÇÄúÖ»´òËãÈÃËüÍê³É¼òµ¥µÄÓòÃû½âÎö·þÎñ¡£
Õâ¸öĿ¼ͬʱҲÊÇÄú½øÐоø´ó¶àÊýÅäÖõĵط½¡£</para>
<sect3>
<title><filename>/etc/namedb/named.conf</filename></title>
<programlisting>// &dollar;FreeBSD&dollar;
//
// Refer to the named.conf(5) and named(8) man pages, and the documentation
// in /usr/share/doc/bind9 for more details.
//
// If you are going to set up an authoritative server, make sure you
// understand the hairy details of how DNS works. Even with
// simple mistakes, you can break connectivity for affected parties,
// or cause huge amounts of useless Internet traffic.
options {
// Relative to the chroot directory, if any
directory "/etc/namedb";
pid-file "/var/run/named/pid";
dump-file "/var/dump/named_dump.db";
statistics-file "/var/stats/named.stats";
// If named is being used only as a local resolver, this is a safe default.
// For named to be accessible to the network, comment this option, specify
// the proper IP address, or delete this option.
listen-on { 127.0.0.1; };
// If you have IPv6 enabled on this system, uncomment this option for
// use as a local resolver. To give access to the network, specify
// an IPv6 address, or the keyword "any".
// listen-on-v6 { ::1; };
// These zones are already covered by the empty zones listed below.
// If you remove the related empty zones below, comment these lines out.
disable-empty-zone "255.255.255.255.IN-ADDR.ARPA";
disable-empty-zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA";
disable-empty-zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA";
// If you've got a DNS server around at your upstream provider, enter
// its IP address here, and enable the line below. This will make you
// benefit from its cache, thus reduce overall DNS traffic in the Internet.
/*
forwarders {
127.0.0.1;
};
*/
// If the 'forwarders' clause is not empty the default is to 'forward first'
// which will fall back to sending a query from your local server if the name
// servers in 'forwarders' do not have the answer. Alternatively you can
// force your name server to never initiate queries of its own by enabling the
// following line:
// forward only;
// If you wish to have forwarding configured automatically based on
// the entries in /etc/resolv.conf, uncomment the following line and
// set named_auto_forward=yes in /etc/rc.conf. You can also enable
// named_auto_forward_only (the effect of which is described above).
// include "/etc/namedb/auto_forward.conf";</programlisting>
<para>ÕýÈç×¢ÊÍËùÑÔ£¬ Èç¹ûÏ£Íû´ÓÉϼ¶»º´æÖÐÊÜÒæ£¬
¿ÉÒÔÔÚ´Ë´¦ÆôÓà <literal>forwarders</literal>¡£
Õý³£Çé¿öÏ£¬ ÓòÃû·þÎñÆ÷»áÖ𼶵زéѯ
Internet À´ÕÒµ½Ìض¨µÄÓòÃû·þÎñÆ÷£¬ Ö±µ½µÃµ½´ð°¸ÎªÖ¹¡£
Õâ¸öÑ¡ÏÈÃËüÊ×ÏȲéѯÉϼ¶ÓòÃû·þÎñÆ÷ (»òÁíÍâÌṩµÄÓòÃû·þÎñÆ÷)£¬
´Ó¶ø´ÓËüÃǵĻº´æÖеõ½½á¹û¡£ Èç¹ûÉϼ¶ÓòÃû·þÎñÆ÷ÊÇÒ»¸ö·±Ã¦µÄ¸ßËÙÓòÃû·þÎñÆ÷£¬
ÔòÆôÓÃËü½«ÓÐÖúÓÚ¸ÄÉÆ·þÎñÆ·ÖÊ¡£</para>
<warning><para><hostid role="ipaddr">127.0.0.1</hostid>
<emphasis>²»»á</emphasis> Õý³£¹¤×÷¡£
Ò»¶¨Òª°ÑµØÖ·¸ÄΪÄúÉϼ¶·þÎñÆ÷µÄ <acronym>IP</acronym> µØÖ·¡£</para>
</warning>
<programlisting> /*
Modern versions of BIND use a random UDP port for each outgoing
query by default in order to dramatically reduce the possibility
of cache poisoning. All users are strongly encouraged to utilize
this feature, and to configure their firewalls to accommodate it.
AS A LAST RESORT in order to get around a restrictive firewall
policy you can try enabling the option below. Use of this option
will significantly reduce your ability to withstand cache poisoning
attacks, and should be avoided if at all possible.
Replace NNNNN in the example with a number between 49160 and 65530.
*/
// query-source address * port NNNNN;
};
// If you enable a local name server, don't forget to enter 127.0.0.1
// first in your /etc/resolv.conf so this server will be queried.
// Also, make sure to enable it in /etc/rc.conf.
// The traditional root hints mechanism. Use this, OR the slave zones below.
zone "." { type hint; file "named.root"; };
/* Slaving the following zones from the root name servers has some
significant advantages:
1. Faster local resolution for your users
2. No spurious traffic will be sent from your network to the roots
3. Greater resilience to any potential root server failure/DDoS
On the other hand, this method requires more monitoring than the
hints file to be sure that an unexpected failure mode has not
incapacitated your server. Name servers that are serving a lot
of clients will benefit more from this approach than individual
hosts. Use with caution.
To use this mechanism, uncomment the entries below, and comment
the hint zone above.
*/
/*
zone "." {
type slave;
file "slave/root.slave";
masters {
192.5.5.241; // F.ROOT-SERVERS.NET.
};
notify no;
};
zone "arpa" {
type slave;
file "slave/arpa.slave";
masters {
192.5.5.241; // F.ROOT-SERVERS.NET.
};
notify no;
};
zone "in-addr.arpa" {
type slave;
file "slave/in-addr.arpa.slave";
masters {
192.5.5.241; // F.ROOT-SERVERS.NET.
};
notify no;
};
*/
/* Serving the following zones locally will prevent any queries
for these zones leaving your network and going to the root
name servers. This has two significant advantages:
1. Faster local resolution for your users
2. No spurious traffic will be sent from your network to the roots
*/
// RFC 1912
zone "localhost" { type master; file "master/localhost-forward.db"; };
zone "127.in-addr.arpa" { type master; file "master/localhost-reverse.db"; };
zone "255.in-addr.arpa" { type master; file "master/empty.db"; };
// RFC 1912-style zone for IPv6 localhost address
zone "0.ip6.arpa" { type master; file "master/localhost-reverse.db"; };
// "This" Network (RFCs 1912 and 3330)
zone "0.in-addr.arpa" { type master; file "master/empty.db"; };
// Private Use Networks (RFC 1918)
zone "10.in-addr.arpa" { type master; file "master/empty.db"; };
zone "16.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "17.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "18.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "19.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "20.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "21.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "22.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "23.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "24.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "25.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "26.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "27.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "28.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "29.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "30.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "31.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "168.192.in-addr.arpa" { type master; file "master/empty.db"; };
// Link-local/APIPA (RFCs 3330 and 3927)
zone "254.169.in-addr.arpa" { type master; file "master/empty.db"; };
// TEST-NET for Documentation (RFC 3330)
zone "2.0.192.in-addr.arpa" { type master; file "master/empty.db"; };
// Router Benchmark Testing (RFC 3330)
zone "18.198.in-addr.arpa" { type master; file "master/empty.db"; };
zone "19.198.in-addr.arpa" { type master; file "master/empty.db"; };
// IANA Reserved - Old Class E Space
zone "240.in-addr.arpa" { type master; file "master/empty.db"; };
zone "241.in-addr.arpa" { type master; file "master/empty.db"; };
zone "242.in-addr.arpa" { type master; file "master/empty.db"; };
zone "243.in-addr.arpa" { type master; file "master/empty.db"; };
zone "244.in-addr.arpa" { type master; file "master/empty.db"; };
zone "245.in-addr.arpa" { type master; file "master/empty.db"; };
zone "246.in-addr.arpa" { type master; file "master/empty.db"; };
zone "247.in-addr.arpa" { type master; file "master/empty.db"; };
zone "248.in-addr.arpa" { type master; file "master/empty.db"; };
zone "249.in-addr.arpa" { type master; file "master/empty.db"; };
zone "250.in-addr.arpa" { type master; file "master/empty.db"; };
zone "251.in-addr.arpa" { type master; file "master/empty.db"; };
zone "252.in-addr.arpa" { type master; file "master/empty.db"; };
zone "253.in-addr.arpa" { type master; file "master/empty.db"; };
zone "254.in-addr.arpa" { type master; file "master/empty.db"; };
// IPv6 Unassigned Addresses (RFC 4291)
zone "1.ip6.arpa" { type master; file "master/empty.db"; };
zone "3.ip6.arpa" { type master; file "master/empty.db"; };
zone "4.ip6.arpa" { type master; file "master/empty.db"; };
zone "5.ip6.arpa" { type master; file "master/empty.db"; };
zone "6.ip6.arpa" { type master; file "master/empty.db"; };
zone "7.ip6.arpa" { type master; file "master/empty.db"; };
zone "8.ip6.arpa" { type master; file "master/empty.db"; };
zone "9.ip6.arpa" { type master; file "master/empty.db"; };
zone "a.ip6.arpa" { type master; file "master/empty.db"; };
zone "b.ip6.arpa" { type master; file "master/empty.db"; };
zone "c.ip6.arpa" { type master; file "master/empty.db"; };
zone "d.ip6.arpa" { type master; file "master/empty.db"; };
zone "e.ip6.arpa" { type master; file "master/empty.db"; };
zone "0.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "1.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "2.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "3.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "4.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "5.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "6.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "7.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "8.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "9.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "a.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "b.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "0.e.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "1.e.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "2.e.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "3.e.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "4.e.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "5.e.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "6.e.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "7.e.f.ip6.arpa" { type master; file "master/empty.db"; };
// IPv6 ULA (RFC 4193)
zone "c.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "d.f.ip6.arpa" { type master; file "master/empty.db"; };
// IPv6 Link Local (RFC 4291)
zone "8.e.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "9.e.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "a.e.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "b.e.f.ip6.arpa" { type master; file "master/empty.db"; };
// IPv6 Deprecated Site-Local Addresses (RFC 3879)
zone "c.e.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "d.e.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "e.e.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "f.e.f.ip6.arpa" { type master; file "master/empty.db"; };
// IP6.INT is Deprecated (RFC 4159)
zone "ip6.int" { type master; file "master/empty.db"; };
// NB: Do not use the IP addresses below, they are faked, and only
// serve demonstration/documentation purposes!
//
// Example slave zone config entries. It can be convenient to become
// a slave at least for the zone your own domain is in. Ask
// your network administrator for the IP address of the responsible
// master name server.
//
// Do not forget to include the reverse lookup zone!
// This is named after the first bytes of the IP address, in reverse
// order, with ".IN-ADDR.ARPA" appended, or ".IP6.ARPA" for IPv6.
//
// Before starting to set up a master zone, make sure you fully
// understand how DNS and BIND work. There are sometimes
// non-obvious pitfalls. Setting up a slave zone is usually simpler.
//
// NB: Don't blindly enable the examples below. :-) Use actual names
// and addresses instead.
/* An example dynamic zone
key "exampleorgkey" {
algorithm hmac-md5;
secret "sf87HJqjkqh8ac87a02lla==";
};
zone "example.org" {
type master;
allow-update {
key "exampleorgkey";
};
file "dynamic/example.org";
};
*/
/* Example of a slave reverse zone
zone "1.168.192.in-addr.arpa" {
type slave;
file "slave/1.168.192.in-addr.arpa";
masters {
192.168.1.1;
};
};
*/</programlisting>
<para>ÔÚ <filename>named.conf</filename> ÖУ¬
»¹¸ø³öÁË´ÓÓò¡¢×ª·¢ÓòºÍ·´½âÎöÓòµÄÀý×Ó¡£</para>
<para>Èç¹ûÐÂÔöÁËÓò£¬ ¾Í±ØÐèÔÚ <filename>named.conf</filename> ÖмÓÈë¶ÔÓ¦µÄÏîÄ¿¡£</para>
<para>ÀýÈ磬 ÓÃÓÚ
<hostid role="domainname">example.org</hostid> µÄÓòÎļþµÄÃèÊöÀàËÆÏÂÃæÕâÑù£º</para>
<programlisting>zone "example.org" {
type master;
file "master/example.org";
};</programlisting>
<para>Èç <option>type</option> Óï¾äËù±êʾµÄÄÇÑù£¬
ÕâÊÇÒ»¸öÖ÷Óò£¬ ÆäÐÅÏ¢±£´æÔÚ
<filename>/etc/namedb/master/example.org</filename>
ÖУ¬ Èç <option>file</option> Óï¾äËùʾ¡£</para>
<programlisting>zone "example.org" {
type slave;
file "slave/example.org";
};</programlisting>
<para>ÔÚ´ÓÓòµÄÇéÐÎÖУ¬ ËùÖ¸¶¨µÄÓòµÄÐÅÏ¢»á´ÓÖ÷ÓòÃû·þÎñÆ÷´«µÝ¹ýÀ´£¬
²¢±£´æµ½¶ÔÓ¦µÄÎļþÖС£ µ±Ö÷Óò·þÎñÆ÷·¢ÉúÎÊÌâ»ò²»¿É´ïʱ£¬
´ÓÓòÃû·þÎñÆ÷¾ÍÓÐÒ»·Ý¿ÉÓõÄÓòÃûÐÅÏ¢£¬ ´Ó¶øÄܹ»¶ÔÍâÌṩ·þÎñ¡£</para>
</sect3>
<sect3>
<title>ÓòÎļþ</title>
<indexterm>
<primary>BIND</primary>
<secondary>zone files (ÓòÎļþ)</secondary>
</indexterm>
<para>ÏÂÃæµÄÀý×ÓչʾÁËÓÃÓÚ <hostid
role="domainname">example.org</hostid> µÄÖ÷ÓòÎļþ (´æ·ÅÓÚ
<filename>/etc/namedb/master/example.org</filename>)£º</para>
<programlisting>&dollar;TTL 3600 ; 1 hour default TTL
example.org. IN SOA ns1.example.org. admin.example.org. (
2006051501 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
300 ; Negative Reponse TTL
)
; DNS Servers
IN NS ns1.example.org.
IN NS ns2.example.org.
; MX Records
IN MX 10 mx.example.org.
IN MX 20 mail.example.org.
IN A 192.168.1.1
; Machine Names
localhost IN A 127.0.0.1
ns1 IN A 192.168.1.2
ns2 IN A 192.168.1.3
mx IN A 192.168.1.4
mail IN A 192.168.1.5
; Aliases
www IN CNAME example.org.</programlisting>
<para>Çë×¢ÒâÒÔ <quote>.</quote> ½áβµÄÖ÷»úÃûÊÇÈ«³ÆÖ÷»úÃû£¬ ¶ø½áβûÓÐ
<quote>.</quote> µÄÔòÊÇÏà¶ÔÓÚÔ­µãµÄÖ÷»úÃû¡£ ÀýÈ磬
<literal>ns1</literal> ½«±»×ª»»Îª
<literal>ns1.<replaceable>example.org.</replaceable></literal></para>
<para>ÓòÐÅÏ¢ÎļþµÄ¸ñʽÈçÏ£º</para>
<programlisting>¼Ç¼Ãû IN ¼Ç¼ÀàÐÍ Öµ</programlisting>
<indexterm>
<primary>DNS</primary>
<secondary>¼Ç¼</secondary>
</indexterm>
<para>×î³£ÓÃµÄ DNS ¼Ç¼£º</para>
<variablelist>
<varlistentry>
<term>SOA</term>
<listitem><para>ÓòȨÍþ¿ªÊ¼</para></listitem>
</varlistentry>
<varlistentry>
<term>NS</term>
<listitem><para>ȨÍþÓòÃû·þÎñÆ÷</para></listitem>
</varlistentry>
<varlistentry>
<term>A</term>
<listitem><para>Ö÷»úµØÖ·</para></listitem>
</varlistentry>
<varlistentry>
<term>CNAME</term>
<listitem><para>±ðÃû¶ÔÓ¦µÄÕý¹æÃû³Æ</para></listitem>
</varlistentry>
<varlistentry>
<term>MX</term>
<listitem><para>Óʼþ´«µÝ·þÎñÆ÷</para></listitem>
</varlistentry>
<varlistentry>
<term>PTR</term>
<listitem><para>ÓòÃûÖ¸Õë (ÓÃÓÚ·´Ïò DNS)
</para></listitem>
</varlistentry>
</variablelist>
<programlisting>example.org. IN SOA ns1.example.org. admin.example.org. (
2006051501 ; Serial
10800 ; Refresh after 3 hours
3600 ; Retry after 1 hour
604800 ; Expire after 1 week
300 ) ; Negative Reponse TTL</programlisting>
<variablelist>
<varlistentry>
<term><hostid role="domainname">example.org.</hostid></term>
<listitem>
<para>ÓòÃû£¬ ͬʱҲÊÇÕâ¸öÓòÐÅÏ¢ÎļþµÄÔ­µã¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><hostid role="fqdn">ns1.example.org.</hostid></term>
<listitem>
<para>¸ÃÓòµÄÖ÷/ȨÍþÓòÃû·þÎñÆ÷¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>admin.example.org.</literal></term>
<listitem>
<para>´ËÓòµÄ¸ºÔðÈ˵ĵç×ÓÓʼþµØÖ·£¬
ÆäÖÐ <quote>@</quote>
ÐèÒª»»µô (<email>admin@example.org</email> ¶ÔÓ¦
<literal>admin.example.org</literal>)</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>2006051501</literal></term>
<listitem>
<para>ÎļþµÄÐòºÅ¡£ ÿ´ÎÐÞ¸ÄÓòÎļþʱ¶¼±ØÐëÔö¼ÓÕâ¸öÊý×Ö¡£
ÏÖ½ñ£¬ Ðí¶à¹ÜÀíÔ±»á¿¼ÂÇʹÓÃ
<literal>yyyymmddrr</literal> ÕâÑùµÄ¸ñʽÀ´±íʾÐòºÅ¡£
<literal>2006051501</literal> ͨ³£±íʾÉÏ´ÎÐÞ¸ÄÓÚ
05/15/2006£¬ ¶øºóÃæµÄ
<literal>01</literal> Ôò±íʾÔÚÄÇÌìµÄµÚÒ»´ÎÐ޸ġ£
ÐòºÅ·Ç³£ÖØÒª£¬ ËüÓÃÓÚ֪ͨ´ÓÓò·þÎñÆ÷¸üÐÂÊý¾Ý¡£</para>
</listitem>
</varlistentry>
</variablelist>
<programlisting> IN NS ns1.example.org.</programlisting>
<para>ÕâÊÇÒ»¸ö NS Ïî¡£ ÿ¸ö×¼±¸ÌṩȨÍþÓ¦´ðµÄ·þÎñÆ÷¶¼±ØÐëÓÐÒ»¸ö¶ÔÓ¦Ïî¡£</para>
<programlisting>localhost IN A 127.0.0.1
ns1 IN A 192.168.1.2
ns2 IN A 192.168.1.3
mx IN A 192.168.1.4
mail IN A 192.168.1.5</programlisting>
<para>A ¼Ç¼ָÃ÷ÁË»úÆ÷Ãû¡£ ÕýÈçÔÚÇ°ÃæËù¿´µ½µÄ£¬
<hostid role="fqdn">ns1.example.org</hostid> ½«½âÎöΪ
<hostid role="ipaddr">192.168.1.2</hostid>¡£</para>
<programlisting> IN A 192.168.1.1</programlisting>
<para>ÕâÒ»Ðаѵ±Ç°Ô­µã <hostid role="domainname">example.org</hostid>
Ö¸¶¨ÎªÊ¹Óà IP µØÖ·
<hostid role="ipaddr">192.168.1.1</hostid>¡£</para>
<programlisting>www IN CNAME @</programlisting>
<para>Õý¹æÃû (CNAME) ¼Ç¼ͨ³£ÓÃÓÚΪij̨»úÆ÷Ö¸¶¨±ðÃû¡£
ÔÚÕâ¸öÀý×ÓÖУ¬ ½« <hostid>www</hostid>
Ö¸¶¨³ÉÁË <quote>Ö÷</quote> »úÆ÷µÄÒ»¸ö±ðÃû£¬
ºóÕßµÄÃû×ÖÓëÓòÃû
<hostid role="domainname">example.org</hostid>
(<hostid role="ipaddr">192.168.1.1</hostid>) Ïàͬ¡£
CNAME ²»ÄÜͬÓëÖ®ÓÐÏàͬÃû×ÖµÄÈÎºÎÆäËü¼Ç¼²¢´æ¡£</para>
<indexterm>
<primary>MX ¼Ç¼</primary>
</indexterm>
<programlisting> IN MX 10 mail.example.org.</programlisting>
<para>MX ¼Ç¼±íʾÄĸöÓʼþ·þÎñÆ÷¸ºÔð½ÓÊÕ·¢µ½Õâ¸öÓòµÄÓʼþ¡£
<hostid role="fqdn">mail.example.org</hostid> ÊÇÓʼþ·þÎñÆ÷µÄÖ÷»úÃû£¬
¶ø 10 ÔòÊÇËüµÄÓÅÏȼ¶¡£</para>
<para>¿ÉÒÔÓжą̀Óʼþ·þÎñÆ÷£¬ ÆäÓÅÏȼ¶·Ö±ðÊÇ 10¡¢
20 µÈµÈ¡£ ³¢ÊÔÏò <hostid
role="domainname">example.org</hostid> ͶµÝÓʼþµÄ·þÎñÆ÷£¬
»áÊ×Ïȳ¢ÊÔÓÅÏȼ¶×î¸ßµÄ MX (ÓÅÏȼ¶ÊýÖµ×îСµÄ¼Ç¼)¡¢
½Ó×ų¢ÊԴθߵģ¬ ²¢Öظ´ÕâÒ»¹ý³ÌÖ±µ½ÓʼþµÝ´ïΪֹ¡£</para>
<para>in-addr.arpa ÓòÃûÐÅÏ¢Îļþ (·´Ïò DNS)£¬ ²ÉÓõĸñʽÊÇͬÑùµÄ£¬
Ö»ÊÇ PTR Ïî´úÌæÁË A »ò CNAME µÄλÖá£</para>
<programlisting>$TTL 3600
1.168.192.in-addr.arpa. IN SOA ns1.example.org. admin.example.org. (
2006051501 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
300 ) ; Negative Reponse TTL
IN NS ns1.example.org.
IN NS ns2.example.org.
1 IN PTR example.org.
2 IN PTR ns1.example.org.
3 IN PTR ns2.example.org.
4 IN PTR mx.example.org.
5 IN PTR mail.example.org.</programlisting>
<para>Õâ¸öÎļþ¸ø³öÁËÉÏÊö¼ÙÏëÓòÖÐ IP µØÖ·µ½ÓòÃûµÄÓ³Éä¹ØÏµ¡£</para>
<para>ÐèҪ˵Ã÷µÄÊÇ£¬ ÔÚ PTR ¼Ç¼ÓÒ²àµÄÃû×Ö±ØÐëÊÇÈ«³ÆÓòÃû
(Ò²¾ÍÊDZØÐëÒÔ <quote>.</quote> ½áÊø)¡£</para>
</sect3>
</sect2>
<sect2>
<title>»º´æÓòÃû·þÎñÆ÷</title>
<indexterm>
<primary>BIND</primary>
<secondary>»º´æÓòÃû·þÎñÆ÷</secondary>
</indexterm>
<para>»º´æÓòÃû·þÎñÆ÷ÊÇÒ»ÖÖÖ÷Òª³Ðµ£½âÎöµÝ¹é²éѯ½ÇÉ«µÄÓòÃû·þÎñÆ÷¡£
Ëü¼òµ¥µØ×ÔÐнøÐвéѯ£¬ ²¢½«²éѯ½á¹û¼ÇסÒÔ±¸ºóÐøÊ¹Óá£</para>
</sect2>
<sect2>
<title>°²È«</title>
<para>¾¡¹Ü BIND ÊÇ×îΪ³£ÓÃµÄ DNS ʵÏÖ£¬ µ«Ëü×ÜÊÇÓÐһЩ°²È«ÎÊÌâ¡£
ʱ³£»áÓÐÈË·¢ÏÖһЩ¿ÉÄܵÄÉõÖÁ¿ÉÒÔÀûÓõݲȫ©¶´¡£
</para>
<para>¾¡¹Ü &os; »á×Ô¶¯½«
<application>named</application> ·Åµ½ &man.chroot.8;
»·¾³ÖÐÔËÐУ¬ µ«ÈÔÓÐһЩÆäËü¿ÉÓõݲȫ»úÖÆÀ´°ïÖúÄú¹æ±ÜDZÔÚµÄÕë¶Ô
<acronym>DNS</acronym> ·þÎñµÄ¹¥»÷¡£</para>
<para>ÔĶÁ <ulink
url="http://www.cert.org/">CERT</ulink> µÄ°²È«¹«¸æ£¬
²¢¶©ÔÄ the &a.security-notifications; ÊÇÒ»¸öÓÐÖúÓÚ°ïÖúÄúÁ˽â×îÐÂ
Internet ¼° &os; °²È«ÎÊÌâµÄºÃϰ¹ß¡£</para>
<tip>
<para>Èç¹û·¢ÏÖÁËÎÊÌ⣬ È·±£Ô´´úÂëÊÇ×îеģ¬
²¢ÖØÐÂÁª±àÒ»·Ý <application>named</application> ÓпÉÄÜ»áÓÐËù°ïÖú¡£</para>
</tip>
</sect2>
<sect2>
<title>½øÒ»²½ÔĶÁ</title>
<para>BIND/<application>named</application> Áª»úÊֲ᣺
&man.rndc.8; &man.named.8; &man.named.conf.5;</para>
<itemizedlist>
<listitem>
<para><ulink
url="https://www.isc.org/software/bind">¹Ù·½µÄ ISC BIND
Ò³Ãæ</ulink></para>
</listitem>
<listitem>
<para><ulink
url="https://www.isc.org/software/guild">Official ISC BIND
Forum</ulink></para>
</listitem>
<listitem>
<para><ulink url="http://www.oreilly.com/catalog/dns5/">O'Reilly
DNS ºÍ BIND µÚ 5 °æ</ulink></para>
</listitem>
<listitem>
<para><ulink
url="http://www.rfc-editor.org/rfc/rfc1034.txt">RFC1034
- ÓòÃû - ¸ÅÄîºÍ¹¤¾ß</ulink></para>
</listitem>
<listitem>
<para><ulink
url="http://www.rfc-editor.org/rfc/rfc1035.txt">RFC1035
- ÓòÃû - ʵÏÖ¼°Æä±ê×¼</ulink></para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<sect1 id="network-apache">
<sect1info>
<authorgroup>
<author>
<firstname>Murray</firstname>
<surname>Stokely</surname>
<contrib>Contributed by </contrib>
</author>
</authorgroup>
</sect1info>
<title>Apache HTTP ·þÎñÆ÷</title>
<indexterm><primary>web ·þÎñÆ÷</primary>
<secondary>ÅäÖÃ</secondary></indexterm>
<indexterm><primary>Apache</primary></indexterm>
<sect2>
<title>×ÝÀÀ</title>
<para>&os; ±»ÓÃÓÚÔËÐÐÐí¶àÈ«Çò×îΪ·±Ã¦µÄ web Õ¾µã¡£
´ó¶àÊý Internet É쵀 web ·þÎñÆ÷£¬
¶¼Ê¹Óà <application>Apache HTTP ·þÎñÆ÷</application>¡£
<application>Apache</application> Èí¼þ°ü¿ÉÒÔÔÚÄúµÄ FreeBSD
°²×°ÅÌÉÏÕÒµ½¡£ Èç¹ûûÓÐÔÚÊ״ΰ²×°Ê±¸½´ø°²×°
<application>Apache</application>£¬ Ôò¿ÉÒÔͨ¹ý <filename
role="package">www/apache13</filename> »ò <filename
role="package">www/apache22</filename> port À´°²×°¡£</para>
<para>Ò»µ©³É¹¦µØ°²×°ÁË <application>Apache</application>£¬
¾Í±ØÐë¶ÔÆä½øÐÐÅäÖá£</para>
<note><para>ÕâÒ»½Ú½éÉÜÁË 1.3.X °æ±¾µÄ
<application>Apache HTTP ·þÎñÆ÷</application> µÄÅäÖã¬
ÒòΪËüÊÇËæ &os; һͬʹÓõÄ×î¶àµÄ°æ±¾¡£
<application>Apache</application>&nbsp;2.X ÒýÈëÁ˺ܶàм¼Êõ£¬
µ«Ôڴ˲¢²»ÌÖÂÛ¡£ ÒªÁË½â¹ØÓÚ <application>Apache</application>&nbsp;2.X
µÄ¸ü¶à×ÊÁÏ£¬ Çë²Î¼û <ulink
url="http://httpd.apache.org/"></ulink>¡£</para></note>
</sect2>
<sect2>
<title>ÅäÖÃ</title>
<indexterm><primary>Apache</primary>
<secondary>ÅäÖÃÎļþ</secondary></indexterm>
<para>Ö÷ÒªµÄ <application>Apache HTTP Server</application> ÅäÖÃÎļþ£¬
ÔÚ &os; ÉϻᰲװΪ
<filename>/usr/local/etc/apache/httpd.conf</filename>¡£
ÕâÊÇÒ»¸öµäÐ굀 &unix; Îı¾ÅäÖÃÎļþ£¬ ËüʹÓà <literal>#</literal>
×÷ΪעÊÍ·û¡£ ¹ØÓÚÈ«²¿ÅäÖÃÑ¡ÏîµÄÏ꾡½éÉܳ¬³öÁ˱¾ÊéµÄ·¶Î§£¬
ÕâÀォֻ½éÉÜ×î³£±»Ð޸ĵÄÄÇЩ¡£</para>
<variablelist>
<varlistentry>
<term><literal>ServerRoot "/usr/local"</literal></term>
<listitem>
<para>ÕâÖ¸¶¨ÁË <application>Apache</application>
°²×°µÄ¶¥¼¶Ä¿Â¼¡£ Ö´ÐÐÎļþ±»·Åµ½·þÎñÆ÷¸ùĿ¼ (server root) µÄ
<filename class="directory">bin</filename> ºÍ
<filename class="directory">sbin</filename> ×ÓĿ¼ÖУ¬
¶øÅäÖÃÎļþÔòλÓÚ
<filename class="directory">etc/apache</filename>¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ServerAdmin you@your.address</literal></term>
<listitem>
<para>Õâ¸öµØÖ·ÊÇÔÚ·þÎñÆ÷·¢ÉúÎÊÌâʱӦ·¢Ë͵ç×ÓÓʼþµÄµØÖ·£¬
Ëü»á³öÏÖÔÚ·þÎñÆ÷Éú³ÉµÄÒ³ÃæÉÏ£¬ ÀýÈç´íÎóÒ³Ãæ¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>ServerName www.example.com</literal></term>
<listitem>
<para><literal>ServerName</literal> ÔÊÐíÄúÅäÖ÷¢Ëͻؿͻ§¶ËµÄÖ÷»úÃû£¬
Èç¹ûÄúµÄ·þÎñÆ÷±»Óû§ÒÔ±ðµÄÃû×Ö·ÃÎÊ (ÀýÈ磬 ʹÓà <hostid>www</hostid>
¶ø²»ÊÇÖ÷»ú±¾ÉíµÄÕæÊµÃû×Ö)¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>DocumentRoot "/usr/local/www/data"</literal></term>
<listitem>
<para><literal>DocumentRoot</literal>£º Õâ¸öĿ¼ÊÇÄúµÄÎĵµËùÔÚµÄĿ¼¡£
ĬÈÏÇé¿öÏ£¬ ËùÓеÄÇëÇó¶¼»á´ÓÕâ¸öλÖÃÈ¥»ñÈ¡£¬
µ«Ò²¿ÉÒÔͨ¹ý·ûºÅÁ¬½ÓºÍ±ðÃûÖ¸¶¨ÆäËüµÄλÖá£</para>
</listitem>
</varlistentry>
</variablelist>
<para>ÔÚÐÞ¸ÄÅäÖÃ֮ǰ±¸·Ý
<application>Apache</application> µÄÅäÖÃÎļþÓÀÔ¶ÊÇÒ»¸öºÃϰ¹ß¡£
Ò»µ©¶Ô³õʼÅäÖÃÂúÒâÁË£¬ ¾Í¿ÉÒÔ¿ªÊ¼ÔËÐÐ <application>Apache</application> ÁË¡£</para>
<!-- sect3 for performance tuning directives? maxservers minservers -->
<!-- etc..?? -->
<!-- Advanced configuration section.
Performance tuning directives.
Log file format -->
</sect2>
<sect2>
<title>ÔËÐÐ <application>Apache</application></title>
<indexterm><primary>Apache</primary>
<secondary>Æô¶¯ºÍÍ£Ö¹</secondary></indexterm>
<para>ÓëÐí¶àÆäËüÍøÂç·þÎñ²»Í¬£¬ <application>Apache</application> ²¢²»ÒÀÀµ
<application>inetd</application> ³¬¼¶·þÎñÆ÷À´ÔËÐС£
Ò»°ãÇé¿öÏ»á°ÑËüÅäÖÃΪһ¸ö¶ÀÁ¢µÄ·þÎñÆ÷£¬ ÒÔÆÚÔÚ¿Í»§µÄ web
ä¯ÀÀÆ÷Á¬Èë HTTP ÇëÇóʱ£¬ Äܹ»»ñµÃ¸üºÃµÄÐÔÄÜ¡£ ËüÌṩÁËÒ»¸ö shell
½Å±¾À´Ê¹Æô¶¯¡¢ Í£Ö¹ºÍÖØÐÂÆô¶¯·þÎñÆ÷±äµÃ¾¡¿ÉÄܵؼòµ¥¡£
Ê×´ÎÆô¶¯ <application>Apache</application>£¬
Ö»ÐèÖ´ÐУº</para>
<screen>&prompt.root; <userinput>/usr/local/sbin/apachectl start</userinput></screen>
<para>¿ÉÒÔÔÚÈκÎʱºòʹÓÃÏÂÃæµÄÃüÁîÀ´Í£Ö¹·þÎñ£º</para>
<screen>&prompt.root; <userinput>/usr/local/sbin/apachectl stop</userinput></screen>
<para>µ±ÓÉÓÚijÖÖÔ­ÒòÐÞ¸ÄÁËÅäÖÃÎļþÖ®ºó£¬ ÐèÒªÖØÆô·þÎñÆ÷£º</para>
<screen>&prompt.root; <userinput>/usr/local/sbin/apachectl restart</userinput></screen>
<para>ÒªÔÚÖØÆô <application>Apache</application> ·þÎñÆ÷ʱ²»Öжϵ±Ç°µÄÁ¬½Ó£¬
ÔòÓ¦ÔËÐУº</para>
<screen>&prompt.root; <userinput>/usr/local/sbin/apachectl graceful</userinput></screen>
<para>¸ü¶àµÄÐÅÏ¢£¬ ¿ÉÒÔÔÚ
&man.apachectl.8; Áª»úÊÖ²áÖÐÕÒµ½¡£</para>
<para>ÒªÔÚϵͳÆô¶¯Ê±Æô¶¯ <application>Apache</application>£¬ ÔòÓ¦ÔÚ
<filename>/etc/rc.conf</filename> ÖмÓÈ룺</para>
<programlisting>apache_enable="YES"</programlisting>
<para>»òÕß¶ÔÓÚ<application>Apache</application> 2.2£º</para>
<programlisting>apache22_enable="YES"</programlisting>
<para>Èç¹ûÄúÏ£ÍûÔÚϵͳÒýµ¼Ê±Æô¶¯ <application>Apache</application>
<command>httpd</command> ³ÌÐò²¢Ö¸¶¨ÆäËüһЩѡÏ
Ôò¿ÉÒÔ°ÑÏÂÃæµÄÐмӵ½
<filename>rc.conf</filename>£º</para>
<programlisting>apache_flags=""</programlisting>
<para>ÏÖÔÚ web ·þÎñÆ÷¾Í¿ªÊ¼ÔËÐÐÁË£¬ Äú¿ÉÒÔʹÓà web ä¯ÀÀÆ÷´ò¿ª
<literal>http://localhost/</literal>¡£ ĬÈÏÏÔʾµÄ web Ò³ÃæÊÇ
<filename>/usr/local/www/data/index.html</filename>¡£</para>
</sect2>
<sect2>
<title>ÐéÄâÖ÷»ú</title>
<para><application>Apache</application> Ö§³ÖÁ½ÖÖ²»Í¬ÀàÐ͵ÄÐéÄâÖ÷»ú¡£
µÚÒ»ÖÖ·½·¨ÊÇ»ùÓÚÃû×ÖµÄÐéÄâÖ÷»ú¡£ »ùÓÚÃû×ÖµÄÐéÄâÖ÷»úʹÓÿͻ§»ú·¢À´µÄ
HTTP/1.1 Í·À´±æ±ðÖ÷»úÃû¡£ ÕâʹµÃ²»Í¬µÄÓòµÃÒÔ¹²Ïíͬһ¸ö IP µØÖ·¡£</para>
<para>ÒªÅäÖà <application>Apache</application> À´Ê¹ÓûùÓÚÃû×ÖµÄÐéÄâÖ÷»ú£¬
ÐèÒª°ÑÀàËÆÏÂÃæµÄÏî¼Óµ½ÄúµÄ <filename>httpd.conf</filename> ÖУº</para>
<programlisting>NameVirtualHost *</programlisting>
<para>Èç¹ûÄúµÄ web ·þÎñÆ÷µÄÃû×ÖÊÇ <hostid role="fqdn">www.domain.tld</hostid>£¬
¶øÄúÏ£Íû½¨Á¢Ò»¸ö
<hostid role="fqdn">www.someotherdomain.tld</hostid> µÄÐéÄâÓò£¬
ÔòÓ¦ÔÚ
<filename>httpd.conf</filename> ÖмÓÈ룺</para>
<screen>&lt;VirtualHost *&gt;
ServerName www.domain.tld
DocumentRoot /www/domain.tld
&lt;/VirtualHost&gt;
&lt;VirtualHost *&gt;
ServerName www.someotherdomain.tld
DocumentRoot /www/someotherdomain.tld
&lt;/VirtualHost&gt;</screen>
<para>ÄúÐèÒª°ÑÉÏÃæµÄµØÖ·ºÍÎĵµÂ·¾¶¸ÄΪËùʹÓõÄÄÇЩ¡£</para>
<para>ÒªÁË½â¹ØÓÚÐéÄâÖ÷»úµÄ¸ü¶àÐÅÏ¢£¬
Çë²Î¿¼¹Ù·½µÄ <application>Apache</application> Îĵµ£¬ ÕâЩÎĵµ¿ÉÒÔÔÚ <ulink
url="http://httpd.apache.org/docs/vhosts/"></ulink> ÕÒµ½¡£</para>
</sect2>
<sect2>
<title>Apache Ä£¿é</title>
<indexterm><primary>Apache</primary>
<secondary>Ä£¿é</secondary></indexterm>
<para>ÓÐÐí¶à²»Í¬µÄ <application>Apache</application> Ä£¿é£¬
ËüÃÇ¿ÉÒÔÔÚ»ù±¾µÄ·þÎñÆ÷»ù´¡ÉÏÌṩÐí¶à¸½¼ÓµÄ¹¦ÄÜ¡£ FreeBSD µÄ
Ports Collection Ϊ°²×°
<application>Apache</application>
ºÍ³£Óõĸ½¼ÓÄ£¿éÌṩÁ˷dz£·½±ãµÄ·½·¨¡£</para>
<sect3>
<title>mod_ssl</title>
<indexterm><primary>web ·þÎñÆ÷</primary>
<secondary>°²È«</secondary></indexterm>
<indexterm><primary>SSL</primary></indexterm>
<indexterm><primary>ÃÜÂëѧ</primary></indexterm>
<para><application>mod_ssl</application> Õâ¸öÄ£¿éʹÓà OpenSSL ¿â£¬
À´Ìṩͨ¹ý °²È«Ì×½Ó×Ö²ã (SSL v2/v3) ºÍ ´«Êä²ã°²È« (TLS v1)
ЭÒéµÄÇ¿¼ÓÃÜÄÜÁ¦¡£
Õâ¸öÄ£¿éÌṩÁË´ÓijһÊÜÐŵÄÖ¤ÊéÇ©Êð»ú¹¹ÉêÇëÇ©ÃûÖ¤ÊéËùÐèµÄËùÓй¤¾ß£¬
Äú¿ÉÒÔ½å´ËÔÚ &os; ÉÏÔËÐа²È«µÄ web ·þÎñÆ÷¡£</para>
<para>Èç¹ûÄúÎ´Ôø°²×°
<application>Apache</application>£¬ Ò²¿ÉÒÔÖ±½Ó°²×°Ò»·Ý°üº¬ÁË
<application>mod_ssl</application> µÄ°æ±¾µÄ
<application>Apache</application>
1.3.X£¬ Æä·½·¨ÊÇͨ¹ý <filename
role="package">www/apache13-modssl</filename> port À´½øÐС£ SSL
Ö§³ÖÒѾ­×÷Ϊ <application>Apache</application>&nbsp;2.X µÄÒ»²¿·ÖÌṩ£¬
Äú¿ÉÒÔͨ¹ý
<filename role="package">www/apache22</filename> port À´°²×°ºóÕß¡£</para>
<!-- XXX add more information about configuring mod_ssl here. -->
<!-- Generating keys, getting the key signed, setting up your secure -->
<!-- web server! -->
</sect3>
<sect3>
<title>ÓïÑÔ°ó¶¨</title>
<para>Apache¶ÔÓÚһЩÖ÷ÒªµÄ½Å±¾ÓïÑÔ¶¼ÓÐÏàÓ¦µÄÄ£¿é¡£
ÕâЩģ¿éʹµÃÍêȫʹÓÃijÖֽű¾ÓïÑÔÀ´Ð´
<application>Apache</application> Ä£¿é³ÉΪ¿ÉÄÜ¡£
ËûÃÇͨ³£Ò²±»Ç¶Èëµ½·þÎñÆ÷×÷Ϊһ¸ö³£×¤ÄÚ´æµÄ½âÊÍÆ÷£¬
ÒÔ±ÜÃâÆô¶¯Ò»¸öÍⲿ½âÊÍÆ÷¶ÔÓÚÏÂÒ»½Ú½«ÃèÊöµÄ¶¯Ì¬ÍøÕ¾ËùÐèʱ¼äºÍ×ÊÔ´ÉϵĿªÏú¡£
</para>
</sect3>
</sect2>
<sect2>
<title>¶¯Ì¬ÍøÕ¾</title>
<indexterm><primary>web servers</primary>
<secondary>dynamic</secondary></indexterm>
<para>ÔÚ¹ýÈ¥µÄÊ®ÄêÀԽÀ´Ô½¶àµÄÆóҵΪÁËÔö¼ÓÊÕÒæºÍ±©¹âÂʶø×ªÏòÁË»¥ÁªÍø¡£
ÕâҲͬʱÔö½øÁ˶ÔÓÚ»¥¶¯ÍøÒ³ÄÚÈݵÄÐèÇó¡£ÓÐЩ¹«Ë¾£¬±ÈÈç &microsoft;
ÍÆ³öÁË»ùÓÚËûÃÇרÓвúÆ·µÄ½â¾ö·½°¸£¬¿ªÔ´ÉçÇøÒ²×ö³öÁË»ý¼«µÄ»ØÓ¦¡£
±È½ÏʱÉеÄÑ¡Ôñ°üÀ¨ Django£¬Ruby on Rails£¬
<application>mod_perl</application>, and
<application>mod_php</application>.</para>
<sect3>
<title>Django</title>
<indexterm><primary>Python</primary></indexterm>
<indexterm><primary>Django</primary></indexterm>
<para>Django ÊÇÒ»¸öÒÔ BSD Ðí¿ÉÖ¤·¢²¼µÄ framework£¬
ÄÜÈÿª·¢Õß¿ìËÙд³ö¸ßÐÔÄ܏߯·Ö浀 web Ó¦ÓóÌÐò¡£
ËüÌṩ¸øÒ»¸ö¶ÔÏó¹ØÏµÓ³Éä×é¼þ£¬Êý¾ÝÀàÐÍ¿ÉÒÔ±»µ± Python
ÖеĶÔÏ󣬺ÍÒ»×é·á¸»µÄ¶¯Ì¬Êý¾Ý¿â·ÃÎÊ API£¬
ʹ¿ª·¢Õß±ÜÃâÁËд SQL Óï¾ä¡£Ëüͬʱ»¹ÌṩÁË¿ÉÀ©Õ¹µÄÄ£°åϵͳ£¬
ÈÃÓ¦ÓóÌÐòµÄÂß¼­²¿·ÖÓë HTML µÄ±íÏÖ²ã·ÖÀë¡£</para>
<para>Django ÒÀÀµÓë <application>mod_python</application>£¬
<application>Apache</application>, ºÍÒ»¸ö¿ÉÑ¡µÄ SQL
Êý¾Ý¿âÒýÇæ¡£ ÔÚÉèÖÃÁËһЩǡµ±µÄ±êÖ¾ºó£¬FreeBSD µÄ Port
ϵͳ½«»á°ïÖúÄã°²×°ÕâЩ±ØÐèµÄÒÀÀµ¿â¡£</para>
<example id="network-www-django-install">
<title>°²×° Django£¬Apache2£¬ mod_python3£¬ºÍ PostgreSQL</title>
<screen>&prompt.root; <userinput>cd /usr/ports/www/py-django; make all install clean -DWITH_MOD_PYTHON3 -DWITH_POSTGRESQL</userinput></screen>
</example>
<para>ÔÚ°²×°ÁË Django ºÍÄÇЩÒÀÀµµÄÈí¼þÖ®ºó£¬
ÄãÐèÒª´´½¨Ò»¸ö Django ÏîÄ¿µÄĿ¼£¬È»ºóÅäÖÃ
Apache£¬µ±ÓжÔÓÚÄãÍøÕ¾ÉÏÓ¦ÓóÌÐòµÄijЩָ¶¨µÄ URL
ʱµ÷ÓÃÄÚǶµÄ Python ½âÊÍÆ÷¡£</para>
<example id="network-www-django-apache-config">
<title>Django/mod_python ÓÐ¹Ø Apache ²¿·ÖµÄÅäÖÃ</title>
<para>ÄãÐèÒªÔÚ Apache µÄÅäÖÃÎļþ
<filename>httpd.conf</filename> ¼ÓÈëÒÔÏÂÕ⼸ÐУ¬
°Ñ¶ÔijЩ URL µÄÇëÇ󴫸øÄãµÄ web Ó¦ÓóÌÐò£º</para>
<screen>&lt;Location "/"&gt;
SetHandler python-program
PythonPath "['/dir/to/your/django/packages/'] + sys.path"
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE mysite.settings
PythonAutoReload On
PythonDebug On
&lt;/Location&gt;</screen>
</example>
</sect3>
<sect3>
<title>Ruby on Rails</title>
<indexterm><primary>Ruby on Rails</primary></indexterm>
<para>Ruby on Rails ÊÇÁíÍâÒ»¸ö¿ªÔ´µÄ web framework£¬
ÌṩÁËÒ»¸öÈ«ÃæµÄ¿ª·¢¿ò¼Ü£¬ÄܰïÖú web
¿ª·¢Õß¹¤×÷¸üÓгÉЧºÍ¿ìËÙд³öÇ¿´óµÄÓ¦Óá£
ËüÄܷdz£ÈÝÒ×µÄ´Ó posts ϵͳ°²×°¡£</para>
<screen>&prompt.root; <userinput>cd /usr/ports/www/rubygem-rails; make all install clean</userinput></screen>
</sect3>
<sect3>
<title>mod_perl</title>
<indexterm>
<primary>mod_perl</primary>
<secondary>Perl</secondary>
</indexterm>
<para><application>Apache</application>/Perl ¼¯³É¼Æ»®£¬ ½« Perl
³ÌÐòÉè¼ÆÓïÑÔµÄÇ¿´ó¹¦ÄÜ£¬ Óë <application>Apache
HTTP ·þÎñÆ÷</application> ½ôÃܵؽáºÏµ½ÁËÒ»Æð¡£
ͨ¹ý <application>mod_perl</application> Ä£¿é£¬
¿ÉÒÔÍêȫʹÓà Perl À´×«Ð´ <application>Apache</application> Ä£¿é¡£
´ËÍ⣬ ·þÎñÆ÷ÖÐǶÈëµÄ³Ö¾ÃÐÔ½âÊÍÆ÷£¬ Ïû³ýÁËÓÉÓÚÆô¶¯ÍⲿµÄ½âÊÍÆ÷Ϊ Perl
½Å±¾µÄÆô¶¯ËùÔì³ÉµÄÐÔÄÜËðʧ¡£</para>
<para><application>mod_perl</application> ͨ¹ý¶àÖÖ·½Ê½Ìṩ¡£
ҪʹÓà <application>mod_perl</application>£¬
Ó¦¸Ã×¢Òâ <application>mod_perl</application> 1.0
Ö»ÄÜÅäºÏ <application>Apache</application> 1.3 ¶ø
<application>mod_perl</application> 2.0 Ö»ÄÜÅäºÏ
<application>Apache</application> 2.X ʹÓá£
<application>mod_perl</application> 1.0 ¿ÉÒÔͨ¹ý
<filename role="package">www/mod_perl</filename> °²×°£¬
¶øÒÔ¾²Ì¬·½Ê½Áª±àµÄ°æ±¾£¬ Ôò¿ÉÒÔͨ¹ý
<filename role="package">www/apache13-modperl</filename>
À´°²×°¡£
<application>mod_perl</application> 2.0 Ôò¿ÉÒÔͨ¹ý
<filename role="package">www/mod_perl2</filename> °²×°¡£</para>
</sect3>
<sect3>
<sect3info>
<authorgroup>
<author>
<firstname>Tom</firstname>
<surname>Rhodes</surname>
<contrib>Written by </contrib>
</author>
</authorgroup>
</sect3info>
<title>mod_php</title>
<indexterm>
<primary>mod_php</primary>
<secondary>PHP</secondary>
</indexterm>
<para><acronym>PHP</acronym>£¬ Ò²³ÆÎª <quote>PHP:
Hypertext Preprocessor</quote>£¬
ÊÇÒ»ÖÖÌØ±ðÊʺÏÓÚ Web ¿ª·¢µÄͨÓýű¾ÓïÑÔ¡£
ËüÄܹ»ºÜÈÝÒ×µØÇ¶Èëµ½ <acronym>HTML</acronym> Ö®ÖУ¬
ÆäÓï·¨½Ó½üÓÚ C¡¢ &java;£¬ ÒÔ¼° Perl£¬ ÒÔÆÚÈà web
¿ª·¢ÈËÔ±µÄһѸËÙ׫д¶¯Ì¬Éú³ÉµÄÒ³Ãæ¡£</para>
<para>Òª»ñµÃÓÃÓÚ
<application>Apache</application> web ·þÎñÆ÷µÄ
<acronym>PHP</acronym>5 Ö§³Ö£¬ ¿ÉÒÔ´Ó°²×°
<filename role="package">lang/php5</filename>
port ¿ªÊ¼¡£</para>
<para>ÔÚÊ״ΰ²×° <filename role="package">lang/php5</filename> port
µÄʱºò£¬ ϵͳ»á×Ô¶¯ÏÔʾ¿ÉÓõÄһϵÁÐ
<literal>OPTIONS</literal> (ÅäÖÃÑ¡Ïî)¡£ Èç¹ûÄúûÓп´µ½²Ëµ¥£¬
ÀýÈçÓÉÓÚ¹ýÈ¥Ôø¾­°²×°¹ý <filename
role="package">lang/php5</filename> port µÈµÈ£¬
¿ÉÒÔÓÃÏÂÃæµÄÃüÁîÔÙ´ÎÏÔʾÅäÖò˵¥£¬ ÔÚ port µÄĿ¼ÖÐÖ´ÐУº</para>
<screen>&prompt.root; <userinput>make config</userinput></screen>
<para>ÔÚÅäÖÃÑ¡Ïî¶Ô»°¿òÖУ¬ Ñ¡ÖÐ
<literal>APACHE</literal> ÕâÒ»Ï ¾Í¿ÉÒÔÁª±à³öÓÃÓÚÓë
<application>Apache</application> web ·þÎñÆ÷ÅäºÏʹÓõĿɶ¯Ì¬¼ÓÔØµÄ
<application>mod_php5</application> Ä£¿éÁË¡£</para>
<note>
<para>ÓÉÓÚ¸÷ʽ¸÷ÑùµÄÔ­Òò (ÀýÈ磬 ³öÓÚÒѾ­²¿ÊðµÄ web Ó¦ÓõļæÈÝÐÔ¿¼ÂÇ)£¬
Ðí¶àÍøÕ¾ÈÔÔÚʹÓà <acronym>PHP</acronym>4¡£ Èç¹ûÄúÐèÒª
<application>mod_php4</application> ¶ø²»ÊÇ
<application>mod_php5</application>£¬ ÇëʹÓÃ
<filename role="package">lang/php4</filename> port¡£
<filename role="package">lang/php4</filename> port Ò²Ö§³ÖÐí¶à
<filename role="package">lang/php5</filename> port ÌṩµÄÅäÖúͱàÒëʱѡÏî¡£</para>
</note>
<para>Ç°ÃæÎÒÃÇÒѾ­³É¹¦µØ°²×°²¢ÅäÖÃÁËÓÃÓÚÖ§³Ö¶¯Ì¬ <acronym>PHP</acronym> Ó¦ÓÃËùÐèµÄÄ£¿é¡£
Çë¼ì²é²¢È·ÈÏÄúÒѽ«ÏÂÊöÅäÖüÓÈëµ½ÁË
<filename>/usr/local/etc/apache/httpd.conf</filename> ÖУº</para>
<programlisting>LoadModule php5_module libexec/apache/libphp5.so</programlisting>
<programlisting>AddModule mod_php5.c
&lt;IfModule mod_php5.c&gt;
DirectoryIndex index.php index.html
&lt;/IfModule&gt;
&lt;IfModule mod_php5.c&gt;
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
&lt;/IfModule&gt;</programlisting>
<para>ÕâЩ¹¤×÷Íê³ÉÖ®ºó£¬ »¹ÐèҪʹÓÃ
<command>apachectl</command> ÃüÁîÀ´Íê³ÉÒ»´Î graceful
restart ÒÔ±ã¼ÓÔØ <acronym>PHP</acronym> Ä£¿é£º</para>
<screen>&prompt.root; <userinput>apachectl graceful</userinput></screen>
<para>ÔÚδÀ´ÄúÉý¼¶ <acronym>PHP</acronym> ʱ£¬
<command>make config</command> Õâ²½²Ù×÷¾Í²»ÔÙÊDZØÐèµÄÁË£»
ÄúËùÑ¡ÔñµÄ <literal>OPTIONS</literal> »áÓÉ &os;
µÄ Ports ¿ò¼Ü×Ô¶¯±£´æ¡£</para>
<para>ÔÚ &os; ÖÐµÄ <acronym>PHP</acronym> Ö§³ÖÊǸ߶ÈÄ£¿é»¯µÄ£¬
Òò´Ë»ù±¾°²×°µÄ¹¦ÄÜÊ®·ÖÓÐÏÞ¡£ Ôö¼ÓÆäËû¹¦ÄܵÄÖ§³Ö·Ç³£¼òµ¥£¬ Ö»Ðèͨ¹ý
<filename role="package">lang/php5-extensions</filename> port
¼´¿ÉÍê³É¡£ Õâ¸ö port ÌṩÁËÒ»¸ö²Ëµ¥Çý¶¯µÄ½çÃæÀ´°ïÖúÍê³É
<acronym>PHP</acronym> À©Õ¹µÄ°²×°¡£ ÁíÍ⣬ Ò²¿ÉÒÔͨ¹ý¶ÔÓ¦µÄ port
À´µ¥¶À°²×°À©Õ¹¡£</para>
<para>ÀýÈ磬 Òª½«¶ÔÓÚ
<application>MySQL</application> Êý¾Ý¿â·þÎñÆ÷µÄÖ§³Ö¼ÓÈë
<acronym>PHP</acronym>5£¬ Ö»Ðè¼òµ¥µØ°²×°
<filename role="package">databases/php5-mysql</filename>
port¡£</para>
<para>°²×°ÍêÀ©Õ¹Ö®ºó£¬ ±ØÐëÖØÐÂÆô¶¯
<application>Apache</application> ·þÎñÆ÷£¬
À´ÁîÆäÊÊӦеÄÅäÖñä¸ü£º</para>
<screen>&prompt.root; <userinput>apachectl graceful</userinput></screen>
</sect3>
</sect2>
</sect1>
<sect1 id="network-ftp">
<sect1info>
<authorgroup>
<author>
<firstname>Murray</firstname>
<surname>Stokely</surname>
<contrib>Contributed by </contrib>
</author>
</authorgroup>
</sect1info>
<title>Îļþ´«ÊäЭÒé (FTP)</title>
<indexterm><primary>FTP ·þÎñÆ÷</primary></indexterm>
<sect2>
<title>×ÝÀÀ</title>
<para>Îļþ´«ÊäЭÒé (FTP) ΪÓû§ÌṩÁËÒ»¸ö¼òµ¥µÄ£¬ Óë <acronym
role="File Transfer Protocol">FTP</acronym> ·þÎñÆ÷½»»»ÎļþµÄ·½·¨¡£ &os;
ϵͳÖаüº¬ÁË <acronym role="File Transfer Protocol">FTP</acronym>
·þÎñÈí¼þ£¬ <application>ftpd</application>¡£ ÕâʹµÃÔÚ &os;
ÉϽ¨Á¢ºÍ¹ÜÀí <acronym
role="File Transfer Protocol">FTP</acronym> ·þÎñÆ÷±äµÃ·Ç³£¼òµ¥¡£</para>
</sect2>
<sect2>
<title>ÅäÖÃ</title>
<para>×îÖØÒªµÄÅäÖò½ÖèÊǾö¶¨ÔÊÐíÄÄЩÕʺŷÃÎÊ FTP ·þÎñÆ÷¡£
Ò»°ãµÄ &os; ϵͳ°üº¬ÁËһϵÁÐϵͳÕʺŷֱðÓÃÓÚÖ´Ðв»Í¬µÄ·þÎñ³ÌÐò£¬
µ«Î´ÖªµÄÓû§²»Ó¦±»ÔÊÐíµÇ¼²¢Ê¹ÓÃÕâЩÕʺš£
<filename>/etc/ftpusers</filename> ÎļþÖУ¬ ÁгöÁ˲»ÔÊÐíͨ¹ý
FTP ·ÃÎʵÄÓû§¡£ ĬÈÏÇé¿öÏ£¬ Õâ°üº¬ÁËǰÊöµÄϵͳÕʺţ¬
µ«Ò²¿ÉÒÔÔÚÕâÀï¼ÓÈëÆäËü²»Ó¦Í¨¹ý FTP ·ÃÎʵÄÓû§¡£</para>
<para>Äú¿ÉÄÜ»áÏ£ÍûÏÞÖÆÍ¨¹ý FTP µÇ¼µÄijЩÓû§£¬
¶ø²»ÊÇÍêÈ«×èÖ¹ËûÃÇʹÓà FTP¡£ Õâ¿ÉÒÔͨ¹ý <filename>/etc/ftpchroot</filename>
ÎļþÀ´Íê³É¡£ ÕâÒ»ÎļþÁгöÁËÏ£Íû¶Ô FTP ·ÃÎʽøÐÐÏÞÖÆµÄÓû§ºÍ×éµÄ±í¡£
¶øÔÚ &man.ftpchroot.5; Áª»úÊÖ²áÖУ¬ ÒѾ­¶Ô´Ë½øÐÐÁËÏ꾡µÄ½éÉÜ£¬
¹Ê¶ø²»ÔÙ׸Êö¡£</para>
<indexterm>
<primary>FTP</primary>
<secondary>ÄäÃû</secondary>
</indexterm>
<para>Èç¹ûÄúÏëÒªÔÚ·þÎñÆ÷ÉÏÆôÓÃÄäÃûµÄ FTP ·ÃÎÊ£¬ Ôò±ØÐ뽨Á¢Ò»¸öÃûΪ
<username>ftp</username> µÄ &os; Óû§¡£ ÕâÑù£¬ Óû§¾Í¿ÉÒÔʹÓÃ
<username>ftp</username> »ò <username>anonymous</username>
ºÍÈÎÒâµÄ¿ÚÁî (ϰ¹ßÉÏ£¬ Ó¦¸ÃÊÇÒÔÄǸöÓû§µÄÓʼþµØÖ·×÷Ϊ¿ÚÁî)
À´µÇ¼ºÍ·ÃÎÊÄúµÄ FTP ·þÎñÆ÷¡£ FTP ·þÎñÆ÷½«ÔÚÄäÃûÓû§µÇ¼ʱµ÷ÓÃ
&man.chroot.2;£¬ ÒԱ㽫Æä·ÃÎÊÏÞÖÆÔÚ
<username>ftp</username> Óû§µÄÖ÷Ŀ¼ÖС£</para>
<para>ÓÐÁ½¸öÎı¾Îļþ¿ÉÒÔÓÃÀ´Ö¸¶¨ÏÔʾÔÚ FTP ¿Í»§³ÌÐòÖе϶ӭÎÄ×Ö¡£
<filename>/etc/ftpwelcome</filename> ÎļþÖеÄÄÚÈݽ«ÔÚÓû§Á¬½ÓÉÏÖ®ºó£¬
ÔڵǼÌáʾ֮ǰÏÔʾ¡£ Ôڳɹ¦µÄµÇ¼֮ºó£¬ ½«ÏÔʾ
<filename>/etc/ftpmotd</filename> ÎļþÖеÄÄÚÈÝ¡£
Çë×¢ÒâºóÕßÊÇÏà¶ÔÓڵǼ»·¾³µÄ£¬ Òò´Ë¶ÔÓÚÄäÃûÓû§¶øÑÔ£¬
½«ÏÔʾ <filename>~ftp/etc/ftpmotd</filename>¡£</para>
<para>Ò»µ©ÕýÈ·µØÅäÖÃÁË FTP ·þÎñÆ÷£¬
¾Í±ØÐëÔÚ <filename>/etc/inetd.conf</filename> ÖÐÆôÓÃËü¡£
ÕâÀïÐèÒª×öµÄÈ«²¿¹¤×÷¾ÍÊǽ«×¢ÊÍ·û
<quote>#</quote> ´ÓÒÑÓеÄ
<application>ftpd</application> ÐÐ֮ǰȥµô£º</para>
<programlisting>ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l</programlisting>
<para>Èç <xref linkend="network-inetd-reread"> Ëù½éÉܵÄÄÇÑù£¬
ÐÞ¸ÄÕâ¸öÎļþÖ®ºó£¬ ±ØÐëÈà <application>inetd</application> ÖØÐ¼ÓÔØËü£¬
²ÅÄÜʹеÄÉèÖÃÉúЧ¡£Çë²ÎÔÄ <xref linkend="network-inetd-settings">
ÒÔ»ñÈ¡¸ü¶àÓйØÈçºÎÔÚÄãϵͳÉÏÆôÓà <application>inetd</application>
µÄÏêϸÐÅÏ¢¡£</para>
<para><application>ftpd</application> Ò²¿ÉÒÔ×÷Ϊһ¸ö¶ÀÁ¢µÄ·þÎñÆô¶¯¡£
ÕâÑùµÄ»°¾ÍÐèÒªÔÚ <filename>/etc/rc.conf</filename>
ÖÐÉèÖÃÈçϵıäÁ¿£º</para>
<programlisting>ftpd_enable="YES"</programlisting>
<para>ÔÚÉèÖÃÁËÉÏÊö±äÁ¿Ö®ºó£¬¶ÀÁ¢µÄ·þÎñ½«ÔÚÏ´ÎÏµÍ³ÖØÆôµÄʱºòÆô¶¯£¬
»òÕßͨ¹ýÒÔ <username>root</username> Éí·ÝÊÖ¶¯Ö´ÐÐÈçϵÄÃüÁîÆô¶¯£º</para>
<screen>&prompt.root; <userinput>/etc/rc.d/ftpd start</userinput></screen>
<para>ÏÖÔÚ¿ÉÒÔͨ¹ýÊäÈëÏÂÃæµÄÃüÁîÀ´µÇ¼ÄúµÄ FTP ·þÎñÆ÷ÁË£º</para>
<screen>&prompt.user; <userinput>ftp localhost</userinput></screen>
</sect2>
<sect2>
<title>ά»¤</title>
<indexterm><primary>syslog</primary></indexterm>
<indexterm><primary>ÈÕÖ¾Îļþ</primary>
<secondary>FTP</secondary></indexterm>
<para><application>ftpd</application> ·þÎñ³ÌÐòʹÓÃ
&man.syslog.3; À´¼Ç¼ÏûÏ¢¡£ ĬÈÏÇé¿öÏ£¬
ϵͳÈÕÖ¾½«°ÑºÍ FTP Ïà¹ØµÄÏûÏ¢¼Ç¼µ½
<filename>/var/log/xferlog</filename> ÎļþÖС£ FTP ÈÕÖ¾µÄλÖã¬
¿ÉÒÔͨ¹ýÐÞ¸Ä
<filename>/etc/syslog.conf</filename> ÖÐÈçÏÂËùʾµÄÐÐÀ´Ð޸ģº</para>
<programlisting>ftp.info /var/log/xferlog</programlisting>
<indexterm>
<primary>FTP</primary>
<secondary>ÄäÃû</secondary>
</indexterm>
<para>Ò»¶¨ÒªÐ¡ÐĶԴýÔÚÄäÃû FTP ·þÎñÆ÷ÖпÉÄÜÓöµ½µÄDZÔÚÎÊÌâ¡£
Ò»°ã¶øÑÔ£¬ ÔÊÐíÄäÃûÓû§ÉÏ´«ÎļþÓ¦Èý˼¡£ Äú¿ÉÄÜ·¢ÏÖ×Ô¼ºµÄ FTP
Õ¾µã³ÉΪÁ˽»Ò×δ¾­ÊÚȨµÄÉÌÒµÈí¼þµÄÂÛ̳£¬ »ò·¢Éú¸üÔã¸âµÄÇé¿ö¡£
Èç¹û²»ÐèÒªÄäÃûµÄ FTP ÉÏ´«£¬ ¿ÉÒÔÔÚÎļþÉÏÅäÖÃȨÏÞ£¬
ʹµÃÄúÄܹ»ÔÚÆäËüÄäÃûÓû§Äܹ»ÏÂÔØÕâЩÎļþ֮ǰ¸´²éËüÃÇ¡£</para>
</sect2>
</sect1>
<sect1 id="network-samba">
<sect1info>
<authorgroup>
<author>
<firstname>Murray</firstname>
<surname>Stokely</surname>
<contrib>Contributed by </contrib>
</author>
</authorgroup>
</sect1info>
<title>Ϊ &microsoft.windows; ¿Í»§»úÌṩÎļþºÍ´òÓ¡·þÎñ (Samba)</title>
<indexterm><primary>Samba ·þÎñÆ÷</primary></indexterm>
<indexterm><primary>Microsoft Windows</primary></indexterm>
<indexterm>
<primary>Îļþ·þÎñÆ÷</primary>
<secondary>Windows ¿Í»§»ú</secondary>
</indexterm>
<indexterm>
<primary>´òÓ¡·þÎñÆ÷</primary>
<secondary>Windows ¿Í»§»ú</secondary>
</indexterm>
<sect2>
<title>×ÝÀÀ</title>
<para><application>Samba</application> ÊÇÒ»¸öÁ÷ÐеĿªÔ´Èí¼þ°ü£¬
ËüÌṩÁËÕë¶Ô &microsoft.windows; ¿Í»§»úµÄÎļþºÍ´òÓ¡·þÎñ¡£
ÕâÀà¿Í»§»ú¿ÉÒÔÁ¬½Ó²¢Ê¹Óà FreeBSD ϵͳÉϵÄÎļþ¿Õ¼ä£¬
¾ÍÈçͬʹÓñ¾µØµÄ´ÅÅÌÒ»Ñù£¬ »òÕßÏñʹÓñ¾µØ´òÓ¡»úÒ»ÑùʹÓÃ
FreeBSD ÉϵĴòÓ¡»ú¡£</para>
<para><application>Samba</application> Èí¼þ°ü¿ÉÒÔÔÚÄúµÄ FreeBSD
°²×°ÅÌÉÏÕÒµ½¡£ Èç¹ûÄúûÓÐÔÚ³õ´Î°²×° FreeBSD
ʱ°²×° <application>Samba</application>£¬ Ôò¿ÉÒÔͨ¹ý <filename
role="package">net/samba3</filename> port »ò package À´°²×°¡£</para>
<!-- mention LDAP, Active Directory, WinBIND, ACL, Quotas, PAM, .. -->
</sect2>
<sect2>
<title>ÅäÖÃ</title>
<para>ĬÈ쵀 <application>Samba</application> ÅäÖÃÎļþ»áÒÔ
<filename>/usr/local/share/examples/samba/smb.conf.default</filename>
µÄÃû×Ö°²×°¡£Õâ¸öÎļþ±ØÐë¸´ÖÆÎª
<filename>/usr/local/etc/smb.conf</filename> ²¢½øÐж¨ÖÆ£¬
²ÅÄÜ¿ªÊ¼Ê¹Óà <application>Samba</application>¡£</para>
<para><filename>smb.conf</filename> ÎļþÖаüº¬ÁË
<application>Samba</application> µÄÔËÐÐʱÅäÖÃÐÅÏ¢£¬
ÀýÈç¶ÔÓÚ´òÓ¡»úµÄ¶¨Ò壬 ÒÔ¼°Ï£Íû¹²Ïí¸ø &windows;
¿Í»§»úµÄ <quote>¹²ÏíÎļþϵͳ</quote>¡£
<application>Samba</application> Èí¼þ°ü°üº¬ÁËÒ»¸ö³ÆÎª
<application>swat</application> µÄ web ¹ÜÀí¹¤¾ß£¬
ºóÕßÌṩÁËÅäÖà <filename>smb.conf</filename> ÎļþµÄ¼òµ¥·½·¨¡£</para>
<sect3>
<title>ʹÓà Samba Web ¹ÜÀí¹¤¾ß (SWAT)</title>
<para>Samba Web ¹ÜÀí¹¤¾ß (SWAT) ÊÇÒ»¸öͨ¹ý
<application>inetd</application> ÔËÐеķþÎñ³ÌÐò¡£ Òò´Ë£¬
ÐèÒª°Ñ <filename>/etc/inetd.conf</filename> ÖÐÏÂÃæ¼¸ÐеÄ×¢ÊÍÈ¥µô£¬
²ÅÄܹ»Ê¹Óà <application>swat</application>
À´ÅäÖà <application>Samba</application>£º</para>
<programlisting>swat stream tcp nowait/400 root /usr/local/sbin/swat swat</programlisting>
<para>Èç <xref linkend="network-inetd-reread"> ÖÐËù½éÉܵÄÄÇÑù£¬
ÔÚÐÞ¸ÄÁËÕâ¸öÅäÖÃÎļþÖ®ºó£¬ ±ØÐëÈà <application>inetd</application>
ÖØÐ¼ÓÔØÅäÖ㬠²ÅÄÜʹÆäÉúЧ¡£</para>
<para>Ò»µ©ÔÚ <filename>inetd.conf</filename> ÖÐÆôÓÃÁË
<application>swat</application>£¬ ¾Í¿ÉÒÔÓÃä¯ÀÀÆ÷·ÃÎÊ
connect to <ulink url="http://localhost:901"></ulink> ÁË¡£
Äú½«Ê×ÏÈʹÓÃϵͳµÄ <username>root</username>
ÕʺŵǼ¡£</para>
<!-- XXX screenshots go here, loader is creating them -->
<para>Ö»Òª³É¹¦µØµÇ¼½øÁË
<application>Samba</application> ÅäÖÃÒ³Ãæ£¬
¾Í¿ÉÒÔä¯ÀÀϵͳµÄÎĵµ£¬ »ò´Ó
<guimenu>Globals</guimenu>(È«¾Ö) Ñ¡Ï¿ªÊ¼ÅäÖÃÁË¡£
<guimenu>Globals</guimenu> С½Ú¶ÔÓ¦ÓÚ <literal>[global]</literal>
С½ÚÖеıäÁ¿£¬ ǰÕßλÓÚ
<filename>/usr/local/etc/smb.conf</filename> ÖС£</para>
</sect3>
<sect3>
<title>È«¾ÖÅäÖÃ</title>
<para>ÎÞÂÛÊÇʹÓà <application>swat</application>£¬
»¹ÊÇÖ±½Ó±à¼­ <filename>/usr/local/etc/smb.conf</filename>£¬
ͨ³£Ê×ÏÈÒªÅäÖÃµÄ <application>Samba</application>
Ñ¡Ïî¶¼ÊÇ£º</para>
<variablelist>
<varlistentry>
<term><literal>workgroup</literal></term>
<listitem>
<para>NT ÓòÃû»ò¹¤×÷×éÃû£¬
ÆäËû¼ÆËã»ú½«Í¨¹ýÕâЩÃû×ÖÀ´ÕÒµ½·þÎñÆ÷¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>netbios name</literal></term>
<indexterm><primary>NetBIOS</primary></indexterm>
<listitem>
<para>Õâ¸öÑ¡ÏîÓÃÓÚÉèÖà <application>Samba</application> ·þÎñÆ÷µÄ
NetBIOS Ãû×Ö¡£ ĬÈÏÇé¿öÏ£¬ ÕâÊÇËùÔÚÖ÷»úµÄ DNS Ãû×ֵĵÚÒ»²¿·Ö¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>server string</literal></term>
<listitem>
<para>Õâ¸öÑ¡ÏîÓÃÓÚÉèÖÃͨ¹ý <command>net view</command>
ÃüÁ ÒÔ¼°Ä³Ð©ÆäËûÍøÂ繤¾ß¿ÉÒԲ鿴µ½µÄ¹ØÓÚ·þÎñÆ÷µÄ˵Ã÷ÐÔÎÄ×Ö¡£</para>
</listitem>
</varlistentry>
</variablelist>
</sect3>
<sect3>
<title>°²È«ÅäÖÃ</title>
<para>ÔÚ
<filename>/usr/local/etc/smb.conf</filename> ÖеÄÁ½¸ö×îÖØÒªµÄÅäÖã¬
ÊÇÑ¡¶¨µÄ°²È«Ä£ÐÍ£¬ ÒÔ¼°¿Í»§»úÉÏÓû§µÄ¿ÚÁî´æ·Åºó¶Ë¡£
ÏÂÃæµÄÓï¾ä¿ØÖÆÕâЩѡÏ</para>
<variablelist>
<varlistentry>
<term><literal>security</literal></term>
<listitem>
<para>×î³£¼ûµÄÑ¡ÏîÐÎʽÊÇ
<literal>security = share</literal> ºÍ <literal>security
= user</literal>¡£ Èç¹ûÄúµÄ¿Í»§»úʹÓÃÓû§Ãû£¬
²¢ÇÒÕâЩÓû§ÃûÓëÄúµÄ &os; »úÆ÷Ò»Ö£¬
Ò»°ãӦѡÔñÓû§¼¶ (user) °²È«¡£ ÕâÊÇĬÈϵݲȫ²ßÂÔ£¬
ËüÒªÇó¿Í»§»úÊ×ÏȵǼ£¬ È»ºó²ÅÄÜ·ÃÎʹ²ÏíµÄ×ÊÔ´¡£</para>
<para>Èç¹û²ÉÓù²Ïí¼¶ (share) °²È«£¬
Ôò¿Í»§»ú²»ÐèÒªÓÃÓÐЧµÄÓû§ÃûºÍ¿ÚÁîµÇ¼·þÎñÆ÷£¬
¾ÍÄܹ»Á¬½Ó¹²ÏíµÄ×ÊÔ´¡£ ÕâÊǽÏÔç°æ±¾µÄ
<application>Samba</application> ÖеÄĬÈÏÖµ¡£</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>passdb backend</literal></term>
<indexterm><primary>NIS+</primary></indexterm>
<indexterm><primary>LDAP</primary></indexterm>
<indexterm><primary>SQL Êý¾Ý¿â</primary></indexterm>
<listitem>
<para><application>Samba</application> ÌṩÁËÈô¸ÉÖÖ²»Í¬µÄÑéÖ¤ºó¶ËÄ£ÐÍ¡£
Äú¿ÉÒÔͨ¹ý LDAP¡¢ NIS+¡¢ SQL Êý¾Ý¿â£¬ »ò¾­¹ýÐ޸ĵĿÚÁîÎļþ£¬
À´Íê³É¿Í»§¶ËµÄÉí·ÝÑéÖ¤¡£ ĬÈϵÄÑé֤ģʽÊÇ
<literal>smbpasswd</literal>£¬ ÕâÒ²ÊDZ¾Õ½«½éÉܵÄÈ«²¿ÄÚÈÝ¡£</para>
</listitem>
</varlistentry>
</variablelist>
<para>¼ÙÉèÄúʹÓõÄÊÇĬÈ쵀 <literal>smbpasswd</literal>
ºó¶Ë£¬ Ôò±ØÐëÊ×ÏÈ´´½¨Ò»¸ö
<filename>/usr/local/private/smbpasswd</filename> Îļþ£¬
À´ÔÊÐí <application>Samba</application> ¶Ô¿Í»§½øÐÐÉí·ÝÑéÖ¤¡£
Èç¹ûÄú´òËãÈà &unix; Óû§ÕʺÅÄܹ»´Ó &windows;
¿Í»§»úÉϵǼ£¬ ¿ÉÒÔʹÓÃÏÂÃæµÄÃüÁ</para>
<screen>&prompt.root; <userinput>smbpasswd -a username</userinput></screen>
<note>
<para>´Ó <application>Samba</application> 3.0.23c ¿ªÊ¼£¬
ÓÃÓÚ´æÔÚÑéÖ¤ÎļþµÄʵ¼ÊĿ¼±ä³ÉÁË
<filename class="directory">/usr/local/etc/samba</filename>¡£
Ä¿Ç°ÍÆ¼öʹÓõĺó¶ËÊÇ <literal>tdbsam</literal>£¬
ÄúӦʹÓÃÏÂÃæµÄÃüÁîÀ´Ìí¼ÓÓû§Õʺţº</para>
<screen>&prompt.root; <userinput><command>pdbedit <option>-a</option> <option>-u</option> <replaceable>username</replaceable></command></userinput></screen>
</note>
<para>Çë²Î¿¼
<ulink
url="http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/">¹Ù·½µÄ Samba HOWTO</ulink>
ÒÔÁË½â¹ØÓÚÅäÖÃÑ¡ÏîµÄ½øÒ»²½ÐÅÏ¢¡£ °´ÕÕÇ°Ãæ¸ø³öµÄ»ù±¾ÃèÊö£¬
ÄúÓ¦¸ÃÒѾ­¿ÉÒÔÆô¶¯
<application>Samba</application> ÁË¡£</para>
</sect3>
</sect2>
<sect2>
<title>Æô¶¯ <application>Samba</application></title>
<para><filename role="package">net/samba3</filename> port
»áÔö¼ÓÒ»¸öеÄÓÃÓÚ¿ØÖÆ
<application>Samba</application> µÄÆô¶¯½Å±¾¡£ ÒªÆôÓÃÕâ¸ö½Å±¾£¬
ÒÔ±ãÓÃËüÀ´Íê³ÉÆô¶¯¡¢ Í£Ö¹»òÖØÆô
<application>Samba</application> µÄÈÎÎñ£¬ ÐèÒªÔÚ
<filename>/etc/rc.conf</filename> ÎļþÖмÓÈ룺</para>
<programlisting>samba_enable="YES"</programlisting>
<para>´ËÍ⣬ Ò²¿ÉÒÔ½øÐиüϸÁ£¶ÈµÄ¿ØÖÆ£º</para>
<programlisting>nmbd_enable="YES"</programlisting>
<programlisting>smbd_enable="YES"</programlisting>
<note>
<para>ÕâҲͬʱÅäÖÃÁËÔÚϵͳÒýµ¼Ê±Æô¶¯ <application>Samba</application>¡£</para>
</note>
<para>ÅäÖúÃÖ®ºó£¬ ¾Í¿ÉÒÔÔÚÈκÎʱºòͨ¹ýÏÂÃæµÄÃüÁîÀ´Æô¶¯
<application>Samba</application> ÁË£º</para>
<screen>&prompt.root; <userinput>/usr/local/etc/rc.d/samba start</userinput>
Starting SAMBA: removing stale tdbs :
Starting nmbd.
Starting smbd.</screen>
<para>Çë²Î¼û <xref linkend="configtuning-rcd"> ÒÔÁË½â¹ØÓÚʹÓà rc ½Å±¾µÄ½øÒ»²½ÐÅÏ¢¡£</para>
<para><application>Samba</application> ÊÂʵÉϰüº¬ÁËÈý¸öÏ໥¶ÀÁ¢µÄ·þÎñ³ÌÐò¡£
ÄúÓ¦¸ÃÄܹ»¿´µ½
<application>nmbd</application> ºÍ <application>smbd</application>
Á½¸ö·þÎñ³ÌÐò¶¼ÊÇͨ¹ý <filename>samba</filename> ½Å±¾Æô¶¯µÄ¡£ Èç¹ûÔÚ
<filename>smb.conf</filename> ÖÐÆôÓÃÁË winbind Ãû×Ö½âÎö·þÎñ£¬
ÔòÓ¦¸Ã¿ÉÒÔ¿´µ½ <application>winbindd</application>
·þÎñ±»Æô¶¯ÆðÀ´¡£</para>
<para>¿ÉÒÔÔÚÈκÎʱºòͨ¹ýÏÂÃæµÄÃüÁîÀ´Í£Ö¹ÔËÐÐ
<application>Samba</application>£º</para>
<screen>&prompt.root; <userinput>/usr/local/etc/rc.d/samba stop</userinput></screen>
<para><application>Samba</application> ÊÇÒ»¸ö¸´ÔÓµÄÈí¼þ°ü£¬
ËüÌṩÁËÓÃÓÚÓë &microsoft.windows; ÍøÂç½øÐм¯³ÉµÄ¸÷ʽ¸÷ÑùµÄ¹¦ÄÜ¡£
ÒªÁË½â¹ØÓÚÕâÀïËù½éÉܵĻù±¾°²×°ÒÔÍâµÄÆäËü¹¦ÄÜ£¬
Çë·ÃÎÊ <ulink url="http://www.samba.org"></ulink>¡£</para>
</sect2>
</sect1>
<sect1 id="network-ntp">
<sect1info>
<authorgroup>
<author>
<firstname>Tom</firstname>
<surname>Hukins</surname>
<contrib>Contributed by </contrib>
</author>
</authorgroup>
</sect1info>
<title>ͨ¹ý NTP ½øÐÐʱÖÓͬ²½</title>
<indexterm><primary>NTP</primary></indexterm>
<sect2>
<title>×ÝÀÀ</title>
<para>Ëæ×Åʱ¼äµÄÍÆÒÆ£¬ ¼ÆËã»úµÄʱÖÓ»áÇãÏòÓÚÆ¯ÒÆ¡£
ÍøÂçʱ¼äЭÒé (NTP) ÊÇÒ»ÖÖÈ·±£ÄúµÄʱÖÓ±£³Ö׼ȷµÄ·½·¨¡£</para>
<para>Ðí¶à Internet ·þÎñÒÀÀµ¡¢ »ò¼«´óµØÊÜÒæÓÚ±¾µØ¼ÆËã»úʱÖÓµÄ׼ȷÐÔ¡£
ÀýÈ磬 web ·þÎñÆ÷¿ÉÄÜ»á½ÓÊÕµ½Ò»¸öÇëÇó£¬
ÒªÇóÈç¹ûÎļþÔÚijһʱ¿ÌÖ®ºóÐ޸Ĺý²Å·¢ËÍËü¡£
ÔÚ¾ÖÓòÍø»·¾³ÖУ¬ ¹²ÏíÎļþµÄ¼ÆËã»úÖ®¼äµÄʱÖÓÊÇ·ñͬ²½ÖÁ¹ØÖØÒª£¬
ÒòΪÕâÑù²ÅÄÜʹʱ¼ä´Á±£³ÖÒ»Ö¡£ ÀàËÆ &man.cron.8;
ÕâÑùµÄ³ÌÐò£¬ Ò²ÒÀÀµÓÚÕýÈ·µÄϵͳʱÖÓ£¬ ²ÅÄܹ»×¼È·µØÖ´ÐвÙ×÷¡£</para>
<indexterm>
<primary>NTP</primary>
<secondary>ntpd</secondary>
</indexterm>
<para>FreeBSD ¸½´øÁË &man.ntpd.8; <acronym role="Network
Time Protocol">NTP</acronym> ·þÎñÆ÷£¬
Ëü¿ÉÒÔÓÃÓÚ²éѯÆäËüµÄ <acronym role="Network Time Protocol">NTP</acronym>
·þÎñÆ÷£¬ ²¢ÅäÖñ¾µØ¼ÆËã»úµÄʱÖÓ£¬ »òÕßΪÆäËü»úÆ÷Ìṩ·þÎñ¡£</para>
</sect2>
<sect2>
<title>Ñ¡ÔñºÏÊ浀 NTP ·þÎñÆ÷</title>
<indexterm>
<primary>NTP</primary>
<secondary>Ñ¡Ôñ·þÎñÆ÷</secondary>
</indexterm>
<para>ΪÁËͬ²½ÄúµÄϵͳʱÖÓ£¬
ÐèÒªÊ×ÏÈÕÒµ½ÖÁÉÙÒ»¸ö <acronym role="Network Time
Protocol">NTP</acronym> ·þÎñÆ÷ÒÔ¹©Ê¹Óá£ ÍøÂç¹ÜÀíÔ±£¬
»ò ISP ¶¼¿ÉÄÜ»áÌṩÓÃÓÚÕâÑùÄ¿µÄµÄ NTP
·þÎñÆ÷&mdash;Çë²é¿´ËûÃǵÄÎĵµÒÔÁ˽âÊÇ·ñÊÇÕâÑù¡£
ÁíÍ⣬ Ò²ÓÐÒ»¸öÔÚÏßµÄ <ulink
url="http://ntp.isc.org/bin/view/Servers/WebHome">¹«¿ªµÄ
NTP ·þÎñÆ÷Áбí</ulink>£¬ Äú¿ÉÒÔ´ÓÖÐѡһ¸ö½Ï½üµÄ NTP ·þÎñÆ÷¡£
ÇëÈ·ÈÏÄúÑ¡ÔñµÄ·þÎñÆ÷µÄ·ÃÎʲßÂÔ£¬ Èç¹ûÐèÒªµÄ»°£¬
ÉêÇëÒ»ÏÂËùÐèµÄÐí¿É¡£</para>
<para>Ñ¡Ôñ¶à¸öÏ໥²»Á¬½ÓµÄ NTP ·þÎñÆ÷ÊÇÒ»¸öºÃÖ÷Ò⣬
ÕâÑùÔÚij¸ö·þÎñÆ÷²»¿É´ï£¬ »òÕßʱÖÓ²»¿É¿¿Ê±¾Í¿ÉÒÔÓбðµÄÑ¡Ôñ¡£
ÕâÊÇÒòΪ£¬ &man.ntpd.8;
»áÖÇÄܵØÑ¡ÔñËüÊÕµ½µÄÏìÓ¦&mdash;Ëü»á¸üÇãÏòÓÚʹÓÿɿ¿µÄ·þÎñÆ÷¡£</para>
</sect2>
<sect2>
<title>ÅäÖÃÄúµÄ»úÆ÷</title>
<indexterm>
<primary>NTP</primary>
<secondary>ÅäÖÃ</secondary>
</indexterm>
<sect3>
<title>»ù±¾ÅäÖÃ</title>
<indexterm><primary>ntpdate</primary></indexterm>
<para>Èç¹ûÖ»ÏëÔÚϵͳÆô¶¯Ê±Í¬²½Ê±ÖÓ£¬
Ôò¿ÉÒÔʹÓà &man.ntpdate.8;¡£ ¶ÔÓÚ¾­³£ÖØÐÂÆô¶¯£¬
²¢ÇÒ²»ÐèÒª¾­³£Í¬²½µÄ×ÀÃæÏµÍ³À´ËµÕâ±È½ÏÊʺϣ¬
µ«¾ø´ó¶àÊý»úÆ÷¶¼Ó¦¸ÃÔËÐÐ &man.ntpd.8;¡£</para>
<para>ÔÚÒýµ¼Ê±Ê¹Óà &man.ntpdate.8; À´ÅäºÏÔËÐÐ &man.ntpd.8;
Ò²ÊÇÒ»¸öºÃÖ÷Òâ¡£ &man.ntpd.8; ½¥½øµØÐÞÕýʱÖÓ£¬
¶ø &man.ntpdate.8; ÔòÖ±½ÓÉèÖÃʱÖÓ£¬
ÎÞÂÛ»úÆ÷µÄµ±Ç°Ê±¼äºÍÕýȷʱ¼äÓжà´óµÄÆ«²î¡£</para>
<para>ÒªÆôÓÃÒýµ¼Ê±µÄ &man.ntpdate.8;£¬ ÐèÒª°Ñ
<literal>ntpdate_enable="YES"</literal> ¼Óµ½
<filename>/etc/rc.conf</filename> ÖС£ ´ËÍ⣬
»¹ÐèҪͨ¹ý <varname>ntpdate_flags</varname>
À´ÉèÖÃͬ²½µÄ·þÎñÆ÷ºÍÑ¡Ï
ËüÃǽ«´«µÝ¸ø &man.ntpdate.8;¡£</para>
</sect3>
<sect3>
<indexterm>
<primary>NTP</primary>
<secondary>ntp.conf</secondary>
</indexterm>
<title>Ò»°ãÅäÖÃ</title>
<para>NTP ÊÇͨ¹ý
<filename>/etc/ntp.conf</filename> ÎļþÀ´½øÐÐÅäÖõģ¬
Æä¸ñʽÔÚ &man.ntp.conf.5; ÖнøÐÐÁËÃèÊö¡£
ÏÂÃæÊÇÒ»¸öÀý×Ó£º</para>
<programlisting>server ntplocal.example.com prefer
server timeserver.example.org
server ntp2a.example.net
driftfile /var/db/ntp.drift</programlisting>
<para>ÕâÀ <literal>server</literal> Ñ¡ÏîÖ¸¶¨ÁËʹÓÃÄÄÒ»¸ö·þÎñÆ÷£¬
ÿһ¸ö·þÎñÆ÷¶¼¶ÀÁ¢Ò»ÐС£ Èç¹ûijһ̨·þÎñÆ÷ÉÏÖ¸¶¨ÁË <literal>prefer</literal>
(Æ«ºÃ) ²ÎÊý£¬ ÈçÉÏÃæµÄ <hostid
role="fqdn">ntplocal.example.com</hostid>£¬
Ôò»áÓÅÏÈÑ¡ÔñÕâ¸ö·þÎñÆ÷¡£
Èç¹ûÆ«ºÃµÄ·þÎñÆ÷ºÍÆäËû·þÎñÆ÷µÄÏìÓ¦´æÔÚÏÔÖøµÄ²î±ð£¬
Ôò¶ªÆúËüµÄÏìÓ¦£¬ ·ñÔò½«Ê¹ÓÃÀ´×ÔËüµÄÏìÓ¦£¬
¶ø²»Àí»áÆäËû·þÎñÆ÷¡£ Ò»°ãÀ´Ëµ£¬
<literal>prefer</literal> ²ÎÊýÓ¦¸Ã±ê×¢Ôڷdz£¾«È·µÄ NTP
ʱԴ£¬ ÀýÈçÄÇЩ°üº¬ÌØÊâµÄʱ¼ä¼à¿ØÓ²¼þµÄ·þÎñÆ÷ÉÏ¡£</para>
<para>¶ø <literal>driftfile</literal> Ñ¡Ï
ÔòÖ¸¶¨ÁËÓÃÀ´±£´æÏµÍ³Ê±ÖÓÆµÂÊÆ«²îµÄÎļþ¡£
&man.ntpd.8; ³ÌÐòʹÓÃËüÀ´×Ô¶¯µØ²¹³¥Ê±ÖÓµÄ×ÔÈ»Æ¯ÒÆ£¬
´Ó¶øÊ¹Ê±ÖÓ¼´Ê¹ÔÚÇжÏÁËÍâÀ´Ê±Ô´µÄÇé¿öÏ£¬
ÈÔÄܱ£³ÖÏ൱µÄ׼ȷ¶È¡£</para>
<para>ÁíÍ⣬ <literal>driftfile</literal>
Ñ¡ÏîÒ²±£´æÉÏÒ»´ÎÏìÓ¦ËùʹÓÃµÄ NTP ·þÎñÆ÷µÄÐÅÏ¢¡£
Õâ¸öÎļþ°üº¬ÁË NTP µÄÄÚ²¿ÐÅÏ¢£¬ Ëü²»Ó¦±»ÈÎºÎÆäËû½ø³ÌÐ޸ġ£</para>
</sect3>
<sect3>
<title>¿ØÖÆÄúµÄ·þÎñÆ÷µÄ·ÃÎÊ</title>
<para>ĬÈÏÇé¿öÏ£¬ NTP ·þÎñÆ÷¿ÉÒÔ±»Õû¸ö Internet ÉϵÄÖ÷»ú·ÃÎÊ¡£
Èç¹ûÔÚ <filename>/etc/ntp.conf</filename> ÖÐÖ¸¶¨ <literal>restrict</literal>
²ÎÊý£¬ Ôò¿ÉÒÔ¿ØÖÆÔÊÐíÄÄЩ»úÆ÷·ÃÎÊÄúµÄ·þÎñÆ÷¡£</para>
<para>Èç¹ûÏ£Íû¾Ü¾øËùÓеĻúÆ÷·ÃÎÊÄúµÄ NTP
·þÎñÆ÷£¬ Ö»ÐèÔÚ
<filename>/etc/ntp.conf</filename> ÖмÓÈ룺</para>
<programlisting>restrict default ignore</programlisting>
<note>
<para>ÕâÑù×ö»á½ûÖ¹ÄúµÄ·þÎñÆ÷·ÃÎÊÔÚ±¾µØÅäÖÃÖÐÁгöµÄ·þÎñÆ÷¡£
Èç¹ûÄúÐèÒªÁî NTP ·þÎñÆ÷ÓëÍâ½çµÄ NTP
·þÎñÆ÷ͬ²½Ê±¼ä£¬ ÔòÓ¦ÔÊÐíÖ¸¶¨·þÎñÆ÷¡£ Çë²Î¼ûÁª»úÊÖ²á
&man.ntp.conf.5; ÒÔÁË½â½øÒ»²½µÄϸ½Ú¡£</para>
</note>
<para>Èç¹ûֻϣÍû×ÓÍøÄڵĻúÆ÷ͨ¹ýÄúµÄ·þÎñÆ÷ͬ²½Ê±ÖÓ£¬
¶ø²»ÔÊÐíËüÃÇÅäÖÃΪ·þÎñÆ÷£¬ »ò×÷Ϊͬ²½Ê±ÖӵĽڵãÀ´Ê±Óã¬
Ôò¼ÓÈë</para>
<programlisting>restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap</programlisting>
<para>ÕâÀ ÐèÒª°Ñ <hostid role="ipaddr">192.168.1.0</hostid> ¸ÄΪÄúÍøÂçÉϵÄ
IP µØÖ·£¬ ²¢°Ñ <hostid
role="netmask">255.255.255.0</hostid> ¸ÄΪÄúµÄ×ÓÍøÑÚÂë¡£</para>
<para><filename>/etc/ntp.conf</filename> ¿ÉÄܰüº¬¶à¸ö
<literal>restrict</literal> Ñ¡Ïî¡£ ÒªÁË½â½øÒ»²½µÄϸ½Ú£¬
Çë²Î¼û &man.ntp.conf.5; µÄ
<literal>Access Control Support</literal>(·ÃÎÊ¿ØÖÆÖ§³Ö)
С½Ú¡£</para>
</sect3>
</sect2>
<sect2>
<title>ÔËÐÐ NTP ·þÎñÆ÷</title>
<para>ÒªÈà NTP ·þÎñÆ÷ÔÚϵͳÆô¶¯Ê±ËæÖ®¿ªÆô£¬
ÐèÒª°Ñ <literal>ntpd_enable="YES"</literal> ¼ÓÈëµ½
<filename>/etc/rc.conf</filename> ÖС£
Èç¹ûÏ£ÍûÏò &man.ntpd.8; ´«µÝ¸ü¶à²ÎÊý£¬ ÐèÒª±à¼­
<filename>/etc/rc.conf</filename> ÖеÄ
<varname>ntpd_flags</varname>¡£</para>
<para>ÒªÔÚ²»ÖØÐÂÆô¶¯»úÆ÷µÄǰÌáÏÂÆô¶¯·þÎñÆ÷£¬ ÐèÒªÊÖ¹¤ÔËÐÐ
<command>ntpd</command>£¬ ²¢´øÉÏ
<filename>/etc/rc.conf</filename>
ÖÐµÄ <varname>ntpd_flags</varname> ËùÖ¸¶¨µÄ²ÎÊý¡£
ÀýÈ磺</para>
<screen>&prompt.root; <userinput>ntpd -p /var/run/ntpd.pid</userinput></screen>
</sect2>
<sect2>
<title>ÔÚÁÙʱÐ﵀ Internet Á¬½ÓÉÏʹÓà ntpd</title>
<para>&man.ntpd.8; ³ÌÐòµÄÕý³£¹¤×÷²¢²»ÐèÒªÓÀ¾ÃÐ﵀ Internet Á¬½Ó¡£
È»¶ø£¬ Èç¹ûÄúµÄÁÙʱÐÔÁ¬½ÓÊÇÅäÖÃΪ°´Ð貦ºÅµÄ£¬
ÄÇô·ÀÖ¹ NTP ͨѶƵ·±´¥·¢²¦ºÅ£¬ »ò±£³ÖÁ¬½Ó¾ÍÓбØÒªÁË¡£
Èç¹ûÄúʹÓÃÓû§¼¶ PPP£¬ ¿ÉÒÔʹÓà <literal>filter</literal>
Óï¾ä£¬ ÔÚ <filename>/etc/ppp/ppp.conf</filename> ÖнøÐбØÒªµÄÉèÖá£
ÀýÈ磺</para>
<programlisting> set filter dial 0 deny udp src eq 123
# Prevent NTP traffic from initiating dial out
set filter dial 1 permit 0 0
set filter alive 0 deny udp src eq 123
# Prevent incoming NTP traffic from keeping the connection open
set filter alive 1 deny udp dst eq 123
# Prevent outgoing NTP traffic from keeping the connection open
set filter alive 2 permit 0/0 0/0</programlisting>
<para>ÒªÁË½â½øÒ»²½µÄÐÅÏ¢£¬ Çë²Î¿¼ &man.ppp.8; µÄ <literal>PACKET
FILTERING</literal>(°ü¹ýÂË) С½Ú£¬ ÒÔ¼°
<filename>/usr/share/examples/ppp/</filename> ÖеÄÀý×Ó¡£</para>
<note>
<para>ijЩ Internet ·ÃÎÊÌṩÉÌ»á×èÖ¹µÍ±àºÅµÄ¶Ë¿Ú£¬
Õâ»áµ¼Ö NTP ÎÞ·¨Õý³£¹¤×÷£¬ ÒòΪÏìÓ¦ÎÞ·¨µ½´ïÄúµÄ»úÆ÷¡£</para>
</note>
</sect2>
<sect2>
<title>½øÒ»²½µÄÐÅÏ¢</title>
<para>¹ØÓÚ NTP ·þÎñÆ÷µÄÎĵµ£¬ ¿ÉÒÔÔÚ
<filename>/usr/share/doc/ntp/</filename> ÕÒµ½ HTML
¸ñʽµÄ°æ±¾¡£</para>
</sect2>
</sect1>
<sect1 id="network-syslogd">
<sect1info>
<authorgroup>
<author>
<firstname>Tom</firstname>
<surname>Rhodes</surname>
<contrib>Contributed by </contrib>
</author>
</authorgroup>
</sect1info>
<title>ʹÓà <command>syslogd</command> ¼Ç¼Զ³ÌÖ÷»úµÄÈÕÖ¾</title>
<para>´¦ÀíϵͳÈÕÖ¾¶ÔÓÚϵͳ°²È«ºÍ¹ÜÀíÊÇÒ»¸öÖØÒª·½Ãæ¡£
µ±Óжą̀·Ö²¼ÔÚÖÐÐÍ»ò´óÐÍÍøÂçµÄ»úÆ÷£¬ÔÙ»òÕßÊÇ´¦ÓÚ¸÷ÖÖ²»Í¬ÀàÐ͵ÄÍøÂçÖУ¬
¼àÊÓËûÃÇÉÏÃæµÄÈÕÖ¾ÎļþÔòÏԵ÷dz£ÄÑÒÔ²Ù×÷£¬ ÔÚÕâÖÖÇé¿öÏ£¬
ÅäÖÃÔ¶³ÌÈÕÖ¾¼Ç¼ÄÜʹÕû¸ö´¦Àí¹ý³Ì±äµÃ¸ü¼ÓÇáËÉ¡£</para>
<para>¼¯ÖмǼÈÕÖ¾µ½Ò»Ì¨Ö¸¶¨µÄ»úÆ÷Äܹ»¼õÇáһЩÈÕÖ¾Îļþ¹ÜÀíµÄ¸ºµ£¡£
ÈÕÖ¾ÎļþµÄÊÕ¼¯£¬ ºÏ²¢ÓëÑ­»·¿ÉÒÔÔÚÒ»´¦ÅäÖã¬
ʹÓà &os; Ô­ÉúµÄ¹¤¾ß£¬ ±ÈÈç &man.syslogd.8; ºÍ &man.newsyslog.8;¡£
ÔÚÒÔϵÄÅäÖÃʾÀýÖУ¬ Ö÷»ú <hostid>A</hostid>£¬ ÃüÃûΪ
<hostid role="fqdn">logserv.example.com</hostid>£¬
½«ÓÃÀ´ÊÕ¼¯±¾µØÍøÂçµÄÈÕÖ¾ÐÅÏ¢¡£ Ö÷»ú <hostid>B</hostid>£¬
ÃüÃûΪ <hostid role="fqdn">logclient.example.com</hostid>
½«°ÑÈÕÖ¾ÐÅÏ¢´«Ë͸ø·þÎñÆ÷¡£ ÔÚÏÖʵÖУ¬
ÕâÁ½¸öÖ÷»ú¶¼ÐèÒªÅäÖÃÕýÈ·µÄÕýÏòºÍ·´ÏòµÄ <acronym>DNS</acronym>
»òÕßÔÚ <filename>/etc/hosts</filename> ÖмǼ¡£
·ñÔò£¬ Êý¾Ý½«±»·þÎñÆ÷¾ÜÊÕ¡£</para>
<sect2>
<title>ÈÕÖ¾·þÎñÆ÷µÄÅäÖÃ</title>
<para>ÈÕÖ¾·þÎñÆ÷ÊÇÅäÖóÉÓÃÀ´½ÓÊÕÔ¶³ÌÖ÷»úÈÕÖ¾ÐÅÏ¢µÄ»úÆ÷¡£
ÔÚ´ó¶àÊýµÄÇé¿öÏÂÕâÊÇΪÁË·½±ãÅäÖ㬠»òÕßÊÇΪÁ˸üºÃµÄ¹ÜÀí¡£
²»ÂÛÊǺÎÔ­Òò£¬ ÔÚ¼ÌÐøÉîÈë֮ǰÐèÒªÌáһЩ±ØÐèÌõ¼þ¡£</para>
<para>Ò»¸öÕýÈ·ÅäÖõÄÈÕÖ¾·þÎñÆ÷±ØÐë·ûºÏÒÔϼ¸¸ö×î»ù±¾µÄÌõ¼þ£º</para>
<itemizedlist>
<listitem>
<para>·þÎñÆ÷ºÍ¿Í»§¶ËµÄ·À»ðǽ¹æÔòÔÊÐí 514 ¶Ë¿ÚÉϵÄ
<acronym>UDP</acronym> ±¨ÎÄͨ¹ý¡£</para>
</listitem>
<listitem>
<para>syslogd ±»ÅäÖóɽÓÊÜ´ÓÔ¶³Ì¿Í»§·¢À´µÄÏûÏ¢¡£</para>
</listitem>
<listitem>
<para>syslogd ·þÎñÆ÷ºÍËùÓеĿͻ§¶Ë¶¼±ØÐëÓÐÅäÓÐÕýÈ·µÄÕýÏòºÍ·´Ïò
<acronym>DNS</acronym>£¬ »òÕßÔÚ
<filename>/etc/hosts</filename> ÖÐÓÐÏàÓ¦ÅäÖá£</para>
</listitem>
</itemizedlist>
<para>ÅäÖÃÈÕÖ¾·þÎñÆ÷£¬ ¿Í»§¶Ë±ØÐëÔÚ
<filename>/etc/syslog.conf</filename> ÖÐÁгö,
²¢Ö¸¶¨ÈÕÖ¾µÄ facility£º</para>
<programlisting>+logclient.example.com
*.* /var/log/logclient.log</programlisting>
<note>
<para>¸ü¶à¹ØÓÚ¸÷ÖÖ±»Ö§³Ö²¢¿ÉÓÃµÄ <emphasis>facility</emphasis>
ÄÜÔÚ &man.syslog.conf.5; ÊÖ²áÒ³ÖÐÕÒµ½¡£</para>
</note>
<para>Ò»µ©¼ÓÈëÒÔºó£¬ ËùÓдËÀà <literal>facility</literal>
ÏûÏ¢¶¼»á±»¼Ç¼µ½ÏÈǰָ¶¨µÄÎļþ
<filename>/var/log/logclient.log</filename>¡£</para>
<para>Ìṩ·þÎñµÄ»úÆ÷»¹ÐèÒªÔÚÆä
<filename>/etc/rc.conf</filename> ÖÐÅäÖãº</para>
<programlisting>syslogd_enable="YES"
syslogd_flags="-a logclient.example.com -vv"</programlisting>
<para>µÚÒ»¸öÑ¡Ïî±íʾÔÚϵͳÆô¶¯Ê±ÆôÓà <command>syslogd</command>
·þÎñ£¬ µÚ¶þ¸öÑ¡Ïî±íʾÔÊÐí·þÎñÆ÷½ÓÊÕÀ´×ÔÖ¸¶¨ÈÕÖ¾Ô´¿Í»§¶ËµÄÊý¾Ý¡£
µÚ¶þÐÐÅäÖÃÖÐ×îºóµÄ²¿·Ö£¬ ʹÓà <option>-vv</option>£¬
±íʾÔö¼ÓÈÕÖ¾ÏûÏ¢µÄÏêϸ³Ì¶È¡£ ÔÚµ÷Õû facility ÅäÖõÄʱºò£¬
Õâ¸öÅäÖ÷dz£ÓÐÓ㬠ÒòΪ¹ÜÀíÔ±Äܹ»¿´µ½ÄÄЩÏûÏ¢½«×÷ΪÄĸö
facility µÄÄÚÈÝÀ´¼Ç¼¡£</para>
<para>¿ÉÒÔͬʱָ¶¨¶à¸ö <option>-a</option> Ñ¡ÏîÀ´ÔÊÐí¶à¸ö¿Í»§»ú¡£
´ËÍ⣬ »¹¿ÉÒÔÖ¸¶¨ <acronym>IP</acronym>
µØÖ·»òÍø¶Î£¬ Çë²ÎÔÄ
&man.syslog.3; Áª»úÊÖ²áÒÔÁ˽â¿ÉÓÃÅäÖõÄÍêÕûÁÐ±í¡£</para>
<para>×îºó£¬ ÈÕÖ¾ÎļþÓ¦¸Ã±»´´½¨¡£ ²»ÂÛÄãÓúÎÖÖ·½·¨´´½¨£¬
±ÈÈç &man.touch.1; ÄܺܺõÄÍê³É´ËÀàÈÎÎñ£º</para>
<screen>&prompt.root; <userinput>touch <filename>/var/log/logclient.log</filename></userinput></screen>
<para>´Ëʱ£¬ Ó¦¸ÃÖØÆô²¢È·ÈÏһϠ<command>syslogd</command>
ÊØ»¤½ø³Ì£º</para>
<screen>&prompt.root; <userinput>/etc/rc.d/syslogd restart</userinput>
&prompt.root; <userinput>pgrep syslog</userinput></screen>
<para>Èç¹û·µ»ØÁËÒ»¸ö <acronym>PIC</acronym> µÄ»°£¬
·þÎñ¶ËÓ¦¸Ã±»³É¹¦ÖØÆôÁË, ²¢¼ÌÐø¿ªÊ¼ÅäÖÿͻ§¶Ë¡£
Èç¹û·þÎñ¶ËûÓÐÖØÆôµÄ»°£¬ ÇëÔÚ
<filename>/var/log/messages</filename>
ÈÕÖ¾ÖвéÔÄÏà¹ØÊä³ö¡£</para>
</sect2>
<sect2>
<title>ÈÕÖ¾¿Í»§¶ËÅäÖÃ</title>
<para>ÈÕÖ¾¿Í»§¶ËÊÇһ̨·¢ËÍÈÕÖ¾ÐÅÏ¢µ½ÈÕÖ¾·þÎñÆ÷µÄ»úÆ÷£¬
²¢ÔÚ±¾µØ±£´æ¿½±´¡£</para>
<para>ÓëÈÕÖ¾·þÎñÆ÷ÀàËÆ£¬ ¿Í»§¶ËÒ²ÐèÒªÂú×ãһЩ×î»ù±¾µÄÌõ¼þ£º</para>
<itemizedlist>
<listitem>
<para>&man.syslogd.8;
±ØÐë±»ÅäÖóɷ¢ËÍÖ¸¶¨ÀàÐ͵ÄÏûÏ¢µ½ÄܽÓÊÕËûÃǵÄÈÕÖ¾·þÎñÆ÷¡£</para>
</listitem>
<listitem>
<para>·À»ðǽ±ØÐëÔÊÐí 514 ¶Ë¿ÚÉ쵀 <acronym>UDP</acronym> °üͨ¹ý£»</para>
</listitem>
<listitem>
<para>±ØÐëÅäÖÃÕýÏòÓë·´Ïò <acronym>DNS</acronym>£¬
»òÕßÔÚ <filename>/etc/hosts</filename> ÖÐÓÐÕýÈ·µÄ¼Ç¼¡£</para>
</listitem>
</itemizedlist>
<para>Ïà±È·þÎñÆ÷À´ËµÅäÖÿͻ§¶Ë¸üÇáËÉһЩ¡£
¿Í»§¶ËµÄ»úÆ÷ÔÚ <filename>/etc/rc.conf</filename>
ÖÐ×öÈçϵÄÉèÖãº</para>
<programlisting>syslogd_enable="YES"
syslogd_flags="-s -vv"</programlisting>
<para>ºÍÇ°ÃæÀàËÆ£¬ ÕâЩѡÏî»áÔÚϵͳÆô¶¯¹ý³ÌÖÐÆôÓÃ
<command>syslogd</command> ·þÎñ£¬ ²¢Ôö¼ÓÈÕÖ¾ÏûÏ¢µÄÏêϸ³Ì¶È¡£
¶ø <option>-s</option>
Ñ¡ÏîÔò±íʾ½ûÖ¹·þÎñ½ÓÊÕÀ´×ÔÆäËûÖ÷»úµÄÈÕÖ¾¡£</para>
<para>Facility ÊÇÃèÊöij¸öÏûÏ¢ÓÉϵͳµÄÄIJ¿·ÖÉú³ÉµÄ¡£ ¾ÙÀýÀ´Ëµ£¬
<acronym>ftp</acronym> ºÍ <acronym>ipfw</acronym> ¶¼ÊÇ facility¡£
µ±ÕâÁ½Ïî·þÎñÉú³ÉÈÕÖ¾ÏûϢʱ£¬ ËüÃÇͨ³£ÔÚÈÕÖ¾ÏûÏ¢Öаüº¬ÁËÕâÁ½ÖÖ¹¤¾ß¡£
Facility ͨ³£´øÓÐÒ»¸öÓÅÏȼ¶»òµÈ¼¶£¬
¾ÍÊÇÓÃÀ´±ê¼ÇÒ»¸öÈÕÖ¾ÏûÏ¢µÄÖØÒª³Ì¶È¡£ ×îÆÕͨµÄΪ
<literal>warning</literal> ºÍ <literal>info</literal>¡£
Çë²ÎÔÄ &man.syslog.3; ÊÖ²áÒ³ÒÔ»ñµÃÒ»¸öÍêÕû¿ÉÓõÄ
facility ÓëÓÅÏȼ¶ÁÐ±í¡£</para>
<para>ÈÕÖ¾·þÎñÆ÷±ØÐëÔÚ¿Í»§¶ËµÄ <filename>/etc/syslog.conf</filename>
ÖÐÖ¸Ã÷¡£ ÔÚ´ËÀýÖУ¬ <literal>@</literal>
·ûºÅ±»ÓÃÀ´±íʾ·¢ËÍÈÕÖ¾Êý¾Ýµ½Ô¶³ÌµÄ·þÎñÆ÷£¬
¿´ÉÏÈ¥²î²»¶àÈçÏÂÕâÑù£º</para>
<programlisting>*.* @logserv.example.com</programlisting>
<para>Ìí¼Óºó£¬ ±ØÐëÖØÆô <command>syslogd</command>
ʹµÃÉÏÊöÐÞ¸ÄÉúЧ£º</para>
<screen>&prompt.root; <userinput>/etc/rc.d/syslogd restart</userinput></screen>
<para>²âÊÔÈÕÖ¾ÏûÏ¢ÊÇ·ñÄÜͨ¹ýÍøÂç·¢ËÍ£¬
ÔÚ×¼±¸·¢³öÏûÏ¢µÄ¿Í»§»úÉÏÓà &man.logger.1; À´Ïò
<command>syslogd</command> ·¢³öÐÅÏ¢£º</para>
- <screen>&prompt.root; <userinput>logger "Test message from logclient"</userinput></screen>
+ <screen>&prompt.root; <userinput>logger "<replaceable>Test message from logclient</replaceable>"</userinput></screen>
<para>Õâ¶ÎÏûÏ¢ÏÖÔÚÓ¦¸Ãͬʱ³öÏÖÔÚ¿Í»§»úµÄ
<filename>/var/log/messages</filename> ÒÔ¼°ÈÕÖ¾·þÎñÆ÷µÄ
<filename>/var/log/logclient.log</filename> ÖС£</para>
</sect2>
<sect2>
<title>µ÷ÊÔÈÕÖ¾·þÎñÆ÷</title>
<para>ÔÚijЩÇé¿öÏ£¬ Èç¹ûÈÕÖ¾·þÎñÆ÷ûÓÐÊÕµ½ÏûÏ¢µÄ»°¾ÍÐèÒªµ÷ÊÔÒ»·¬ÁË¡£
Óм¸¸ö¿ÉÄܵÄÔ­Òò£¬ ×î³£¼ûµÄÁ½¸öÊÇÍøÂçÁ¬½ÓµÄÎÊÌâºÍ
<acronym>DNS</acronym> µÄÎÊÌâ¡£ ΪÁ˲âÊÔÕâЩÎÊÌ⣬
ÇëÈ·ÈÏÁ½±ßµÄ»úÆ÷¶¼ÄÜʹÓà <filename>/etc/rc.conf</filename>
ÖÐËùÉ趨µÄÖ÷»úÃû·ÃÎʵ½¶Ô·½¡£ Èç¹ûÕâ¸öÄÜÕý³£¹¤×÷µÄ»°£¬
ÄÇô¾ÍÐèÒª¶Ô <filename>/etc/rc.conf</filename>
ÖÐµÄ <literal>syslogd_flags</literal> Ñ¡Ïî×öЩÐÞ¸ÄÁË¡£</para>
<para>ÔÚÒÔϵÄʾÀýÖУ¬
<filename>/var/log/logclient.log</filename> Êǿյģ¬
<filename>/var/log/message</filename> ÖÐҲûÓбíÃ÷ÈκÎʧ°ÜµÄÔ­Òò¡£
ΪÁËÔö¼Óµ÷ÊÔµÄÊä³ö£¬ ÐÞ¸Ä <literal>ayalogd_flags</literal>
Ñ¡ÏîÖÁÀàËÆÓÚÈçϵÄʾÀý£¬ ²¢ÖØÆô·þÎñ£º</para>
<programlisting>syslogd_flags="-d -a logclien.example.com -vv"</programlisting>
<screen>&prompt.root; <userinput>/etc/rc.d/syslogd restart</userinput></screen>
<para>ÔÚÖØÆô·þÎñÖ®ºó£¬ ÆÁÄ»ÉϽ«Á¢¿ÌÉÁÏÖÀàËÆÕâÑùµÄµ÷ÊÔÊý¾Ý£º</para>
<screen>logmsg: pri 56, flags 4, from logserv.example.com, msg syslogd: restart
syslogd: restarted
logmsg: pri 6, flags 4, from logserv.example.com, msg syslogd: kernel boot file is /boot/kernel/kernel
Logging to FILE /var/log/messages
syslogd: kernel boot file is /boot/kernel/kernel
cvthname(192.168.1.10)
validate: dgram from IP 192.168.1.10, port 514, name logclient.example.com;
rejected in rule 0 due to name mismatch.</screen>
<para>ºÜÃ÷ÏÔ£¬ÏûÏ¢ÊÇÓÉÓÚÖ÷»úÃû²»Æ¥Åä¶ø±»¾ÜÊյġ£
ÔÚÒ»µãÒ»µãµÄ¼ì²éÁËÅäÖÃÎļþÖ®ºó£¬ ·¢ÏÖÁË
<filename>/etc/rc.conf</filename> ÖÐÈçÏÂÕâÐÐÓÐÊäÈë´íÎó£º</para>
<programlisting>syslogd_flags="-d -a logclien.example.com -vv"</programlisting>
<para>ÕâÐÐÓ¦¸Ã°üº­ÓÐ <literal>logclient</literal>£¬ ¶ø²»ÊÇ
<literal>logclien</literal>¡£
ÔÚ×öÁËÕýÈ·µÄÐ޸IJ¢ÖØÆôÖ®ºó±ãÄܼûµ½Ô¤ÆÚµÄЧ¹ûÁË£º</para>
<screen>&prompt.root; <userinput>/etc/rc.d/syslogd restart</userinput>
logmsg: pri 56, flags 4, from logserv.example.com, msg syslogd: restart
syslogd: restarted
logmsg: pri 6, flags 4, from logserv.example.com, msg syslogd: kernel boot file is /boot/kernel/kernel
syslogd: kernel boot file is /boot/kernel/kernel
logmsg: pri 166, flags 17, from logserv.example.com,
msg Dec 10 20:55:02 &lt;syslog.err&gt; logserv.example.com syslogd: exiting on signal 2
cvthname(192.168.1.10)
validate: dgram from IP 192.168.1.10, port 514, name logclient.example.com;
accepted in rule 0.
logmsg: pri 15, flags 0, from logclient.example.com, msg Dec 11 02:01:28 trhodes: Test message 2
Logging to FILE /var/log/logclient.log
Logging to FILE /var/log/messages</screen>
<para>´Ë¿Ì£¬ ÏûÏ¢Äܹ»±»ÕýÈ·½ÓÊÕ²¢±£´æÈëÎļþÁË¡£</para>
</sect2>
<sect2>
<title>°²È«ÐÔ·½ÃæµÄ˼¿¼</title>
<para>¾ÍÏñÆäËûµÄÍøÂç·þÎñÒ»Ñù£¬ ÔÚʵÏÖÅäÖÃ֮ǰÐèÒª¿¼Âǰ²È«ÐÔ¡£
ÓÐʱÈÕÖ¾ÎļþÒ²°üº¬ÁËÃô¸ÐÐÅÏ¢£¬ ±ÈÈç±¾µØÖ÷»úÉÏËùÆôÓõķþÎñ£¬
Óû§ÕʺźÍÅäÖÃÊý¾Ý¡£ ´Ó¿Í»§¶Ë·¢³öµÄÊý¾Ý¾­¹ýÍøÂçµ½´ï·þÎñÆ÷£¬
ÕâÆÚ¼ä¼ÈûÓмÓÃÜҲûÓÐÃÜÂë±£»¤¡£ Èç¹ûÓмÓÃÜÐèÒªµÄ»°£¬
¿ÉÒÔʹÓà <filename role="package">security/stunnel</filename>£¬
Ëü½«ÔÚÒ»¸ö¼ÓÃܵÄËíµÀÖд«ÊäÊý¾Ý¡£</para>
<para>±¾µØ°²È«Ò²Í¬ÑùÊǸöÎÊÌâ¡£ ÈÕÖ¾ÎļþÔÚʹÓÃÖлòÑ­»·×ªºó¶¼Ã»Óб»¼ÓÃÜ¡£
±¾µØÓû§¿ÉÄܶÁÈ¡ÕâЩÎļþÒÔ»ñµÃ¶Ôϵͳ¸üÉîÈëµÄÁ˽⡣
¶ÔÓÚÕâÀàÇé¿ö£¬ ¸øÕâЩÎļþÉèÖÃÕýÈ·µÄȨÏÞÊǷdz£ÓбØÒªµÄ¡£
&man.newsyslog.8; ¹¤¾ßÖ§³Ö¸øÐ´´½¨ºÍÑ­»·µÄÈÕÖ¾ÉèÖÃȨÏÞ¡£
°ÑÈÕÖ¾ÎļþµÄȨÏÞÉèÖÃΪ <literal>600</literal>
ÄÜ×èÖ¹±¾µØÓû§²»±ØÒªµÄ¿ú̽¡£</para>
</sect2>
</sect1>
</chapter>
<!--
Local Variables:
mode: sgml
sgml-declaration: "../chapter.decl"
sgml-indent-data: t
sgml-omittag: nil
sgml-always-quote-attributes: t
sgml-parent-document: ("../book.sgml" "part" "chapter")
End:
-->
<!-- LocalWords: config mnt www -->

File Metadata

Mime Type
text/x-diff
Expires
Sun, Aug 9, 12:27 PM (3 h, 21 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29371292
Default Alt Text
(369 KB)

Event Timeline