4月 032008
 

週四, 01/25/2007 – 17:47 — cheeren

FreeBSD 6.2 Release 釋出已經一個星期了,我在釋出的第一天就從台灣的 Mirror 站台下載了安裝光碟的 ISO
檔,打算找一個風和日麗的黃道吉日來把我的系統好好升級一下。但是,我在下載的同時,依慣例,我會把這一版本的 Release Notes
走馬看花地先看一遍,原本不預期有什麼令人驚奇的發現,然而這次我居然在 Release Notes 當中的一段的標題,看到了這個字眼:

FreeBSD Update

咦?這是什麼東西?看樣子是我要的東西!

以往要將 FreeBSD
更版、升級,大概只有兩種方法:第一種非常正式而且麻煩,但是安全又可靠,就是直接下載原始碼自己編譯。看起來下載程式碼好像很難,事實上不會的。網路上有一堆文章教大家如何保持硬碟中的原始檔和
core team 釋出的更新原始碼同步,這部份等我有空也會寫專文來介紹。一旦你的原始碼一直保持和 FreeBSD 開發團隊釋出的更新版本保持一致,當你看到
FreeBSD
官方網站上的安全報告出現狀況時,不用等到新的版本釋出,你就隨時把自己的作業系統保持在最安全的狀態。另一個好處是,你可以自行訂製屬於你的機器專用的核心,可以讓開機的速度加快,又可以省下不少記憶體。但是,自行編譯系統並不是一件很簡單的事,而且不可能全程讓機器自動進行,所以你個人必須被機器綁著一上午或一下午不能有別的活動。所以這是一件相當吃力、又耗時的作法,所以目前除非是官方網站宣布了一件極重要又危險的安全性漏洞,不然我寧可不要去做這麼一件麻煩的事。

第二種方法就是使用 sysinstall。sysintsall 有一個選項就是
Upgrade,選擇它,就可以從安裝光碟把系統升級。這是最簡單的方法,只是你必須把整個 ISO 檔抓下來。

目前有第三種方式,也就是 FreeBSD Update!FreeBSD Update 目前由 Daemonic Dispatches
這個網站在維護。6.2 版的 Release Notes 直接給我們一個 hyperlink:

http://www.daemonology.net/blog/2006-11-26-freebsd-6.1-to-6.2-binary-upgrade.html

這個 hyperlink 就是 FreeBSD Update 原始的說明文件,但是這個文件在寫作時,FreeBSD 6.2 版還是 RC1,所以它後來又補充了一篇文章:

http://www.daemonology.net/blog/2007-01-20-freebsd-update-update.html

這兩篇文章寫得相當清楚,只要照著第一篇文章,然後稍稍做些許的修正,就可以在一、兩個小時內把系統升級完畢。以下是我參考這兩篇文章所修正後的做法:

第一部份是把 FreeBSD Update 的執行目錄建置好,並且把程式從原始站台下載下來,並確認原始碼是正確的:

# mkdir /usr/upgrade

# cd /usr/upgrade

# fetch http://www.daemonology.net/freebsd-update/upgrade-to-6.2.tgz

# fetch http://www.daemonology.net/freebsd-update/upgrade-to-6.2.tgz.asc
# gpg –verify upgrade-to-6.2.tgz.asc upgrade-to-6.2.tgz

接著解開  FreeBSD Update,並且設定環境。

# tar -xzf upgrade-to-6.2.tgz

# cd upgrade-to-6.2

# sh freebsd-update.sh -f freebsd-update.conf -d /usr/upgrade -r 6.2-RELEASE upgrade

接下來,先不要離開,FreeBSD Update 會先找 Mirror 站台,找到後,開始下載該下載的檔案,開始設定升級的環境。當檔案該下載的都下載完畢後,程式會列出一個清單,告訴你,前一版本(也就是 6.1 版)有哪些部份是安裝,升級程式會安裝它們,哪些部份原本舊版本就沒安裝,升級程式預設就不會安裝他們,然後會問:

The following components of FreeBSD seem to be installed:
……(一堆清單)

The following components of FreeBSD do not seem to be installed:
……(一樣,一堆清單)

Does this look reasonable (y/n)? y <-- 如果沒有問題就像我一樣輸入 y 然後程式又開始下載應該要更新的部份的檔案。下載完畢後,把檔案解開放在該放的位置,可以先去喝一口水,上一下厠所。這個步驟結束後,會以 more 列出三個檔,這三個檔就是安裝的軟體清單。如果你想看,就一直按空白鍵,就可以瀏覽。如果你不想看,就按下 q 鍵跳出。也就是說,你要按三次 q 鍵才會回到主控台。接著繼續,開始安裝: # sh freebsd-update.sh -f freebsd-update.conf -d /usr/upgrade install 程式會先安裝 kernel,這個動作大概花不了多少時間。這時候程式建議你重新啟動電腦: Installing updates…
Kernel updates have been installed. Please
reboot
and run “freebsd-update.sh install” again to
finish installing updates.

建議就重新啟動吧!雖然我看過別人這個動作並沒有重新啟動一樣可以安裝好,但是程式不是我寫的,聽話一點比較安心。

# reboot

重開電腦後就是最後一件動作了,就是把 kernel 以外的系統全部安裝就定位:

# cd /usr/upgrade/upgrade-to-6.2

# sh freebsd-update.sh -f freebsd-update.conf -d /usr/upgrade install

這個動作就看你當初舊版裝了多少東西而定了,可能很快,也可能要等很久。不過你可以先去做別的事。等提令符號再度出現,再重開機一次:

# reboot

好!一旦開完機,登入機器一下,下這個指令看看,確認一下,看是不是有如預期地更新了系統:

# uname -a

FreeBSD ***.***.com(你的 hostname) 6.2-RELEASE FreeBSD 6.2-RELEASE #0: Fri Jan 12 10:40:27 UTC 2007     [email protected]:/usr/obj/usr/src/sys/GENERIC  i386

系統已經變成了 6.2-Release 了!成功了!

基本上,使用 FreeBSD Update 方便是方便,但其實並不會比使用光碟昇級快。然而,我猜,有可能將來一旦系統出現安全上的漏洞時,可以讓你經由 FreeBSD Update 用比較快的速度更新有問題的部份。我認為,這才是 FreeBSD core team 開發 FreeBSD Update 的主要原因吧。

 回复

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>