昇級 FreeBSD 8.0-RELEASE

2009/12/04
By

FreeBSD Planet 上有詳細一點的 HowTo

不過主要就是先複製一份(或直接改寫 sup-file),以下都假定你是以 root 權限跑:

% cp /usr/share/examples/cvsup/stable-supfile /root/8-release
% vim /root/8-release (偷渡一下 vim)

裡面主要是改兩個地方 host & release/tag

*default host=cvsup.tw.FreeBSD.org
*default release=cvs tag=RELENG_8_0

當然也可以把 tag 指定為 RELENG_8_0_0_RELEASE, 不過這樣就吃不到後續的更新了,例如昨天出的 p1:

20091203: p1 FreeBSD-SA-09:15.ssl, FreeBSD-SA-09:16.rtld,
FreeBSD-SA-09:17.freebsd-update
Disable SSL renegotiation in order to protect against a serious
protocol flaw. [09:15]

Correctly handle failures from unsetenv resulting from a corrupt
environment in rtld-elf. [09:16]

Fix permissions in freebsd-update in order to prevent leakage of
sensitive files. [09:17]

接著更新 src tree:

% csup /root/8-release

然後就先備便 binary files & kernel:

% make buildworld && make buildkernel

在這裡之前,都不會對原來的系統造成任何影響。

然後跑一下 mergemaster -p 檢查必要的檔案更新。

% mergemaster -p

這是靠 VCS Id 來檢查是否有新檔,所以很有可能手賤把 /etc/master.passwd & /etc/group 給幹掉,如果不幸發生,記得去 /var/backups 去撿備份。(把 VCS Id 弄成一樣也是個解法啦 XD)

接著就準備昇級了:

% make installkernel
% reboot (and specify -s into single user mode)
% cd /usr/src ; make installworld
% mergemaster
% reboot

雖然說是建議要先有一次 reboot 進入單人模式 (-s),不過我喜歡直接上了 XD,本人的方式是

% make installworld && make installkernel
% mergemaster
% reboot && *pray*

這裡就完成了主系統的更新了。

接著,如果你有 jail 的話,也要記得一起更新啊。附帶一提, FreeBSD-8.0 可以允許 Multi-IP/IPv6 jails :

Multi-IP/IPv6 jails

With FreeBSD 8 it will be possible to assign multiple IPv4 addresses to a jail, as well as assigning IPv6 addresses. People that offer hosting services can greatly enjoy these features, a jailed webserver for example can now use many more addresses and do proper SSL virtualhosting.

更新 jail 的方式很簡單,只要 make installworld 並加上 DESTDIR 即可:

% cd /usr/src
% make installworld DESTDIR=/path/to/jail

我自己還會手賤順便做 mergemaster 就是了

% cd /usr/src
% mergemaster -D /path/to/jail

最後,重要的來啦,因為原本經由 ports 安裝的軟體(或是自行安裝的),有些還是連到舊的 library(如原本連的是 libxxx.0, 8.0-R 裝的是 libxxx.1),所以一時之間可能覺得沒問題,不過最好還是檢查一下。然後看著日漸肥大的 /usr ,當然要讓過去的過去囉~~

% cd /usr/src
% make delete-old-libs
% make delete-old

如果在 production 機器上,最好多詳細檢查 XD,如果是個人用的,就先做再說,反正不行, rebuild from ports 就好 :D

UPDATE: 預設 delete-old/delete-old-libs 會逐項詢問你要不要砍,如果想一次砍掉,記得加個 -DBATCH_DELETE_OLD_FILES:

% cd /usr/src
% make -DBATCH_DELETE_OLD_FILES delete-old-libs
% make -DBATCH_DELETE_OLD_FILES delete-old

Tags:

One Response to 昇級 FreeBSD 8.0-RELEASE

  1. FreeBSD 8.0 on x61 | Temporality on 2009/12/13 at 2:15 上午

    [...] 昇級 FreeBSD 8.0-RELEASE,其實 FreeBSD [...]

發表迴響

您的電子郵件位址並不會被公開。 必要欄位標記為 *

*


*