aboutsummaryrefslogtreecommitdiff
path: root/zh_CN.GB2312/books/handbook/cutting-edge
diff options
context:
space:
mode:
authorXin LI <delphij@FreeBSD.org>2006-03-15 19:38:56 +0000
committerXin LI <delphij@FreeBSD.org>2006-03-15 19:38:56 +0000
commitb99e83b0a7c48690c2e6b7699bbd549e9a2c8da1 (patch)
tree61578f2c24f19d8d92ac0907829272ba8ae92e3e /zh_CN.GB2312/books/handbook/cutting-edge
parentf266a6a31f7f22bbb73de28eccf694ca3317afaa (diff)
Notes
Diffstat (limited to 'zh_CN.GB2312/books/handbook/cutting-edge')
-rw-r--r--zh_CN.GB2312/books/handbook/cutting-edge/chapter.sgml92
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;&nbsp;4.X 中的 <filename>/etc/defaults/make.conf</filename>) 复制
<makevar>CFLAGS</makevar> 和
- <makevar>NOPROFILE</makevar> 这样的设置到
+ <makevar>NO_PROFILE</makevar> (或者, 在
+ &os;&nbsp;5.X 和更早版本上, 是 <makevar>NOPROFILE</makevar>) 这样的设置到
<filename>/etc/make.conf</filename> 中并令它们生效。</para>
<para>请考虑其他的一些选项 (例如 <makevar>COPTFLAGS</makevar>、
@@ -788,13 +791,13 @@ Script done, &hellip;</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, &hellip;</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, &hellip;</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&nbsp;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, &hellip;</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, &hellip;</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, &hellip;</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, &hellip;</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}' &gt; /var/tmp/dev.out</userinput></screen>
</step>
<step>
@@ -1401,7 +1394,10 @@ Script done, &hellip;</screen>
<screen><emphasis>&hellip; 问题修复 &hellip;</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;&nbsp;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>,