FreeBSD 使用手冊
前一頁 | 章 23. 更新、升級 FreeBSD | 下一頁

# 23.2. FreeBSD-CURRENT vs. FreeBSD-STABLE

FreeBSD 有兩個發展分支：FreeBSD-CURRENT 及 FreeBSD-STABLE。本節將會陸續介紹，並介紹它們分別又是如何更新。 首先，先介紹 FreeBSD-CURRENT，接著再介紹 FreeBSD-STABLE。

## 23.2.1. 使用最新的 FreeBSD CURRENT

這裡再次強調，FreeBSD-CURRENT 是 FreeBSD 開發的 “最前線”。 FreeBSD-CURRENT 使用者須有較強的技術能力， 而且應該要有能力自己解決困難的系統問題。 若您是 FreeBSD 新手， 那麼請在安裝前最好先三思。

### 23.2.1.1. 什麼是 FreeBSD-CURRENT？

FreeBSD-CURRENT 是 FreeBSD 的最新版。它包含： 仍在研發階段、實驗性質的修改、過渡時期的機制， 這些東西在下一次正式 relase 的版本可能會有，也可能不會有的。 儘管有許多 FreeBSD 開發者每天都會編譯 FreeBSD-CURRENT source code， 但有時這些原始碼是無法編譯成功。 雖然，這些問題通常會儘快解決， 但 FreeBSD-CURRENT 到底是帶來浩劫或是多了想要用的新功能、改善， 這點主要取決於您更新原始碼的時機為何而定！

### 23.2.1.2. 誰需要 FreeBSD-CURRENT？

FreeBSD-CURRENT 適合下列這三類人：

1. FreeBSD 社群成員：積極專注於 source tree 的某一部份， 以及認為保持為 “current(最新狀態)” 為絕對需求的人。

2. FreeBSD 社群成員：為了確保 FreeBSD-CURRENT 能夠儘可能地維持在最穩定的狀態， 而主動花時間解決問題的測試者。 此外，還有對 FreeBSD 能提出具體建議以及改善方向，並提出 patch 修正檔的人。

3. 只是關心或者想參考(比如，只是閱讀， 而非執行)的人。 這些人有時也會做些註解，或貢獻原始碼。

### 23.2.1.3. FreeBSD-CURRENT 並不是 什麼？

1. 追求最新功能。 聽說裡面有些很酷的新功能， 並希望成為您周圍的人中第一個嘗試的人， 因此將 FreeBSD-CURRENT 視為取得搶鮮版的捷徑。 儘管，您能夠因此首先瞭解到最新的功能， 但這也意味著若出現新的 bug 時，您也是首當其衝。

2. 修復 bug 的速成法。 因為 FreeBSD-CURRENT 的任何版本在修復已知 bug 的同時，又可能會產生新的 bug。

3. 無所不在的 “officially supported”。 我們會盡力協助上述 FreeBSD-CURRENT 的那三種類別的 “legitimate” 使用者， 但我們沒時間為他們提供技術支援。 這不代表我們很惡劣，或是不想幫助人(若是的話， 我們也不會為 FreeBSD 努力了) ，實在是因為我們分身乏術，無法每天回答數百個問題， 而同時繼續開發 FreeBSD。 可以確定的一點就是， 在改善 FreeBSD 或是回答大量有關實驗碼的問題之間， 若要做個選擇的話，開發者會選擇前者。

### 23.2.1.4. 使用 FreeBSD-CURRENT

1. 加入 freebsd-current 及 cvs-all 論壇。 這不單只是個建議，也是 必須 作的。 若您沒訂閱 freebsd-current ，那麼就會錯過別人對目前系統狀態的說明，而枯耗在別人已解的問題。 更重要的是，可能會錯失一些對己身所管系統安危相當重要的公告。

   在 cvs-all 上則可以看到每個 commit 紀錄， 因為這些記錄會連帶影響其他相關資訊。

   要訂閱這些論壇或其他論壇，請參考 http://lists.FreeBSD.org/mailman/listinfo 並點選想訂閱的部分即可。 至於其他後續步驟如何進行， 在那裡會有說明。

2. 從 FreeBSD mirror 站 取得原始碼。 有兩種方式可以達成：

   1. 以 csup 或 cvsup 程式搭配位於 `/usr/share/examples/cvsup` 檔名為 `standard-supfile` 的 `supfile`。 這是大家最常推薦的方式，因為它可以讓您把整個 tree 都抓回來， 之後就只取有更新的部分即可。 此外，許多人會把 `csup` 或 `cvsup` 放到 `cron` 以定期自動更新。 您須要自訂前述的 `supfile` 範例檔， 並針對自身網路環境以調整 csup 或 cvsup 相關設定。

   2. 使用 CTM 工具。 若網路環境不佳 (上網費用貴，或只能用 email 而已) CTM 會比較適合您的需求。 然而，這也有一些爭議並且常抓到一些有問題的檔案。 因此， 很少人會用它。 這也註定了不能長期依賴這個更新方式。 若是使用 9600 bps modem 或頻寬更大的上網者，建議使用 CVSup 。

3. 若抓 source code 是要用來跑的，而不僅只是看看而已， 那麼就抓 整個 FreeBSD-CURRENT，而不要只抓部分。 因為大部分的 source code 都會相依到其他 source code 環節部分， 若是您只編譯其中一部份，保證會很麻煩。

   在編譯 FreeBSD-CURRENT 之前，請仔細閱讀 `/usr/src` 內的 `Makefile`。 儘管只是升級部分東西而已，您至少也要先 裝新的 kernel 以及重新編譯 world。 此外，多多閱讀 FreeBSD-CURRENT 郵遞論壇 以及 `/usr/src/UPDATING` 也是必須的， 才能知道目前進度是怎樣以及下一版會有什麼新東西。

4. 熱血！若您正在跑 FreeBSD-CURRENT， 我們很想知道您對於它的想法是什麼，尤其是加強哪些功能， 或該修正哪些錯誤的建議。 如果您在建議時能附上相關程式碼的話， 那真是太棒了！

## 23.2.2. 使用最新的 FreeBSD STABLE

### 23.2.2.1. 什麼是 FreeBSD-STABLE？

FreeBSD-STABLE 是我們的開發分支，主要的發行版就由此而來。 這個分支會以不同速度作修改變化，並且假設這些是第一次進入 FreeBSD-CURRENT 進行測試。 然而，這 仍然 屬於開發中的分支， 也就是說在某些時候，FreeBSD-STABLE 可能會、也可能不會符合一些特殊需求。 它只不過是另一個開發分支而已，可能不太適合一般使用者。

### 23.2.2.2. 誰需要 FreeBSD-STABLE？

若您有興趣去追蹤、貢獻 FreeBSD 開發過程或作些貢獻， 尤其是會跟 FreeBSD 接下來的 “關鍵性” 發行有關， 應該考慮採用 FreeBSD-STABLE。

雖然安全漏洞的修補也會進入 FreeBSD-STABLE 分支， 但不必僅僅因此而 需要 去用 FreeBSD-STABLE。 FreeBSD 每項 security advisory(安全公告) 都會解說如何去修復有受到影響的版本 [1] ，若僅因為安全因素而去採用開發分支，雖然會解決現有已知問題， 但也可能帶來一些潛藏的問題。

儘管我們盡力確保 FreeBSD-STABLE 分支在任何時候均能正確編譯、運作， 但沒人能夠擔保它隨時都可以符合上述目的。 此外，雖然原始碼在進入 FreeBSD-STABLE 之前，都會先在 FreeBSD-CURRENT 開發完畢，但使用 FreeBSD-CURRENT 的人畢竟遠比 FreeBSD-STABLE 使用者來的少，所以通常有些問題，可能在 FreeBSD-CURRENT 比較沒人注意到，隨著 FreeBSD-STABLE 使用者的廣泛使用才會浮現。

由於上述這些理由，我們並不推薦 盲目追隨 FreeBSD-STABLE，而且更重要的是，別在原始碼尚未經完整測試之前， 就衝動把 production server 轉移到 FreeBSD-STABLE 環境。

若您沒有這些多的時間、精神的話，那推薦您使用最新的 FreeBSD 發行版即可，並採用其所提供的 binary 更新機制來完成升級轉移。

### 23.2.2.3. 使用 FreeBSD-STABLE

1. 訂閱 freebsd-stable list。 可以讓您隨時瞭解 FreeBSD-STABLE 的軟體編譯時的相依關係，以及其他需特別注意的問題。 開發者在考慮一些有爭議的修正或更新時，就會先在這裡發信說明， 給使用者有機會可以反應， 看他們對所提的更改是否有什麼建議或問題。

   而 cvs-all list 這邊可以看到每個 commit log， 其中包括了許多中肯的資訊，例如一些可能發生的邊際效應等等。

   想要加入這些通信論壇的話，只要到 http://lists.FreeBSD.org/mailman/listinfo 點下想訂閱的 list 即可。 其餘的步驟在網頁上會有說明。

2. 若打算要安裝一個全新的系統，並且希望裝 FreeBSD-STABLE 每月定期的 snapshot，那麼請參閱 Snapshots 網頁以瞭解相關細節。 此外，也可從 mirror 站 來安裝最新的 FreeBSD-STABLE 發行版，並透過下列的的說明來更新到最新的 FreeBSD-STABLE 原始碼。

   若已裝的是 FreeBSD 以前的版本，而想透過原始碼方式來升級， 那麼也是可以利用 FreeBSD mirror 站 來完成。 以下介紹兩種方式：

   1. 以 csup 或 cvsup 程式搭配位於 `/usr/share/examples/cvsup` 檔名為 `stable-supfile` 的 `supfile`。 這是大家最常推薦的方式， 因為它可以讓你把整個 tree 都抓回來， 之後就只取有更新的部分即可。 此外，許多人會把 `csup` 或 `cvsup` 放到 `cron` 以定期自動更新。 您須要自訂前述的 `supfile` 範例檔，並針對自身網路環境以調整 csup 或 cvsup 相關設定。

   2. 使用 CTM 更新工具。 若網路不快或網路費用貴，那麼可以考慮採用。

3. 一般而言，若常需存取最新原始碼，而不計較網路頻寬的話， 可以使用 `csup` 或 `cvsup` 或 `ftp`。 否則，就考慮 CTM。

4. 在編譯 FreeBSD-STABLE 之前，請先仔細閱讀 `/usr/src` 內的 `Makefile` 檔。 儘管只是升級部分東西而已，您至少也要先 裝新的 kernel 以及重新編譯 world。 此外，多多閱讀 FreeBSD-STABLE 郵遞論壇 以及 `/usr/src/UPDATING` 也是必備的， 這樣才能知道目前進度是怎樣，以及下一版會有哪些新東西。

### 注

[1] | 然而，這也不一定是正確，我們不可能永遠支援 FreeBSD 昔日的各種發行版本，儘管每個發行版發佈之後，都仍會持續支援數年之久。 若欲瞭解 FreeBSD 目前對於舊版的支援政策細節，請參閱 http://www.FreeBSD.org/security/ 。

前一頁 | 內容 | 下一頁
更新、升級 FreeBSD | 上一層 | 更新你的 Source

本文及其他文件，可由此下載：ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/。

若有 FreeBSD 方面疑問，請先閱讀 FreeBSD 相關文件，如不能解決的話，再洽詢 <questions@FreeBSD.org>。
關於本文件的問題，請洽詢 <doc@FreeBSD.org>。