這裏顯示兩個版本的差異處。
Both sides previous revision 前次修改 下次修改 | 前次修改 | ||
freebsd:world_kernel [2009/12/30 22:08] wenpei 7.x 升級 8.0 的問題 |
freebsd:world_kernel [2010/01/10 11:16] (目前版本) wenpei |
||
---|---|---|---|
行 1: | 行 1: | ||
FreeBSD 6.2 RELEASE 至 FreeBSD 7.2 RELEASE 等。 | FreeBSD 6.2 RELEASE 至 FreeBSD 7.2 RELEASE 等。 | ||
+ | |||
+ | ====== 版本升級 ====== | ||
+ | EX: 從 FreeBSD 6.3 RELEASE 升級至 FreeBSD 7.2 RELEASE | ||
+ | |||
+ | 查詢 /etc/make.conf 中的 SUPFILE 設定指向哪個檔案: | ||
+ | SUPFILE= /usr/share/examples/cvsup/standard-supfile | ||
+ | |||
+ | 至該檔案查詢: | ||
+ | <code> | ||
+ | *default release=cvs tag=RELENG_6_3 | ||
+ | </code> | ||
+ | |||
+ | 改成 | ||
+ | <code> | ||
+ | *default release=cvs tag=RELENG_7_2 | ||
+ | </code> | ||
+ | 或 8.0: | ||
+ | <code> | ||
+ | *default release=cvs tag=RELENG_8_0 | ||
+ | </code> | ||
+ | |||
+ | 然後重新 | ||
+ | make update | ||
+ | make buildworld | ||
+ | make buildkernel | ||
+ | make installkernel | ||
+ | make installworld | ||
+ | mergemaster | ||
+ | 等等... 其中,mergemaster 需要仔細看。 | ||
+ | |||
====== 做世界 BuildWorld ====== | ====== 做世界 BuildWorld ====== | ||
===== 編譯環境的設定檔 ===== | ===== 編譯環境的設定檔 ===== | ||
行 44: | 行 74: | ||
====== 安裝世界 Install World ====== | ====== 安裝世界 Install World ====== | ||
# make installworld | # make installworld | ||
- | |||
====== Mergemaster ====== | ====== Mergemaster ====== | ||
把 /usr/src/etc 的東西跟 /etc 的東西更新。 | 把 /usr/src/etc 的東西跟 /etc 的東西更新。 | ||
- | # mergemaster | + | # mergemaster [-U] [-i] |
- | + | ||
- | 通常只需要看一下差異,然後按 i 安裝新的設定值就可以了,除了 crontab、group、passwd、named.conf 等檔案一定會不同,不能直接安裝新版本,此時就要用 m 進入 merge 模式,然後看是要保留左邊舊版還是安裝右邊新版的檔案,如果要保留就輸入 l,要用新版本就輸入 r。 | + | -U 代表自動更新沒有被修改過的設定檔,在 FreeBSD 6.4 版本之後才可使用 |
- | + | ||
+ | -i 代表自動安裝不存在的新檔案。 | ||
+ | |||
+ | 如果在舊版沒有 -U 可以用,通常只需要看一下差異,然後按 i 安裝新的設定值就可以了,除了 crontab、group、passwd、master.passwd、named.conf 等檔案一定會不同,不能直接安裝新版本,此時就要用 m 進入 merge 模式,然後看是要保留左邊舊版還是安裝右邊新版的檔案,如果要保留就輸入 l (小寫的 L),要用新版本就輸入 r。 | ||
====== 新世界 ====== | ====== 新世界 ====== | ||
# sync;sync;sync;reboot | # sync;sync;sync;reboot | ||
行 56: | 行 89: | ||
最後,祈禱沒出問題。 XD | 最後,祈禱沒出問題。 XD | ||
- | ===== 問題處理 ===== | + | ====== 問題處理 ====== |
- | ==== 7.x 升級 8.0 的問題 ==== | + | ===== 7.x 升級 8.0 的問題 ===== |
安裝完 8.0,要 mergemaster 的時候,可能會出現問題: | 安裝完 8.0,要 mergemaster 的時候,可能會出現問題: | ||
<code> | <code> | ||
行 88: | 行 121: | ||
- 重開機 | - 重開機 | ||
- | ==== 找不到硬碟 ==== | + | ===== 找不到硬碟 ===== |
<code> | <code> | ||
Manual root filesystem specification: | Manual root filesystem specification: | ||
行 106: | 行 139: | ||
開機,即可順利掛載硬碟。 | 開機,即可順利掛載硬碟。 | ||
- | ====== 版本升級 ====== | + | ===== "/usr/src/lib/libc/stdlib/Makefile.inc", line 19: Need an operator ===== |
- | EX: 從 FreeBSD 6.3 RELEASE 升級至 FreeBSD 7.2 RELEASE | + | |
- | + | ||
- | 查詢 /etc/make.conf 中的 SUPFILE 設定指向哪個檔案: | + | |
- | SUPFILE= /usr/share/examples/cvsup/standard-supfile | + | |
- | + | ||
- | 至該檔案查詢: | + | |
- | <code> | + | |
- | *default release=cvs tag=RELENG_6_3 | + | |
- | </code> | + | |
- | + | ||
- | 改成 | + | |
- | <code> | + | |
- | *default release=cvs tag=RELENG_7_2 | + | |
- | </code> | + | |
- | 或 8.0: | + | |
- | <code> | + | |
- | *default release=cvs tag=RELENG_8_0 | + | |
- | </code> | + | |
- | + | ||
- | 然後重新 | + | |
- | make update | + | |
- | make buildworld | + | |
- | make buildkernel | + | |
- | make installkernel | + | |
- | make installworld | + | |
- | mergemaster | + | |
- | 等等... 其中,mergemaster 需要仔細看。 | + | |
- | + | ||
- | ===== Problems ===== | + | |
- | ==== "/usr/src/lib/libc/stdlib/Makefile.inc", line 19: Need an operator ==== | + | |
編譯途中如果遇到下列錯誤: | 編譯途中如果遇到下列錯誤: | ||
<code> | <code> |