diff options
author | Xin LI <delphij@FreeBSD.org> | 2006-03-15 19:38:56 +0000 |
---|---|---|
committer | Xin LI <delphij@FreeBSD.org> | 2006-03-15 19:38:56 +0000 |
commit | b99e83b0a7c48690c2e6b7699bbd549e9a2c8da1 (patch) | |
tree | 61578f2c24f19d8d92ac0907829272ba8ae92e3e /zh_CN.GB2312/books/handbook/cutting-edge | |
parent | f266a6a31f7f22bbb73de28eccf694ca3317afaa (diff) |
Notes
Diffstat (limited to 'zh_CN.GB2312/books/handbook/cutting-edge')
-rw-r--r-- | zh_CN.GB2312/books/handbook/cutting-edge/chapter.sgml | 92 |
1 files changed, 44 insertions, 48 deletions
diff --git a/zh_CN.GB2312/books/handbook/cutting-edge/chapter.sgml b/zh_CN.GB2312/books/handbook/cutting-edge/chapter.sgml index e367dd337e..b9a1e6f6b9 100644 --- a/zh_CN.GB2312/books/handbook/cutting-edge/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/cutting-edge/chapter.sgml @@ -2,7 +2,7 @@ The FreeBSD Documentation Project The FreeBSD Simplified Chinese Project - Original Revision: 1.217 + Original Revision: 1.222 $FreeBSD$ --> @@ -342,15 +342,16 @@ </listitem> <listitem> - <para>如果安装一个新的系统又想它尽可能稳定的话,您可以仅仅从 <ulink - url="ftp://snapshots.jp.FreeBSD.org/pub/FreeBSD/snapshots/"></ulink> - 获取最新的分支快照并象其它发行版一样安装它。或者您可以从<link - linkend="mirrors">镜像站点</link>安装最新的 &os.stable; 发行版, - 并按照下边的说明升级您的系统到最新的 &os.stable; 源码。</para> + <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> + <para>如果您已经在运行较早的 &os; 版本, 并希望通过源代码方式升级, + 则可以通过 &os; <link linkend="mirrors">镜像站点</link> 来完成。 + 这可以通过两种方式来进行:</para> <orderedlist> <indexterm> @@ -364,7 +365,7 @@ <secondary>使用<application>CVSup</application>同步</secondary> </indexterm> <listitem> - <para>与称作 <filename>standard-supfile</filename> 的 + <para>与称作 <filename>stable-supfile</filename> 的 <filename>supfile</filename> 一起使用 <link linkend="cvsup">cvsup</link>,这个可以从 <filename>/usr/share/examples/cvsup</filename> 得到。 @@ -522,8 +523,9 @@ 讲清问题的本质以及受影响的系统。在问题解决后,再贴封<quote>解除(all clear)</quote>声明。</para> - <para>如可您想跟踪 &os.stable; 或 &os.current; - 而又不阅读 &a.stable; 和 &a.current; 各自的邮件列表,那么您是自找麻烦。</para> + <para>如果使用 &os.stable; 或 &os.current; + 而又不阅读 &a.stable; 和 &a.current; 各自的邮件列表, + 那么您是自找麻烦。</para> </warning> <warning> @@ -611,7 +613,8 @@ <para>一般的用户通常会从 <filename>/usr/share/examples/etc/make.conf</filename> (或者 &os; 4.X 中的 <filename>/etc/defaults/make.conf</filename>) 复制 <makevar>CFLAGS</makevar> 和 - <makevar>NOPROFILE</makevar> 这样的设置到 + <makevar>NO_PROFILE</makevar> (或者, 在 + &os; 5.X 和更早版本上, 是 <makevar>NOPROFILE</makevar>) 这样的设置到 <filename>/etc/make.conf</filename> 中并令它们生效。</para> <para>请考虑其他的一些选项 (例如 <makevar>COPTFLAGS</makevar>、 @@ -788,13 +791,13 @@ Script done, …</screen> <filename>/etc/make.conf</filename> 设置的变量一样, 只是提供了另一种设置它们的方法。</para> - <screen>&prompt.root; <userinput>make -DNOPROFILE <replaceable>target</replaceable></userinput></screen> + <screen>&prompt.root; <userinput>make -DNO_PROFILE <replaceable>target</replaceable></userinput></screen> <para>是另一种指定不被建立 (built) 的先定库 (profiled libraries) 的方式,协同 <filename>/etc/make.conf</filename> 里的</para> - <programlisting>NOPROFILE= true # 避免编译先定库</programlisting> + <programlisting>NO_PROFILE= true # 避免编译性能分析库</programlisting> <para>一起使用。</para> @@ -854,25 +857,29 @@ Script done, …</screen> <screen>&prompt.root; <userinput>make buildworld</userinput></screen> - <para>现在可能给 <command>make</command> 指定 - <option>-j</option> 选项了,这样会使用产生出几个并发的进程来。 - 这在多处理器 (multi-CPU) 机器里最有用。但是, - 由于大部分的编译过程是 IO 限制远胜 CPU 限制,它在单处理器 - (single-CPU) 的机器里也是有用的。</para> + <para>目前, 我们提供了一个试验性的功能, 可以在构建过程中为 + <command>make</command> 指定 <option>-j</option> 参数, + 令其在构建过程中同时启动多个并发的进程。 对于多 CPU 的机器而言, + 这样做有助于发挥其性能。 不过, 由于编译过程中的瓶颈主要是在 IO + 而不是 CPU 上, 因此它也会对单 CPU 的机器带来好处。</para> - <para>在一般的单 CPU 机器里,您要运行:</para> + <para>对典型的单 CPU 机器, 可以使用:</para> <screen>&prompt.root; <userinput>make -j4 buildworld</userinput></screen> - <para>&man.make.1; 然后会有至多 4 个进程在同一时刻执行。 - 贴到邮件列表里的实验证据显示这样会收到最好的效果。</para> + <para>这样, &man.make.1; 会最多同时启动 4 个进程。 + 从发到邮件列表中的经验看, 这样做能带来最佳的性能。</para> + + <para>如果您使用的机器有多颗 CPU, 并且配置了 SMP 的内核, + 也可以试试看 6 到 10 的数值, 并观察是否能带来构建性能上的改善。</para> - <para>如果您有一台多 CPU 机器,那您就使用 SMP - 配置内核,试试 6 到 10 之间的值,看这些值提速如何。</para> + <warning> + <para>目前为止这仍然是试验性的功能, 提交到源代码树上的变更, + 也随时可能导致这一功能不可用。 如果您使用这个参数时发现无法构建 + world, 在报告问题之前, 应首先试试看去掉这个参数是否能修正问题。</para> - <para>注意,这仍处在实验性阶段,如果提交到源码树上的话, - 可能会断送其前程 (break this feature)。 - 如果用这个参数编译的话,您报告错误前试试不用它。</para> + <para>当您通过源代码升级系统时, 使用这一选项可能引致无法预测的后果。</para> + </warning> </sect3> <sect3> @@ -920,11 +927,6 @@ Script done, …</screen> <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> - - <para>在 FreeBSD 4.2 或更早的版本里,您必须使用 - <literal>KERNEL=</literal> 替换 <literal>KERNCONF=</literal>。在 - 2001 年 2 月 2 号以前发行的 4.2-STABLE 并不识别 - <literal>KERNCONF=</literal>。</para> </note> <para>注意,如果您已把 <literal>内核安全级别(kern.securelevel)</literal> @@ -934,11 +936,6 @@ Script done, …</screen> 如果您没有设置它, 则应该也能毫无问题地在多用户模式执行这两个命令。 请参考 &man.init.8; 以了解更多关于 <literal>内核安全级(kern.securelevel)</literal> 的信息;查看 &man.chflags.1; 了解更多关于不同文件标识的信息。</para> - <para>如果您升级到 &os; 4.0 以前版本,您应旧的内核 build - 程序。但还是推荐您使用新版的 &man.config.8;, - 可以使用下边的命令行:</para> - - <screen>&prompt.root; <userinput>/usr/obj/usr/src/usr.sbin/config/config <replaceable>KERNELNAME</replaceable></userinput></screen> </sect2> <sect2> @@ -970,11 +967,11 @@ Script done, …</screen> <para>举例,您执行了:</para> - <screen>&prompt.root; <userinput>make -DNOPROFILE buildworld</userinput></screen> + <screen>&prompt.root; <userinput>make -DNO_PROFILE buildworld</userinput></screen> <para>您就必须使用:</para> - <screen>&prompt.root; <userinput>make -DNOPROFILE installworld</userinput></screen> + <screen>&prompt.root; <userinput>make -DNO_PROFILE installworld</userinput></screen> <para>来安装结果,否则就要试着安装先定 (profiled) 的在 <command>make buildworld</command> 阶段没有建立 (built) @@ -1012,10 +1009,6 @@ Script done, …</screen> 源码树里边的配置文件的不同点。 这是保持系统配置文件同源码树里的一起更新的推荐方式。</para> - <para><command>mergemaster</command> 被集成到了 3.3-RELEASE 和 - 3.4-RELEASE 之间的 FreeBSD 基本系统里,这意味着自 3.3 - 版本起所有的 -STABLE 和 -CURRENT 系统都有。</para> - <para>在提示符里简单地输入 <command>mergemaster</command> 就可以开始,并观看它的开始过程。<command>mergemaster</command> 会建立一个临时的根(root)环境,在 <filename>/</filename> 下, @@ -1231,7 +1224,7 @@ Script done, …</screen> 不必包括日戳 (time stamps)。最简单的方式是使用 &man.awk.1; 提取信息:</para> <screen>&prompt.root; <userinput>cd /dev</userinput> -&prompt.root; <userinput>ls -l | awk '{print $1, $2, $3, $4, $5, $6, $NF}' > /var/tmp/dev.out</userinput></screen> +&prompt.root; <userinput>ls -l | awk '{print $1, $2, $3, $4, $5, $6, $NF}' > /var/tmp/dev.out</userinput></screen> </step> <step> @@ -1401,7 +1394,10 @@ Script done, …</screen> <screen><emphasis>… 问题修复 …</emphasis> &prompt.root; <userinput>cd /usr/src</userinput> -&prompt.root; <userinput>make -DNOCLEAN all</userinput></screen> +&prompt.root; <userinput>make -DNO_CLEAN all</userinput></screen> + + <note><para>在 &os; 5.X 和更早版本中, 应使用 + <makevar>-DNOCLEAN</makevar> 代替。</para></note> <para>这样就不会取消先前的 <command>make buildworld</command> 所做的工作。</para> @@ -1443,7 +1439,7 @@ Building everything.. <listitem> <para>关掉 profiling (在 <filename>/etc/make.conf</filename> - 里设置 <quote>NOPROFILE=true</quote>)。您差不多用不了它。</para> + 里设置 <quote>NO_PROFILE=true</quote>)。您差不多用不了它。</para> </listitem> <listitem> @@ -1557,7 +1553,7 @@ Building everything.. <para>首先,确定一批机器,运行的二进制代码是同一套---我们称作 <emphasis>建造套件(build set)</emphasis>。每台机器可以有定制内核, 但他们运行的是相同的用户区二进制文件(userland binaries)。 - 从这个集起,选择一台机器做为 <emphasis>建造机器(build machine)</emphasis>。 + 从这批机器中选择一台机器做为 <emphasis>建造机器(build machine)</emphasis>。 这将是用于建造(build)系统和内核的机器。想像一下,它应该是一台快速的机器, 有足够的空余的 CPU 来执行<command>make buildworld</command>。 您也想要选一台机器做为 <emphasis>测试机器(test machine)</emphasis>, |