aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChin-San Huang <chinsan@FreeBSD.org>2007-12-01 18:27:02 +0000
committerChin-San Huang <chinsan@FreeBSD.org>2007-12-01 18:27:02 +0000
commitc345c79dd77a009cce3662bc9fa3de1ecd383ba1 (patch)
treea59d6a26b77e6ff23017976430417efef21f444d
parent0a2b508ca5fe01a798c5ab82d3afeb08ed5ee3bf (diff)
Notes
-rw-r--r--zh_TW.Big5/books/handbook/cutting-edge/chapter.sgml702
1 files changed, 313 insertions, 389 deletions
diff --git a/zh_TW.Big5/books/handbook/cutting-edge/chapter.sgml b/zh_TW.Big5/books/handbook/cutting-edge/chapter.sgml
index 7f42ad2f6c..87e3909e76 100644
--- a/zh_TW.Big5/books/handbook/cutting-edge/chapter.sgml
+++ b/zh_TW.Big5/books/handbook/cutting-edge/chapter.sgml
@@ -44,7 +44,8 @@
<para>&os; 是個持續發展的作業系統。對於喜歡追求新鮮、刺激的使用者而言,
有很多方法可以使您的系統輕鬆更新為最新版。
- 注意:並非每個人都適合這麼做! 本章主要是協助您決定到底要跟開發版本,或是要使用較穩定的釋出版。
+ 注意:並非每個人都適合這麼做! 本章主要是協助您決定到底要跟開發版本,
+ 或是要使用較穩定的釋出版。
</para>
<para>讀完這章,您將了解︰</para>
@@ -58,8 +59,8 @@
<application>CVS</application> 或
<application>CTM</application> 來更新你的系統</para>
</listitem>
- <listitem><para>如何以 <command>make buildworld</command> 等指令來重新編譯、安裝整個
- base system。</para>
+ <listitem><para>如何以 <command>make buildworld</command>
+ 等指令來重新編譯、安裝整個 base system。</para>
</listitem>
</itemizedlist>
@@ -67,9 +68,11 @@
<para>在開始閱讀這章之前,您需要︰</para>
<itemizedlist>
- <listitem><para>先設好你的網路(<xref linkend="advanced-networking">)。</para>
+ <listitem><para>先設好你的網路(<xref linkend="advanced-networking">)。
+ </para>
</listitem>
- <listitem><para>知道如何透過 port/package 安裝軟體(<xref linkend="ports">)。</para></listitem>
+ <listitem><para>知道如何透過 port/package 安裝軟體(<xref
+ linkend="ports">)。</para></listitem>
</itemizedlist>
</sect1>
@@ -83,101 +86,89 @@
首先,先介紹 &os.current;,接著再介紹 &os.stable;。</para>
<sect2 id="current">
- <title>Staying Current with &os;</title>
+ <title>使用最新的 &os; CURRENT</title>
- <para>As you read this, keep in mind that &os.current; is the
- <quote>bleeding edge</quote> of &os; development.
- &os.current; users are expected to have a high degree of
- technical skill, and should be capable of solving difficult
- system problems on their own. If you are new to &os;, think
- twice before installing it. </para>
+ <para>這裡再次強調,&os.current; 是 &os; 開發的 <quote>最前線</quote>。
+ &os.current; 使用者須有較強的技術能力,
+ 而且應該要有能力自己解決困難的系統問題。 若您是 &os; 新手,
+ 那麼請在安裝前最好先三思。</para>
<sect3>
<title>什麼是 &os.current;?</title>
<indexterm><primary>snapshot</primary></indexterm>
- <para>&os.current; 是 &os; 的最新版。它包含: work in progress, experimental changes, and
- transitional mechanisms that might or might not be present
- in the next official release of the software. While many
- &os; developers compile the &os.current; source code daily,
- there are periods of time when the sources are not
- buildable. These problems are resolved as expeditiously as
- possible, but whether or not &os.current; brings disaster or
- greatly desired functionality can be a matter of which exact
- moment you grabbed the source code in!</para>
+ <para>&os.current; 是 &os; 的最新版。它包含:
+ 仍在研發階段、實驗性質的修改、過渡時期的機制,
+ 這些東西在下一次正式 relase 的版本可能會有,也可能不會有的。
+ 儘管有許多 &os; 開發者每天都會編譯 &os.current; source code,
+ 但有時這些原始碼是無法編譯成功。 雖然,這些問題通常會儘快解決,
+ 但 &os.current; 到底是帶來浩劫或是多了想要用的新功能、改善,
+ 這點主要取決於您更新原始碼的時機為何而定!</para>
</sect3>
<sect3>
- <title>Who Needs &os.current;?</title>
+ <title>誰需要 &os.current;?</title>
- <para>&os.current; is made available for 3 primary
- interest groups:</para>
+ <para>&os.current; 適合下列這三類人:</para>
<orderedlist>
<listitem>
- <para>Members of the &os; community who are actively working
- on some part of the source tree and for whom keeping
- <quote>current</quote> is an absolute
- requirement.</para>
+ <para>&os; 社群成員:積極專注於 source tree 的某一部份,
+ 以及認為保持為 <quote>current(最新狀態)</quote>
+ 為絕對需求的人。</para>
</listitem>
<listitem>
- <para>Members of the &os; community who are active testers,
- willing to spend time solving problems in order to
- ensure that &os.current; remains as sane as possible.
- These are also people who wish to make topical
- suggestions on changes and the general direction of
- &os;, and submit patches to implement them.</para>
+ <para>&os; 社群成員:為了確保 &os.current;
+ 能夠儘可能地維持在最穩定的狀態,
+ 而主動花時間解決問題的測試者。 此外,還有對 &os;
+ 能提出具體建議以及改善方向,並提出 patch 修正檔的人。</para>
</listitem>
<listitem>
- <para>Those who merely wish to keep an eye on things, or
- to use the current sources for reference purposes
- (e.g. for <emphasis>reading</emphasis>, not running).
- These people also make the occasional comment or
- contribute code.</para>
+ <para>只是關心或者想參考(比如,只是<emphasis>閱讀</emphasis>,
+ 而非執行)的人。
+ 這些人有時也會做些註解,或貢獻原始碼。</para>
</listitem>
</orderedlist>
</sect3>
<sect3>
- <title>What Is &os.current; <emphasis>Not</emphasis>?</title>
+ <title>&os.current; <emphasis>並不是</emphasis> 什麼?</title>
<orderedlist>
<listitem>
- <para>A fast-track to getting pre-release bits because you
- heard there is some cool new feature in there and you
- want to be the first on your block to have it. Being
- the first on the block to get the new feature means that
- you are the first on the block to get the new
- bugs.</para>
+ <para>追求最新功能。 聽說裡面有些很酷的新功能,
+ 並希望成為您周圍的人中第一個嘗試的人,
+ 因此將 &os.current; 視為取得搶鮮版的捷徑。
+ 儘管,您能夠因此首先瞭解到最新的功能,
+ 但這也意味著若出現新的 bug 時,您也是首當其衝。</para>
</listitem>
<listitem>
- <para>A quick way of getting bug fixes. Any given version
- of &os.current; is just as likely to introduce new bugs
- as to fix existing ones.</para>
+ <para>修復 bug 的速成法。 因為 &os.current;
+ 的任何版本在修復已知 bug 的同時,又可能會產生新的 bug。
+ </para>
</listitem>
<listitem>
- <para>In any way <quote>officially supported</quote>. We
- do our best to help people genuinely in one of the 3
- <quote>legitimate</quote> &os.current; groups, but we
- simply <emphasis>do not have the time</emphasis> to
- provide tech support. This is not because we are mean
- and nasty people who do not like helping people out (we
- would not even be doing &os; if we were). We simply
- cannot answer hundreds messages a day
- <emphasis>and</emphasis> work on FreeBSD! Given the
- choice between improving &os; and answering lots of
- questions on experimental code, the developers opt for
- the former.</para>
+ <para>無所不在的 <quote>officially supported</quote>。
+ 我們會盡力協助上述 &os.current; 的那三種類別的
+ <quote>legitimate</quote> 使用者,
+ 但我們<emphasis>沒時間</emphasis>為他們提供技術支援。
+ 這不代表我們很惡劣,或是不想幫助人(若是的話,
+ 我們也不會為 &os; 努力了)
+ ,實在是因為我們分身乏術,無法每天回答數百個問題,
+ <emphasis>而同時</emphasis>繼續開發 &os;。
+ 可以確定的一點就是,
+ 在改善 &os; 或是回答大量有關實驗碼的問題之間,
+ 若要做個選擇的話,開發者會選擇前者。</para>
</listitem>
</orderedlist>
</sect3>
<sect3>
- <title>Using &os.current;</title>
+ <title>使用 &os.current;</title>
<indexterm>
<primary>-CURRENT</primary>
@@ -185,29 +176,24 @@
</indexterm>
<orderedlist>
<listitem>
- <para>Join the &a.current.name; and the &a.cvsall.name; lists. This is not
- just a good idea, it is <emphasis>essential</emphasis>. If
- you are not on the <emphasis>&a.current.name;</emphasis> list,
- you will not see the comments that people are
- making about the current state of the system and thus will
- probably end up stumbling over a lot of problems that others
- have already found and solved. Even more importantly, you
- will miss out on important bulletins which may be critical
- to your system's continued health.</para>
-
- <para>The &a.cvsall.name; list will allow you to see the
- commit log entry for each change as it is made along with
- any pertinent information on possible side-effects.</para>
-
- <para>To join these lists, or one of the others available
- go to &a.mailman.lists.link; and click on the list that
- you wish to subscribe to. Instructions on the rest of
- the procedure are available there.</para>
+ <para>加入 &a.current.name; 及 &a.cvsall.name; 論壇。
+ 這不單只是個建議,也是 <emphasis>必須</emphasis> 作的。
+ 若您沒訂閱 <emphasis>&a.current.name;</emphasis>
+ ,那麼就會錯過別人對目前系統狀態的說明,而枯耗在別人已解的問題。
+ 更重要的是,可能會錯失一些對己身所管系統安危相當重要的公告。
+ </para>
+
+ <para>在 &a.cvsall.name; 上則可以看到每個 commit 紀錄,
+ 因為這些記錄會連帶影響其他相關資訊。</para>
+
+ <para>要訂閱這些論壇或其他論壇,請參考 &a.mailman.lists.link;
+ 並點選想訂閱的部分即可。 至於其他後續步驟如何進行,
+ 在那裡會有說明。</para>
</listitem>
<listitem>
- <para>Grab the sources from a &os; <link linkend="mirrors">mirror
- site</link>. You can do this in one of two ways:</para>
+ <para>從 &os; <link linkend="mirrors">mirror 站</link>
+ 取得原始碼。 有兩種方式可以達成:</para>
<orderedlist>
<indexterm>
@@ -222,17 +208,19 @@
</indexterm>
<listitem>
- <para>Use the <link linkend="cvsup">cvsup</link> program
- with the <filename>supfile</filename> named <filename>standard-supfile</filename>
- available from <filename>/usr/share/examples/cvsup</filename>.
- This is the most recommended
- method, since it allows you to grab the entire
- collection once and then only what has changed from then
- on. Many people run <command>cvsup</command> from
- <command>cron</command> and keep their
- sources up-to-date automatically. You have to
- customize the sample <filename>supfile</filename> above, and configure
- <link linkend="cvsup">cvsup</link> for your environment.</para>
+ <para>以 <link linkend="cvsup">csup</link> 或
+ <link linkend="cvsup">cvsup</link> 程式搭配位於
+ <filename>/usr/share/examples/cvsup</filename> 檔名為
+ <filename>standard-supfile</filename> 的
+ <filename>supfile</filename>。
+ 這是大家最常推薦的方式,因為它可以讓您把整個 tree 都抓回來,
+ 之後就只取有更新的部分即可。
+ 此外,許多人會把 <command>csup</command> 或
+ <command>cvsup</command> 放到
+ <command>cron</command> 以定期自動更新。
+ 您須要自訂前述的 <filename>supfile</filename> 範例檔,
+ 並針對自身網路環境以調整 <link linkend="cvsup">csup</link>
+ 或 <link linkend="cvsup">cvsup</link> 相關設定。</para>
</listitem>
<indexterm>
@@ -240,115 +228,99 @@
<secondary>Syncing with CTM</secondary>
</indexterm>
<listitem>
- <para>Use the <application><link
- linkend="ctm">CTM</link></application> facility. If you
- have very bad connectivity (high price connections or
- only email access) <application>CTM</application> is an option.
- However, it is a lot of hassle and can give you broken files.
- This leads to it being rarely used, which again increases
- the chance of it not working for fairly long periods of
- time. We recommend using
+ <para>使用 <application><link
+ linkend="ctm">CTM</link></application> 工具。 若網路環境不佳
+ (上網費用貴,或只能用 email 而已)
+ <application>CTM</application> 會比較適合您的需求。
+ 然而,這也有一些爭議並且常抓到一些有問題的檔案。 因此,
+ 很少人會用它。 這也註定了不能長期依賴這個更新方式。
+ 若是使用 9600&nbsp;bps modem 或頻寬更大的上網者,建議使用
<application><link linkend="cvsup">CVSup</link></application>
- for anybody with a 9600&nbsp;bps modem or faster connection.
- </para>
+ 。</para>
</listitem>
</orderedlist>
</listitem>
<listitem>
- <para>If you are grabbing the sources to run, and not just
- look at, then grab <emphasis>all</emphasis> of &os.current;, not
- just selected portions. The reason for this is that various
- parts of the source depend on updates elsewhere, and trying
- to compile just a subset is almost guaranteed to get you
- into trouble.</para>
+ <para>若抓 source code 是要用來跑的,而不僅只是看看而已,
+ 那麼就抓 <emphasis>整個</emphasis> &os.current;,而不要只抓部分。
+ 因為大部分的 source code 都會相依到其他 source code 環節部分,
+ 若是您只編譯其中一部份,保證會很麻煩。</para>
<indexterm>
<primary>-CURRENT</primary>
<secondary>compiling</secondary>
</indexterm>
- <para>Before compiling &os.current;, read the
- <filename>Makefile</filename> in <filename>/usr/src</filename>
- carefully. You should at least <link
- linkend="makeworld">install a new kernel and rebuild the world</link> the first time through
- as part of the upgrading process. Reading the &a.current;
- and <filename>/usr/src/UPDATING</filename> will keep you up-to-date on other bootstrapping procedures
- that sometimes become necessary as we move toward the next
- release.</para>
+ <para>在編譯 &os.current; 之前,請仔細閱讀
+ <filename>/usr/src</filename> 內的 <filename>Makefile</filename>。
+ 儘管只是升級部分東西而已,您至少也要先 <link linkend="makeworld">
+ 裝新的 kernel 以及重新編譯 world</link>。 此外,多多閱讀
+ &a.current; 以及 <filename>/usr/src/UPDATING</filename>
+ 也是必須的,
+ 才能知道目前進度是怎樣以及下一版會有什麼新東西。</para>
</listitem>
<listitem>
- <para>Be active! If you are running &os.current;, we want
- to know what you have to say about it, especially if you
- have suggestions for enhancements or bug fixes. Suggestions
- with accompanying code are received most
- enthusiastically!</para>
+ <para>熱血!若您正在跑 &os.current;,
+ 我們很想知道您對於它的想法是什麼,尤其是加強哪些功能,
+ 或該修正哪些錯誤的建議。 如果您在建議時能附上相關程式碼的話,
+ 那真是太棒了!</para>
</listitem>
</orderedlist>
</sect3>
</sect2>
<sect2 id="stable">
- <title>Staying Stable with &os;</title>
+ <title>使用最新的 &os; STABLE</title>
<sect3>
- <title>What Is &os.stable;?</title>
+ <title>什麼是 &os.stable;?</title>
<indexterm><primary>-STABLE</primary></indexterm>
- <para>&os.stable; is our development branch from which major releases
- are made. Changes go into this branch at a different pace, and
- with the general assumption that they have first gone into
- &os.current; for testing. This is <emphasis>still</emphasis>
- a development branch, however, and this means that at any given time,
- the sources for &os.stable; may or may not be suitable for any
- particular purpose. It is simply another engineering development
- track, not a resource for end-users.</para>
+ <para>&os.stable; 是我們的開發分支,主要的發行版就由此而來。
+ 這個分支會以不同速度作修改變化,並且假設這些是第一次進入 &os.current;
+ 進行測試。 然而,這 <emphasis>仍然</emphasis> 屬於開發中的分支,
+ 也就是說在某些時候,&os.stable; 可能會、也可能不會符合一些特殊需求。
+ 它只不過是另一個開發分支而已,可能不太適合一般使用者。</para>
</sect3>
<sect3>
- <title>Who Needs &os.stable;?</title>
-
- <para>If you are interested in tracking or contributing to the
- FreeBSD development process, especially as it relates to the
- next <quote>point</quote> release of FreeBSD, then you should
- consider following &os.stable;.</para>
-
- <para>While it is true that security fixes also go into the
- &os.stable; branch, you do not <emphasis>need</emphasis> to
- track &os.stable; to do this. Every security advisory for
- FreeBSD explains how to fix the problem for the releases it
- affects
- <footnote><para>That is not quite true. We can not continue to
- support old releases of FreeBSD forever, although we do
- support them for many years. For a complete description
- of the current security policy for old releases of
- FreeBSD, please see <ulink
- url="&url.base;/security/">http://www.FreeBSD.org/security/</ulink>.</para>
+ <title>誰需要 &os.stable;?</title>
+
+ <para>若您有興趣去追蹤、貢獻 FreeBSD 開發過程或作些貢獻,
+ 尤其是會跟 FreeBSD 接下來的 <quote>關鍵性</quote> 發行有關,
+ 應該考慮採用 &os.stable;。</para>
+
+ <para>雖然安全漏洞的修補也會進入 &os.stable; 分支,
+ 但不必僅僅因此而 <emphasis>需要</emphasis> 去用 &os.stable;。
+ FreeBSD 每項 security advisory(安全公告)
+ 都會解說如何去修復有受到影響的版本
+ <footnote><para>然而,這也不一定是正確,我們不可能永遠支援 FreeBSD
+ 昔日的各種發行版本,儘管每個發行版發佈之後,都仍會持續支援數年之久。
+ 若欲瞭解 FreeBSD 目前對於舊版的支援政策細節,請參閱 <ulink
+ url="&url.base;/security/">http://www.FreeBSD.org/security/</ulink>
+ 。</para>
</footnote>
- , and tracking an entire development branch just
- for security reasons is likely to bring in a lot of unwanted
- changes as well.</para>
-
- <para>Although we endeavor to ensure that the &os.stable; branch
- compiles and runs at all times, this cannot be guaranteed. In
- addition, while code is developed in &os.current; before including
- it in &os.stable;, more people run &os.stable; than &os.current;, so
- it is inevitable that bugs and corner cases will sometimes be found
- in &os.stable; that were not apparent in &os.current;.</para>
-
- <para>For these reasons, we do <emphasis>not</emphasis> recommend that
- you blindly track &os.stable;, and it is particularly important that
- you do not update any production servers to &os.stable; without
- first thoroughly testing the code in your development
- environment.</para>
-
- <para>If you do not have the resources to do this then we recommend
- that you run the most recent release of FreeBSD, and use the binary
- update mechanism to move from release to release.</para>
+ ,若僅因為安全因素而去採用開發分支,雖然會解決現有已知問題,
+ 但也可能帶來一些潛藏的問題。</para>
+
+ <para>儘管我們盡力確保 &os.stable; 分支在任何時候均能正確編譯、運作,
+ 但沒人能夠擔保它隨時都可以符合上述目的。 此外,雖然原始碼在進入
+ &os.stable; 之前,都會先在 &os.current; 開發完畢,但使用 &os.current;
+ 的人畢竟遠比 &os.stable; 使用者來的少,所以通常有些問題,可能在
+ &os.current; 比較沒人注意到,隨著 &os.stable;
+ 使用者的廣泛使用才會浮現。</para>
+
+ <para>由於上述這些理由,我們<emphasis>並不推薦</emphasis> 盲目追隨
+ &os.stable;,而且更重要的是,別在原始碼尚未經完整測試之前,
+ 就衝動把 production server 轉移到 &os.stable; 環境。</para>
+
+ <para>若您沒有這些多的時間、精神的話,那推薦您使用最新的 FreeBSD
+ 發行版即可,並採用其所提供的 binary 更新機制來完成升級轉移。</para>
</sect3>
<sect3>
- <title>Using &os.stable;</title>
+ <title>使用 &os.stable;</title>
<indexterm>
<primary>-STABLE</primary>
@@ -356,40 +328,30 @@
</indexterm>
<orderedlist>
<listitem>
- <para>Join the &a.stable.name; list. This will keep you informed of
- build-dependencies that may appear in &os.stable;
- or any other issues requiring
- special attention. Developers will also make announcements
- in this mailing list when they are contemplating some
- controversial fix or update, giving the users a chance to
- respond if they have any issues to raise concerning the
- proposed change.</para>
-
- <para>The &a.cvsall.name; list will allow you to see the
- commit log entry for each change as it is made along with
- any pertinent information on possible side-effects.</para>
-
- <para>To join these lists, or one of the others available
- go to &a.mailman.lists.link; and click on the list that
- you wish to subscribe to. Instructions on the rest of
- the procedure are available there.</para>
+ <para>訂閱 &a.stable.name; list。 可以讓您隨時瞭解 &os.stable;
+ 的軟體編譯時的相依關係,以及其他需特別注意的問題。
+ 開發者在考慮一些有爭議的修正或更新時,就會先在這裡發信說明,
+ 給使用者有機會可以反應,
+ 看他們對所提的更改是否有什麼建議或問題。</para>
+
+ <para>而 &a.cvsall.name; list 這邊可以看到每個 commit log,
+ 其中包括了許多中肯的資訊,例如一些可能發生的邊際效應等等。</para>
+
+ <para>想要加入這些通信論壇的話,只要到 &a.mailman.lists.link;
+ 點下想訂閱的 list 即可。 其餘的步驟在網頁上會有說明。</para>
</listitem>
<listitem>
- <para>If you are going to install a new system and want it
- to run monthly snapshot built from &os.stable;, please
- check the <ulink url="&url.base;/snapshots/">
- Snapshots</ulink> web page for more information.
- Alternatively, it is possible to
- install the most recent &os.stable; release from the
- <link linkend="mirrors">mirror sites</link> and follow
- the instructions below to upgrade your system to the
- most up to date &os.stable; source code.</para>
-
- <para>If you are already running a previous release of &os;
- and wish to upgrade via sources then you can easily do so
- from &os; <link linkend="mirrors">mirror site</link>. This can
- be done in one of two ways:</para>
+ <para>若打算要安裝一個全新的系統,並且希望裝 &os.stable;
+ 每月定期的 snapshot,那麼請參閱 <ulink
+ url="&url.base;/snapshots/">Snapshots</ulink> 網頁以瞭解相關細節。
+ 此外,也可從 <link linkend="mirrors">mirror 站</link>
+ 來安裝最新的 &os.stable; 發行版,並透過下列的的說明來更新到最新的
+ &os.stable; 原始碼。</para>
+
+ <para>若已裝的是 &os; 以前的版本,而想透過原始碼方式來升級,
+ 那麼也是可以利用 &os; <link linkend="mirrors">mirror 站</link>
+ 來完成。 以下介紹兩種方式:</para>
<orderedlist>
<indexterm>
@@ -403,19 +365,19 @@
<secondary>syncing with <application>CVSup</application></secondary>
</indexterm>
<listitem>
- <para>Use the <link linkend="cvsup">cvsup</link> program
- with the <filename>supfile</filename> named <filename>stable-supfile</filename>
- from the directory
- <filename>/usr/share/examples/cvsup</filename>.
- This is the most recommended
- method, since it allows you to grab the entire
- collection once and then only what has changed from then
- on. Many people run <command>cvsup</command> from
- <command>cron</command> to keep their
- sources up-to-date automatically. You have to
- customize the sample <filename>supfile</filename> above,
- and configure <link linkend="cvsup">cvsup</link> for your
- environment.</para>
+ <para>以 <link linkend="cvsup">csup</link> 或
+ <link linkend="cvsup">cvsup</link> 程式搭配位於
+ <filename>/usr/share/examples/cvsup</filename> 檔名為
+ <filename>stable-supfile</filename> 的
+ <filename>supfile</filename>。 這是大家最常推薦的方式,
+ 因為它可以讓你把整個 tree 都抓回來,
+ 之後就只取有更新的部分即可。
+ 此外,許多人會把 <command>csup</command> 或
+ <command>cvsup</command> 放到 <command>cron</command>
+ 以定期自動更新。 您須要自訂前述的
+ <filename>supfile</filename> 範例檔,並針對自身網路環境以調整
+ <link linkend="cvsup">csup</link> 或
+ <link linkend="cvsup">cvsup</link> 相關設定。</para>
</listitem>
<indexterm>
@@ -423,21 +385,18 @@
<secondary>syncing with CTM</secondary>
</indexterm>
<listitem>
- <para>Use the <application><link
- linkend="ctm">CTM</link></application> facility. If
- you do not have a fast and inexpensive connection to
- the Internet, this is the method you should consider
- using.
- </para>
+ <para>使用 <application><link
+ linkend="ctm">CTM</link></application> 更新工具。
+ 若網路不快或網路費用貴,那麼可以考慮採用。</para>
</listitem>
</orderedlist>
</listitem>
<listitem>
- <para>Essentially, if you need rapid on-demand access to the
- source and communications bandwidth is not a consideration,
- use <command>cvsup</command> or <command>ftp</command>.
- Otherwise, use <application>CTM</application>.</para>
+ <para>一般而言,若常需存取最新原始碼,而不計較網路頻寬的話,
+ 可以使用 <command>csup</command> 或 <command>cvsup</command>
+ 或 <command>ftp</command>。 否則,就考慮
+ <application>CTM</application>。</para>
</listitem>
<indexterm>
@@ -445,14 +404,13 @@
<secondary>compiling</secondary>
</indexterm>
<listitem>
- <para>Before compiling &os.stable;, read the
- <filename>Makefile</filename> in <filename>/usr/src</filename>
- carefully. You should at least <link
- linkend="makeworld">install a new kernel and rebuild the world</link> the first time through
- as part of the upgrading process. Reading the &a.stable; and <filename>/usr/src/UPDATING</filename> will
- keep you up-to-date on other bootstrapping procedures that
- sometimes become necessary as we move toward the next
- release.</para>
+ <para>在編譯 &os.stable; 之前,請先仔細閱讀
+ <filename>/usr/src</filename> 內的 <filename>Makefile</filename>
+ 檔。 儘管只是升級部分東西而已,您至少也要先 <link
+ linkend="makeworld">裝新的 kernel 以及重新編譯 world</link>。
+ 此外,多多閱讀 &a.stable; 以及
+ <filename>/usr/src/UPDATING</filename> 也是必備的,
+ 這樣才能知道目前進度是怎樣,以及下一版會有哪些新東西。</para>
</listitem>
</orderedlist>
</sect3>
@@ -462,22 +420,19 @@
<sect1 id="synching">
<title>更新你的 Source</title>
- <para>There are various ways of using an Internet (or email)
- connection to stay up-to-date with any given area of the &os;
- project sources, or all areas, depending on what interests you. The
- primary services we offer are <link linkend="anoncvs">Anonymous
- CVS</link>, <link linkend="cvsup">CVSup</link>, and <link
- linkend="ctm">CTM</link>.</para>
+ <para>&os; 計劃原始碼有許多透過網路(或 email)的方式來更新,
+ 無論是更新那一塊領域,這些全由您自行決定。 我們主要提供的是 <link
+ linkend="anoncvs">Anonymous CVS</link>、<link linkend="cvsup">CVSup</link>
+ 、<link linkend="ctm">CTM</link>。</para>
<warning>
- <para>While it is possible to update only parts of your source tree,
- the only supported update procedure is to update the entire tree
- and recompile both userland (i.e., all the programs that run in
- user space, such as those in <filename>/bin</filename> and
- <filename>/sbin</filename>) and kernel sources. Updating only part
- of your source tree, only the kernel, or only userland will often
- result in problems. These problems may range from compile errors
- to kernel panics or data corruption.</para>
+ <para>雖然可以只更新部分原始碼,但唯一支援的更新流程是更新整個 tree,
+ 並且重編 userland(比如:由使用者去執行的所有程式,像是
+ <filename>/bin</filename>、<filename>/sbin</filename> 內的程式)以及
+ kernel 原始碼。
+ 若只更新部分的 source tree、或只有 kernel 部分、或只有 userland
+ 部分,通常會造成一些錯誤,像是:編譯錯誤、kernel panic、資料毀損等
+ 。</para>
</warning>
<indexterm>
@@ -485,125 +440,104 @@
<secondary>anonymous</secondary>
</indexterm>
- <para><application>Anonymous CVS</application> and
- <application>CVSup</application> use the <emphasis>pull</emphasis>
- model of updating sources. In the case of
- <application>CVSup</application> the user (or a
- <command>cron</command> script) invokes
- the <command>cvsup</command> program, and it interacts with a
- <command>cvsupd</command> server somewhere to bring your files
- up-to-date. The updates you receive are up-to-the-minute and you
- get them when, and only when, you want them. You can easily
- restrict your updates to the specific files or directories that are
- of interest to you. Updates are generated on the fly by the server,
- according to what you have and what you want to have.
- <application>Anonymous CVS</application> is quite a bit more
- simplistic than <application>CVSup</application> in that it is just an extension to
- <application>CVS</application> which allows it to pull changes
- directly from a remote CVS repository.
- <application>CVSup</application> can do this far more efficiently,
- but <application>Anonymous CVS</application> is easier to
- use.</para>
+ <para><application>Anonymous CVS</application> 及
+ <application>CVSup</application> 均是採 <emphasis>pull</emphasis>
+ 模式來更新原始碼。 以 <application>CVSup</application> 為例,
+ 使用者(或 <command>cron</command> script)會執行 <command>cvsup</command>
+ 程式,後者會與某一台 <command>cvsupd</command> 伺服器作些互動,
+ 以更新相關原始碼檔案。 您所收到更新會是當時最新的,
+ 而且只會收到需更新的部分。 此外,也可以很輕鬆去設定要更新的範圍。
+ 更新會由伺服器跟本機比對之後,丟出當時您所需要的更新檔案給你。
+ <application>Anonymous CVS</application> 的概念相對於
+ <application>CVSup</application> 來得更簡單些,因為它只是
+ <application>CVS</application> 的延伸而已,一樣讓你可從遠端的
+ CVS repository 取出最新原始碼。 然而 <application>CVSup</application>
+ 在這方面會更有效率,不過 <application>Anonymous CVS</application>
+ 對新手而言,是用起來比較簡單。</para>
<indexterm>
<primary><application>CTM</application></primary>
</indexterm>
- <para><application>CTM</application>, on the other hand, does not
- interactively compare the sources you have with those on the master
- archive or otherwise pull them across. Instead, a script which
- identifies changes in files since its previous run is executed
- several times a day on the master CTM machine, any detected changes
- being compressed, stamped with a sequence-number and encoded for
- transmission over email (in printable ASCII only). Once received,
- these <quote>CTM deltas</quote> can then be handed to the
- &man.ctm.rmail.1; utility which will automatically decode, verify
- and apply the changes to the user's copy of the sources. This
- process is far more efficient than <application>CVSup</application>,
- and places less strain on our server resources since it is a
- <emphasis>push</emphasis> rather than a <emphasis>pull</emphasis>
- model.</para>
-
- <para>There are other trade-offs, of course. If you inadvertently
- wipe out portions of your archive, <application>CVSup</application>
- will detect and rebuild the damaged portions for you.
- <application>CTM</application> will not do this, and if you wipe some
- portion of your source tree out (and do not have it backed up) then
- you will have to start from scratch (from the most recent CVS
- <quote>base delta</quote>) and rebuild it all with <application>CTM</application> or, with
- <application>Anonymous CVS</application>, simply delete the bad bits and resync.</para>
+ <para>另一種方式則是 <application>CTM</application>。
+ 它並不是以交談式介面來比對您所擁有的 sources 和伺服器上的 sources
+ 或是您取得的更新部份。 相反的,會有一個 script
+ 檔專門用來辨識變更過的檔案,這個程式是由 CTM 伺服器來執行,
+ 每天會比對數次,並把兩次執行期間內變更過的檔案加以壓縮,
+ 並給它們一個序號,然後就加以編碼(只用 printable ASCII 字元),
+ 並以 email 的方式寄出。 當您收到它的時候,這些 <quote>CTM deltas</quote>
+ 就可以由 &man.ctm.rmail.1; 程式來處理,該程式會自動解碼、確認、
+ 套用這些變更。 這程序比 <application>CVSup</application> 來說是快得多了,
+ 而且,這個模式對我們的伺服器來說是比較輕鬆的,因為這是一個
+ <emphasis>push</emphasis> 的模式,而非 <emphasis>pull</emphasis>
+ 的模式。</para>
+
+ <para>當然,這樣做也會帶來一些不便。 若不小心把您部份的程式清除掉了,
+ <application>CVSup</application> 會偵測出來,並自動為您把不足的部份補齊。
+ <application>CTM</application> 並不會為您做這些動作。
+ 若清掉了您的部份 source (而且沒備份),您可以從頭開始(從最新的 CVS
+ <quote>base delta</quote>)並用 <application>CTM</application> 來重建它們
+ ,或是用 <application>Anonymous CVS</application> 來完成,
+ 只要把不正確的地方砍掉,再重新做同步的動作即可。</para>
</sect1>
<sect1 id="makeworld">
- <title>Rebuilding <quote>world</quote></title>
+ <title>重新編譯 <quote>world</quote></title>
<indexterm>
<primary>Rebuilding <quote>world</quote></primary>
</indexterm>
- <para>Once you have synchronized your local source tree against a
- particular version of &os; (&os.stable;, &os.current;, and so on)
- you can then use the source
- tree to rebuild the system.</para>
+ <para>在更新 &os; 的 source tree 到最新之後(無論是 &os.stable;、
+ &os.current; 等等),接下來就可以用這些 source tree 來重新編譯系統
+ 。</para>
<warning>
- <title>Make a Backup</title>
-
- <para>It cannot be stressed enough how important it is to make a
- backup of your system <emphasis>before</emphasis> you do this.
- While rebuilding the world is (as long as you follow these
- instructions) an easy task to do, there will inevitably be times
- when you make mistakes, or when mistakes made by others in the
- source tree render your system unbootable.</para>
-
- <para>Make sure you have taken a backup. And have a fixit floppy or
- bootable CD at
- hand. You will probably never have to use it, but it is better to be
- safe than sorry!</para>
+ <title>做好備份</title>
+
+ <para>在作任何大動作 <emphasis>之前</emphasis>
+ 要記得先把系統作備份的重要性無須強調。 儘管重新編譯 world 是
+ (只要有照文件指示去作的話)一件很簡單的事情,但出錯也是在所難免的。
+ 另外,別人在 source tree 不慎搞混的錯誤,也可能會造成系統無法開機
+ 。</para>
+
+ <para>請確認自己已作妥相關備份,並且手邊有 fixit 磁片或開機光碟。
+ 您可能永遠也用不到這些東西,
+ 但安全第一總比事後說抱歉來得好吧!</para>
</warning>
<warning>
- <title>Subscribe to the Right Mailing List</title>
+ <title>訂閱相關的 Mailing List</title>
<indexterm><primary>mailing list</primary></indexterm>
- <para>The &os.stable; and &os.current; branches are, by their
- nature, <emphasis>in development</emphasis>. People that
- contribute to &os; are human, and mistakes occasionally
- happen.</para>
-
- <para>Sometimes these mistakes can be quite harmless, just causing
- your system to print a new diagnostic warning. Or the change may
- be catastrophic, and render your system unbootable or destroy your
- file systems (or worse).</para>
-
- <para>If problems like these occur, a <quote>heads up</quote> is
- posted to the appropriate mailing list, explaining the nature of
- the problem and which systems it affects. And an <quote>all
- clear</quote> announcement is posted when the problem has been
- solved.</para>
-
- <para>If you try to track &os.stable; or &os.current; and do
- not read the &a.stable; or the
- &a.current; respectively, then you are
- asking for trouble.</para>
+ <para>&os.stable; 以及 &os.current; 分支,本質上就是屬於 <emphasis>
+ 開發階段</emphasis>。 為 &os; 作貢獻的也都是人,偶爾也會犯錯誤。</para>
+
+ <para>有時候這些錯誤並無大礙,只是會讓系統產生新的錯誤警告而已。
+ 有時則是災難,可能會導致不能開機或檔案系統的毀損(或更糟)。</para>
+
+ <para>若遇到類似問題,貼封標題為 <quote>heads up(注意)</quote>
+ 開頭的信到相關的 mailing list,並講清楚問題點以及會影響哪些系統。
+ 在問題獲解決後,再貼標題為 <quote>all clear(已解決)</quote>
+ 開頭的聲明信。</para>
+
+ <para>若用的是 &os.stable; 或 &os.current;,卻又不閱讀 &a.stable; 或
+ &a.current; 的討論,那麼會是自找麻煩而已。</para>
</warning>
<warning>
- <title>Do not use <command>make world</command></title>
-
- <para>A lot of older documentation recommends using
- <command>make world</command> for this. Doing that skips
- some important steps and should only be used if you are
- sure of what you are doing. For almost all circumstances
- <command>make world</command> is the wrong thing to do, and
- the procedure described here should be used instead.</para>
+ <title>不要用 <command>make world</command></title>
+
+ <para>一堆早期的舊文件都會建議說使用 <command>make world</command>。
+ 這樣做會跳過一些重要步驟,建議只有在你知道自己在作什麼,再這麼做。
+ 在絕大多數的情況下,請不要亂用 <command>make world</command>,
+ 而該改用下面介紹的方式。</para>
</warning>
<sect2>
- <title>The Canonical Way to Update Your System</title>
+ <title>更新系統的標準方式</title>
- <para>To update your system, you should check
- <filename>/usr/src/UPDATING</filename> for any pre-buildworld steps
- necessary for your version of the sources and then use the following
- procedure:</para>
+ <para>要升級系統前,一定要先查閱 <filename>/usr/src/UPDATING</filename>
+ 文件,以瞭解 buildworld 之前需要作哪些事情或注意事項,
+ 然後才用下列步驟:</para>
<screen>&prompt.root; <userinput>make buildworld</userinput>
&prompt.root; <userinput>make buildkernel</userinput>
@@ -611,18 +545,16 @@
&prompt.root; <userinput>reboot</userinput></screen>
<note>
- <para>There are a few rare cases when an extra run of
- <command>mergemaster -p</command> is needed before the
- <maketarget>buildworld</maketarget> step. These are
- described in <filename>UPDATING</filename>. In general,
- though, you can safely omit this step if you are not
- updating across one or more major &os; versions.</para>
+ <para>在少數狀況,可能需要先在 <maketarget>buildworld</maketarget>
+ 步驟之前先作 <command>mergemaster -p</command> 才能完成。
+ 至於何時需要或不需要,請參閱 <filename>UPDATING</filename> 內的說明。
+ 一般來說,只要不是進行跨版號(major)的 &os; 版本升級,
+ 就可略過這步驟。</para>
</note>
- <para>After <maketarget>installkernel</maketarget> finishes
- successfully, you should boot in single user mode
- (i.e.&nbsp;using <command>boot -s</command> from the loader
- prompt). Then run:</para>
+ <para>完成 <maketarget>installkernel</maketarget> 之後,需要重開機並切到
+ single user 模式(舉例:也可以在 loader 提示符號後面加上
+ <command>boot -s</command>)。 接下來執行:</para>
<screen>&prompt.root; <userinput>mergemaster -p</userinput>
&prompt.root; <userinput>make installworld</userinput>
@@ -632,63 +564,55 @@
<warning>
<title>Read Further Explanations</title>
- <para>The sequence described above is only a short resume to
- help you getting started. You should however read the
- following sections to clearly understand each step, especially
- if you want to use a custom kernel configuration.</para>
+ <para>上述步驟只是協助您升級的簡單說明而已,若要清楚瞭解每一步驟,
+ 尤其是若欲自行打造 kernel 設定,就更該閱讀下面的內容。</para>
</warning>
</sect2>
<sect2>
- <title>Read <filename>/usr/src/UPDATING</filename></title>
+ <title>閱讀 <filename>/usr/src/UPDATING</filename></title>
- <para>Before you do anything else, read
- <filename>/usr/src/UPDATING</filename> (or the equivalent file
- wherever you have a copy of the source code). This file should
- contain important information about problems you might encounter, or
- specify the order in which you might have to run certain commands.
- If <filename>UPDATING</filename> contradicts something you read here,
- <filename>UPDATING</filename> takes precedence.</para>
+ <para>在作任何事情之前,請務必先閱讀
+ <filename>/usr/src/UPDATING</filename> (或在 source code 內類似的文件)
+ 。 這份文件會寫到可能遭遇的問題,或指定那些會執行的指令順序為何。
+ 如果你機器現在的 <filename>UPDATING</filename>
+ 文件與這邊的描述有衝突、矛盾之處,那麼請以機器上的
+ <filename>UPDATING</filename> 為準。</para>
<important>
- <para>Reading <filename>UPDATING</filename> is not an acceptable
- substitute for subscribing to the correct mailing list, as described
- previously. The two requirements are complementary, not
- exclusive.</para>
+ <para>然而,如同先前所述,單單只靠閱讀 <filename>UPDATING</filename>
+ 並不能完全取代 mailing list。 這兩者都是互補的,而不相排斥。</para>
</important>
</sect2>
<sect2>
- <title>Check <filename>/etc/make.conf</filename></title>
+ <title>檢查 <filename>/etc/make.conf</filename></title>
<indexterm>
<primary><filename>make.conf</filename></primary>
</indexterm>
- <para>Examine the files
+ <para>檢查
<filename>/usr/share/examples/etc/make.conf</filename>
- and
- <filename>/etc/make.conf</filename>. The first contains some
- default defines &ndash; most of which are commented out. To
- make use of them when you rebuild your system from source, add
- them to <filename>/etc/make.conf</filename>. Keep in mind that
- anything you add to <filename>/etc/make.conf</filename> is also
- used every time you run <command>make</command>, so it is a good
- idea to set them to something sensible for your system.</para>
-
- <para>A typical user will probably want to copy the
- <makevar>CFLAGS</makevar> and
- <makevar>NO_PROFILE</makevar> lines found in
- <filename>/usr/share/examples/etc/make.conf</filename>
- to
- <filename>/etc/make.conf</filename> and uncomment them.</para>
-
- <para>Examine the other definitions (<makevar>COPTFLAGS</makevar>,
- <makevar>NOPORTDOCS</makevar> and so
- on) and decide if they are relevant to you.</para>
+ 以及
+ <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>
- <title>Update the Files in <filename>/etc</filename></title>
+ <title>更新 <filename>/etc</filename> 內的設定檔</title>
<para>The <filename>/etc</filename> directory contains a large part
of your system's configuration information, as well as scripts