這裡有一篇 FreeBSD 7 preview , 建議先看過.

FreeBSD7看起來很誘人, 我最近就挑了幾台機器進行遠端升級成FreeBSD7的動作,
當然, 跨 major version 的升級總是比較危險的,
所以有找了一些資料, 也問了一些勇士們的經驗,
再配合自己有點龜毛又愛偷懶的個性調整了一下, 經過了四台server的實際實驗, 調整成以下的步驟,
提供給大家做參考, 老話一句: 後果自負 :p

有任何建議或疏漏之處歡迎指正啦^^

====================我是分隔線====================
(不知道甚麼是kkupdate的就跳過kkupdate吧, ㄎㄎㄎ~)

一. 事先準備
1. 先確定自己的帳號在 wheel group
2. 確定自己可以使用su變成root(知道 root 密碼, 以防sudo爛掉不能用)
3. 如果平常用bash, 那暫時改成/bin/tcsh吧, 以防bash爛掉
4. cd /var/db/pkg 把有安裝的ports整理一下
5. /etc/group加上: ftp:*:14:
6. 修改 /root/kkupdate/local.conf: export FORCE_VERSION="7.0"
7. cd /root/kkupdate/ && ./kkupdate
(重點在於改supfile裡頭的版本設定為RELENG_7_0)


二. 開始上路
1.
cd /usr/src && make update
rm -rf /usr/obj/ && make buildworld && make buildkernel

2.
把能 umount 掉的 mount point 都先 umount 掉
sh /etc/rc.d/cron stop
cd /usr/src/ && make installkernel && make installworld
/root/kkupdate/util/premerge.sh
mergemaster -i
cd /root/kkupdate/ && ./kkupdate

shutdown -r now

三. 整理ports
1.
sh /etc/rc.d/cron stop

2.
cd /var/db/pkg/ && find . -name '+CONTENTS' | xargs grep " ORIGIN:" | awk ' { match($1, "ORIGIN:"); print "portupgrade -N -m \"BATCH=yes\" \"" substr($2,8) "\""; } ' > /tmp/all_pkg.sh

3.
cd /var/db/pkg/ && rm -f pkgdb.db && pkg_delete *
sh /root/kkupdate/util/ports_default.sh
(至少要先把portupgrade裝起來)
diablo-jdk還沒有for 7.0的binary, 去 http://blog.pixnet.net/Izero/post/10872003 用6.1的頂一下吧
sh /tmp/all_pkg.sh


四 清除餘孽
1.
( for dir in /bin /sbin /usr/bin /usr/sbin /usr/libexec /usr/libdata; do \
find $dir -mtime +2 -type f -xdev -print; \
find $dir -mtime +2 -type l -xdev -print; \
done ) >/tmp/remove
cat /tmp/remove | xargs rm -f

2.
( for dir in /lib /usr/lib; do \
find $dir -mtime +2 -type f -xdev -print; \
find $dir -mtime +2 -type l -xdev -print; \
done ) | grep -v /usr/lib/compat >/tmp/move
mkdir /tmp/remove_lib/
for x in `cat /tmp/move`; do chflags noschg $x; mv $x /tmp/remove_lib/; done

3.
cd /usr/src && make BATCH_DELETE_OLD_FILES=YES delete-old delete-old-libs

4.
cd /usr/src/ && make installworld && make installkernel

5.
cd /root/kkupdate/ && ./kkupdate

6. 如果有用非ports安裝的一些程式 也該重新編譯一下

7.
shutdown -r now


五.大功告成
1. local.conf拿掉FORCE_VERSION="7.0"
2. shell改回來
arrow
arrow
    全站熱搜

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