FreeBSD 有兩個發展分支:FreeBSD-CURRENT 及 FreeBSD-STABLE。本節將會陸續介紹,並介紹它們分別又是如何更新。 首先,先介紹 FreeBSD-CURRENT,接著再介紹 FreeBSD-STABLE。
這裡再次強調,FreeBSD-CURRENT 是 FreeBSD 開發的 “最前線”。 FreeBSD-CURRENT 使用者須有較強的技術能力, 而且應該要有能力自己解決困難的系統問題。 若您是 FreeBSD 新手, 那麼請在安裝前最好先三思。
FreeBSD-CURRENT 是 FreeBSD 的最新版。它包含: 仍在研發階段、實驗性質的修改、過渡時期的機制, 這些東西在下一次正式 relase 的版本可能會有,也可能不會有的。 儘管有許多 FreeBSD 開發者每天都會編譯 FreeBSD-CURRENT source code, 但有時這些原始碼是無法編譯成功。 雖然,這些問題通常會儘快解決, 但 FreeBSD-CURRENT 到底是帶來浩劫或是多了想要用的新功能、改善, 這點主要取決於您更新原始碼的時機為何而定!
FreeBSD-CURRENT 適合下列這三類人:
FreeBSD 社群成員:積極專注於 source tree 的某一部份, 以及認為保持為 “current(最新狀態)” 為絕對需求的人。
FreeBSD 社群成員:為了確保 FreeBSD-CURRENT 能夠儘可能地維持在最穩定的狀態, 而主動花時間解決問題的測試者。 此外,還有對 FreeBSD 能提出具體建議以及改善方向,並提出 patch 修正檔的人。
只是關心或者想參考(比如,只是閱讀, 而非執行)的人。 這些人有時也會做些註解,或貢獻原始碼。
追求最新功能。 聽說裡面有些很酷的新功能, 並希望成為您周圍的人中第一個嘗試的人, 因此將 FreeBSD-CURRENT 視為取得搶鮮版的捷徑。 儘管,您能夠因此首先瞭解到最新的功能, 但這也意味著若出現新的 bug 時,您也是首當其衝。
修復 bug 的速成法。 因為 FreeBSD-CURRENT 的任何版本在修復已知 bug 的同時,又可能會產生新的 bug。
無所不在的 “officially supported”。 我們會盡力協助上述 FreeBSD-CURRENT 的那三種類別的 “legitimate” 使用者, 但我們沒時間為他們提供技術支援。 這不代表我們很惡劣,或是不想幫助人(若是的話, 我們也不會為 FreeBSD 努力了) ,實在是因為我們分身乏術,無法每天回答數百個問題, 而同時繼續開發 FreeBSD。 可以確定的一點就是, 在改善 FreeBSD 或是回答大量有關實驗碼的問題之間, 若要做個選擇的話,開發者會選擇前者。
加入 freebsd-current 及 cvs-all 論壇。 這不單只是個建議,也是 必須 作的。 若您沒訂閱 freebsd-current ,那麼就會錯過別人對目前系統狀態的說明,而枯耗在別人已解的問題。 更重要的是,可能會錯失一些對己身所管系統安危相當重要的公告。
在 cvs-all 上則可以看到每個 commit 紀錄, 因為這些記錄會連帶影響其他相關資訊。
要訂閱這些論壇或其他論壇,請參考 http://lists.FreeBSD.org/mailman/listinfo 並點選想訂閱的部分即可。 至於其他後續步驟如何進行, 在那裡會有說明。
從 FreeBSD mirror 站 取得原始碼。 有兩種方式可以達成:
以 csup 或 cvsup 程式搭配位於 /usr/share/examples/cvsup 檔名為 standard-supfile 的 supfile。 這是大家最常推薦的方式,因為它可以讓您把整個 tree 都抓回來, 之後就只取有更新的部分即可。 此外,許多人會把 csup 或 cvsup 放到 cron 以定期自動更新。 您須要自訂前述的 supfile 範例檔, 並針對自身網路環境以調整 csup 或 cvsup 相關設定。
使用 CTM 工具。 若網路環境不佳 (上網費用貴,或只能用 email 而已) CTM 會比較適合您的需求。 然而,這也有一些爭議並且常抓到一些有問題的檔案。 因此, 很少人會用它。 這也註定了不能長期依賴這個更新方式。 若是使用 9600 bps modem 或頻寬更大的上網者,建議使用 CVSup 。
若抓 source code 是要用來跑的,而不僅只是看看而已, 那麼就抓 整個 FreeBSD-CURRENT,而不要只抓部分。 因為大部分的 source code 都會相依到其他 source code 環節部分, 若是您只編譯其中一部份,保證會很麻煩。
在編譯 FreeBSD-CURRENT 之前,請仔細閱讀 /usr/src 內的 Makefile。 儘管只是升級部分東西而已,您至少也要先 裝新的 kernel 以及重新編譯 world。 此外,多多閱讀 FreeBSD-CURRENT 郵遞論壇 以及 /usr/src/UPDATING 也是必須的, 才能知道目前進度是怎樣以及下一版會有什麼新東西。
熱血!若您正在跑 FreeBSD-CURRENT, 我們很想知道您對於它的想法是什麼,尤其是加強哪些功能, 或該修正哪些錯誤的建議。 如果您在建議時能附上相關程式碼的話, 那真是太棒了!
FreeBSD-STABLE 是我們的開發分支,主要的發行版就由此而來。 這個分支會以不同速度作修改變化,並且假設這些是第一次進入 FreeBSD-CURRENT 進行測試。 然而,這 仍然 屬於開發中的分支, 也就是說在某些時候,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 更新機制來完成升級轉移。
訂閱 freebsd-stable list。 可以讓您隨時瞭解 FreeBSD-STABLE 的軟體編譯時的相依關係,以及其他需特別注意的問題。 開發者在考慮一些有爭議的修正或更新時,就會先在這裡發信說明, 給使用者有機會可以反應, 看他們對所提的更改是否有什麼建議或問題。
而 cvs-all list 這邊可以看到每個 commit log, 其中包括了許多中肯的資訊,例如一些可能發生的邊際效應等等。
想要加入這些通信論壇的話,只要到 http://lists.FreeBSD.org/mailman/listinfo 點下想訂閱的 list 即可。 其餘的步驟在網頁上會有說明。
若打算要安裝一個全新的系統,並且希望裝 FreeBSD-STABLE 每月定期的 snapshot,那麼請參閱 Snapshots 網頁以瞭解相關細節。 此外,也可從 mirror 站 來安裝最新的 FreeBSD-STABLE 發行版,並透過下列的的說明來更新到最新的 FreeBSD-STABLE 原始碼。
若已裝的是 FreeBSD 以前的版本,而想透過原始碼方式來升級, 那麼也是可以利用 FreeBSD mirror 站 來完成。 以下介紹兩種方式:
一般而言,若常需存取最新原始碼,而不計較網路頻寬的話, 可以使用 csup 或 cvsup 或 ftp。 否則,就考慮 CTM。
在編譯 FreeBSD-STABLE 之前,請先仔細閱讀 /usr/src 內的 Makefile 檔。 儘管只是升級部分東西而已,您至少也要先 裝新的 kernel 以及重新編譯 world。 此外,多多閱讀 FreeBSD-STABLE 郵遞論壇 以及 /usr/src/UPDATING 也是必備的, 這樣才能知道目前進度是怎樣,以及下一版會有哪些新東西。
[1] |
然而,這也不一定是正確,我們不可能永遠支援 FreeBSD 昔日的各種發行版本,儘管每個發行版發佈之後,都仍會持續支援數年之久。 若欲瞭解 FreeBSD 目前對於舊版的支援政策細節,請參閱 http://www.FreeBSD.org/security/ 。 |
本文及其他文件,可由此下載:ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/。
若有 FreeBSD 方面疑問,請先閱讀 FreeBSD 相關文件,如不能解決的話,再洽詢
<questions@FreeBSD.org>。
關於本文件的問題,請洽詢 <doc@FreeBSD.org>。