diff options
author | Chin-San Huang <chinsan@FreeBSD.org> | 2007-12-01 18:27:02 +0000 |
---|---|---|
committer | Chin-San Huang <chinsan@FreeBSD.org> | 2007-12-01 18:27:02 +0000 |
commit | c345c79dd77a009cce3662bc9fa3de1ecd383ba1 (patch) | |
tree | a59d6a26b77e6ff23017976430417efef21f444d | |
parent | 0a2b508ca5fe01a798c5ab82d3afeb08ed5ee3bf (diff) |
Notes
-rw-r--r-- | zh_TW.Big5/books/handbook/cutting-edge/chapter.sgml | 702 |
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 bps modem 或頻寬更大的上網者,建議使用 <application><link linkend="cvsup">CVSup</link></application> - for anybody with a 9600 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. 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 – 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>。 第一份文件乃是一些系統預設值 + – 不過,大部分都被註解起來。 為了在重新編譯時能夠使用這些, + 請把這些設定加到 <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 |