4.1安裝CVSUP
可以通過網絡直接安裝cvsup,當然前提是配置好網絡環境
#pkg_add -r cvsup-without-gui
#cd /usr/share/excemples/cvsup
#ee standard-supfile
將*host =後面的替換成cvsup3.freebsdchina.org
#ee ports-supfile
將*host =後面的替換成cvsup3.freebsdchina.org
重新啟動計算機
#reboot
4.2升級原代碼
#cd /usr/share/examples/cvsup/
#cvsup -g -L2 standard-supfile
生級PORTS樹
#cvsup -g -L2 ports-supfile
還有一些CVSUP的安裝方法,附錄中收集了一些,但筆者懶人一個,沒有去驗證,希望讀者能給予驗證,並告訴筆者,關於CVSUP的詳細設置,可以參考手冊,或者大全,講的還是比較詳細的
4.3編譯內核
4.3.1重新編譯核心的意義
核心 (kernel) 顧名思義是整個操作系統的核心,系統一開機即加載核心,它控制了整個系統的運作,包含和硬件溝通、系統資源配置、內存管理、檔案系統管理等等。傳統上,我們將所有支持的硬件、檔案系統等全部放到核心中,每次有新增的硬件或功能都必須重新編譯核心,並重新啟動計算機。但隨著支持的功能越來越多,系統核心變得越來越肥大,而重新開機以加載新加入的功能也不符合現代操作系統的需求。
目前 FreeBSD 許多可以獨立出來的功能都能做成所謂的核心模塊 (kernel module),當系統有需要使用該模塊時,才將它加載核心中。這麼做的好處就是可以讓我們更快加入硬件驅動程序,更方便地加入我們想要的功能。所有可以獨立出來的模塊都可以編譯放入核心中,然而,使用動態加載的方式和直接編入核心中各有優缺,直接編入核心中可以減少加載的時間,而動態加載可以讓我們在不需要用到該功能時立即從系統中移除其所占用的資源。以 DVD 所使用的檔案系統格式為例,我們平常可能很少用到 DVD,所以並未將它加入核心中。但當需要時,我們可以 kldload 這支程序來動態加載該模塊,使用完畢後,也可以立即使用 kldunload 將它從核心中移除,在使用上方便許多。
我們剛安裝完 FreeBSD 時,所使用的核心是一般性的核心,稱之為 GENERIC kernel。為了要支持常見的軟硬件,因此 GENERIC 核心中可能包含了許多我們用不到的驅動程序,也可能不支持一些特殊的硬件。例如,單單網絡卡驅動程序就有數十種被加入 GERERIC 核心中,其實我們只需要使用其中一種。在硬件方面,核心中包含了太多的東西不僅會占去內存的空間,不同程序間也有可能造成沖突。
在軟件方面,如果要啟動 FreeBSD 的防火牆功能,或是使用 ADSL 聯機 (4.4 以前的版本),都需要重新將支持這些功能的參數加到核心中。另外,如果要改變系統的效率,你必須修改核心中的參數,例如增加同時上線的人數、或最大同時開啟的檔案數等。當然,有的功能在 FreeBSD 中可以經由 sysctl 這個指令來修改,而毋需修改核心,但大部份的功能是一定要修改核心的。過於肥大的核心,開機需要的時間較長,所以我們可以將不必要的設定移除,以加速開機速度。
除此之外,我們常看到 FreeBSD 總部發布安全性漏洞修補程序,在完成原始碼的修補之後,大多數的修補都必須重新編譯核心。所以我們還是要來了解一下如何為自己量身訂做一個新的核心。
請放心,編譯核心並不難,其實只有幾個步驟,只要依下列的方法去做,相信您對於系統核心將有更深入的了解。