精華區beta FreeBSD 關於我們 聯絡資訊
資料來源 http://ccca.nctu.edu.tw/~gslin/Documents/FreeBSD/use-cvsup.txt * 改版記錄 2002/11/12 stable 改成 4.7 2002/08/25 * 修改 license,從 GPL 改成 GNU FDL,因為 GPL 不是給文件用的 license。 * 修改部分字彙及句子。 * Author [email protected] ([email protected], DarkKiller) * License The license of this document is: GNU Free Documentation License Version 1.1, March 2000 http://www.gnu.org/licenses/fdl.txt * 感謝 感謝 bugs/Leeym/TerryLiaw 三位學長的意見使這份文件更完備。 感謝 [email protected] 找到一些我所看不到的盲點,以及文件的不完備。 * 硬碟空間 依照 jdli 書的說法,2.2.x 系列的 source 才 150MB,不過時代不一樣了... 目前 -current source 的部分大約在 350MB 到 400MB,-stable source 的部 分大約在 300MB 到 350MB。 ports 大約在 100MB,不過小檔案很多,通常會吃掉 200MB 以上的空間。 所以我們建議你騰出 1GB 以上的空間出來放,你總不會裝了 source,結果不 make world 吧? 所以,再準備 obj 吧 :) 如果你的 /usr 空間不夠大,請把 /usr/src 跟 /usr/ports 用 ln link 到夠 大的地方。 * 安裝 cvsup-without-gui-16.1f 首先我們會要求你安裝 cvsup-without-gui-16.1f 這個 package,你可以選用 ports 安裝,或是用 package 裝: 如果你現在用的系統是 4.x,用: pkg_add ftp://ftp.tw.freebsd.org/pub/FreeBSD/packages/packages-4-stable/ (無空白接上行) All/cvsup-without-gui-16.1f.tgz 如果你現在用的系統是 5.x,用: pkg_add ftp://ftp.tw.freebsd.org/pub/FreeBSD/packages/packages-5-current/ (無空白接上行) All/cvsup-without-gui-16.1f.tgz * 修改相關的設定 在你的 /etc/make.conf 裡面加上這幾行: SUP_UPDATE= yes SUP= /usr/local/bin/cvsup SUPFLAGS= -g -L 2 # # SUPHOST 代表要到哪台 CVSup,請改成離你比較近的 Server。 SUPHOST= cvsup7.tw.FreeBSD.org # # 如果你是用 -stable,請用 stable-supfile (目前的 -stable 是 4.7) # 如果你是用 -current,請用 standard-supfile (目前的 -current 是 5.0) SUPFILE= /usr/share/examples/cvsup/stable-supfile #SUPFILE= /usr/share/examples/cvsup/standard-supfile PORTSSUPFILE= /usr/share/examples/cvsup/ports-supfile * 檢查 sbase 如果你當初安裝的時候沒有裝 sys -> base 這個部分的話,你可以用 /stand 下 面的 sysinstall (建議就用這種方法)。 * 先安裝好 old source ports (雖然非必要,但強烈建議) 因為 cvsup 時會吃掉 Server 許多的 resource,為了避開大量 checkout 的動 作造成 Server 負荷過重,我們建議把舊的 source 以及 ports 先裝好。 而且這樣對於用數據機的 user 而言,會比較省時間。 你可以用 /stand/sysinstall 把 source 跟 ports 裝好。 * make update 如果上面的步驟都做好,以後要更新 source tree/ports tree 的話,請到 /usr/src 下面 make update 吧: cd /usr/src make update 然後它就會開始跑。跑完以後就會有最新的 source & ports。 * make world *請注意* 接下來的東西,請詳細閱讀 /usr/src/UPDATING,以這個檔案裡面說的 為準!!! 在 make world 前,請先看看 /usr/src/UPDATING,以及 Mailing list 上面的 -current (如果你是玩 current) 或 -stable (如果你是玩 stable),另外有時 候也會出現在 -questions。 一般沒有什麼大變動的話,打 make world 就可以了: make -j2 world > /tmp/world 2>&1 & (如果你用的是 sh/bash) make -j2 world >& /tmp/world & (如果你用的是 csh/tash) -j 後面接的數字建議用 CPU 的個數加一就可以了,也就是如果只有一顆 CPU 時,我們建議用 -j2,兩顆 CPU 時,建議用 -j3。 如果你想要看 make world 的情況,打 tail -F /tmp/world 就可以了。 * edit your kernel config file 我們常常會先把 GENERIC 這個檔案 cp 一份到 /usr/local/etc 下面,並且 ln 一份到 /usr/src/sys/i386/conf 下面,然後再修改它: cp /usr/src/sys/i386/conf/GENERIC /usr/local/etc/GSLIN ln -s /usr/local/etc/GSLIN /usr/src/sys/i386/conf/GSLIN 那個 GSLIN 是我的機器名字 (我習慣用機器名字),你可以選你要的名字。 接下來你可以用你喜歡用的 editor 修改 GSLIN 這個檔案。(像是 joe、vi、ee 等等,但是不要用 ve,它會把 tab 展開成 space) * make kernel 在 *一般的情況* 下,make world 完後就 make kernel 吧: *請注意* 請詳細看 /usr/src/UPDATING 的說明!!! cd /usr/src make KERNCONF=GSLIN buildkernel make KERNCONF=GSLIN installkernel 上面這三行也可以化簡為下面這兩行: cd /usr/src make KERNCONF=GSLIN kernel 當然,如果你如果更懶惰的話,你可以把 KERNCONF 放到 /etc/make.conf: KERNCONF= GSLIN 這樣你以後就可以只用下面的指令 make kernel: cd /usr/src make kernel 當然,舊的方法 (許多市面上面的書應該都還是舊的方法) 也是可以用,但是 我們不保證用不會有事情: cd /usr/src/sys/i386/conf config GSLIN cd ../../compile/GSLIN make depend all install * mergemaster 做完 make world & make kernel 後,有時候 /etc 下面的東西也會變更,這 時候就要跑 mergemaster 把 /usr/src/etc 的檔案跟 /etc 的檔案做同步的 動作。 mergemaster 然後請照他的說明做 :) 通常就是一直選 'i',當然,下面的這幾個檔案你不應該選 'i': csh.* (csh/tcsh login 的時候會參考到的檔案) group (存放 group 相關的資料) inetd.conf (你的 telnet、ftp... 各種相關的服務設定) master.passwd (存放你帳號相關的資料) 如果有你自己有改過一些設定檔,那麼應該要手動更新。舉個例子,如果你有 改過 /etc/services (通常是架 BBS 的時候會改到),那麼你就需要手動更新 這個檔案。 * Others 如果你有任何的建議,請 mail 給我:[email protected],謝謝。