freebsd-update這個FreeBSD binary-update的工具程式其實已經存在於base system一陣子了,
之前一直沒實際使用過freebsd-update, 剛好前幾天FreeBSD-6.3 release,
再加上今天心血來潮就來試用看看.

Ref: http://www.daemonology.net/blog/2007-11-10-freebsd-minor-version-upgrade.html

跟上述方法有幾個不同的地方:
1. 我比較偷懶, 再加上FreeBSD 6.2->6.3也沒改啥東西,
所以就省略掉一個reboot的步驟.
2. 我的 kernel 有改一些東西, 不是標準的 GENERIC or SMP, freebsd-update沒辦法處理, 要自己手動編,
而freebsd-update 跨 minor-version 的 install分成兩階段,
第一階段只會更新少數必要的東西, 所以/usr/src還會是舊的, 第二階段才會去更新 /usr/src/
我那時也找不出方法讓 freebsd-update 強制裝個 GENERIC or SMP先來用用,
配合第一點: 我的work-around就是freebsd-install兩階段都跑完之後, 再去編kernel, 然後reboot
(後來發現透過/etc/freebsd-update.conf: StrictComponents yes 可能有機會可以, 再找時間驗證)
3. freebsd-update也會幫你merge一些東西, 不過我還是再用 mergemaster -i 再確認一次

我所用的步驟如下:
(as root)
kkupdate跑一次 (kkupdate是我自己寫的一隻小script :p)
mkdir -p ~/tmp/ && cd ~/tmp/
fetch http://people.freebsd.org/~cperciva/freebsd-update-upgrade.tgz
tar -xf freebsd-update-upgrade.tgz
sh freebsd-update.sh -f freebsd-update.conf -r 6.3-RELEASE upgrade
sh freebsd-update.sh -f freebsd-update.conf install
sh freebsd-update.sh -f freebsd-update.conf install
cd /usr/src/ && make kernel
kkupdate && premerge(premerge也是我自己寫的一隻小script :p)
mergemaster -i
cd /usr/src/ && make kernel
cd ~/tmp/
shutdown -r now
搞定收工.

心得:
其實我整個從6.2升級6.3的過程還蠻慢的, 因為跨minor version的升級可能需要抓上萬個檔案 @@
我是覺得若機器快的話, 直接整個重編應該比較快

不過如果是p0->p1這一類的, 用freebsd-update應該就會快很多, 為了幾個小地方就要make world也蠻累的.
另一個想到的好處是: 跨major version升級時, 直接用binary可能問題會比較少.
(不過這也要先研究一下怎麼強迫它裝GENERIC的kernel進去:Q)

嗯, 如果研究出freebsd-update怎麼強制裝個GENERIC進去 就可以找一台衝FreeBSD-7看看了

PS:
portsnap也順便試用了一下: portsnap第一次用也很慢, 目前為止還沒覺得有比較好用 :Q
創作者介紹

Izero@庶務三科 ㄎㄎㄎ~

Izero 發表在 痞客邦 PIXNET 留言(0) 人氣()