廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 4502 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
cyutjason
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[Linux] [轉錄]如何用 CVSup 去更新你的 source tree 以及 ports
在bbs上收集下來的文章
作者: DarkKiller (悸動) 看板: Daily
標題: Re: 如何用 CVSup 去更新你的 source tree, ports
時間: Tue Apr 24 15:55:19 2001

* License

No,我不打算用 BSD License,我還是比較喜歡 GPL Virus :)

The license of this document is:

GNU LIBRARY GENERAL PUBLIC LICENSE (version 2, June 1991)
http://www.gnu.org/cop...rary.txt

* 感謝

感謝 bugs/Leeym/TerryLiaw 三位學長的意見使這份文件更完備。

* 硬碟空間

依照 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-bin

首先我們會要求你安裝 cvsup-bin 這個 package,你可以選用 ports 安裝,或
是用 package 裝:

如果你現在用的系統是 4.x,用:
pkg_add ftp://ftp.tw.freebsd.org/pub/FreeB...kages-4-stable/
(無空白接上行) All/cvsup-bin-16.1.tgz

如果你現在用的系統是 5.x,用:
pkg_add ftp://ftp.tw.freebsd.org/pub/FreeB...ages-5-current/
(無空白接上行) All/cvsup-16-16.1.tgz

* 修改相關的設定

在你的 /etc/make.conf 裡面加上這幾行:

SUP_UPDATE=   yes
SUP=         /usr/local/bin/cvsup
SUPFLAGS=     -g -L 2
#
# SUPHOST 代表要到哪台 CVSup,請改成離你比較近的 Server。
SUPHOST=     cvsup.tw.FreeBSD.org
#
# 如果你是用 -stable,請用 stable-supfile (目前的 -stable 是 4.3)
# 如果你是用 -current,請用 standard-supfile (目前的 -current 是 5.0)
SUPFILE=     /usr/local/examples/cvsup/stable-supfile
#SUPFILE=     /usr/local/examples/cvsup/standard-supfile
PORTSSUPFILE=   /usr/local/examples/cvsup/ports-supfile

* 檢查 sbase

如果你當初安裝的時候沒有裝 sys -> base 這個部分的話,你可以用 /stand 下
面的 sysinstall (建議就用這種方法)。

* 先安裝好 old source ports (雖然非必要,但強烈建議)

因為 cvsup 時會吃掉 Server 許多的 resource,為了避開大量 checkout 的動
作造成 Server 的 heavy load,我們建議把舊的 source 以及 ports 先裝好。

而且這樣對於用數據機的 user 而言,會比較省時間。

你可以用 /stand/sysinstall 把 source 跟 ports 裝好。

或者利用 ftp.nctu.edu.tw 提供的 NFS service 把新版的 source/ports 解開
到 /usr/src 以及 /usr/ports:

mount_nfs -o ro ftp.nctu.edu.tw:/ftp /mnt
cd /mnt/pub/FreeBSD/releases/i386/STABLE
(如果是 -current 就 cd /mnt/pub/FreeBSD/releases/i386/CURRENT)

cd src; sh ./install.sh all
cd ../ports; sh ./install.sh
cd /; umount /mnt

* 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 &

-j 後面接的數字建議用 CPU 的個數加一就可以了,也就是如果只有一顆 CPU
時,我們建議用 -j2,兩顆 CPU 時,建議用 -j3。

如果你想要看 make world 的情況,打 tail -f /tmp/world 就可以了。

* make kernel

在 *一般的情況* 下,make world 完後就 make kernel 吧:

*請注意* 請詳細看 /usr/src/UPDATING 的說明!!!

cd /usr/src
make KERNCONF=BLAHBLAH buildkernel
make KERNCONF=BLAHBLAH installkernel

上面也可以化簡為:

cd /usr/src
make KERNCONF=BLAHBLAH kernel

當然,舊的方法 (目前市面上面的書應該都還是舊的方法) 也是可以用,但是
我們不保證用不會有事情:

cd /usr/src/sys/i386/conf
config BLAHBLAH
cd ../../compile/BLAHBLAH
make depend all install

* mergemaster

當然,舊的方法 (目前市面上面的書應該都還是舊的方法) 也是可以用,但是
我們不保證用不會有事情:

cd /usr/src/sys/i386/conf
config BLAHBLAH
cd ../../compile/BLAHBLAH
make depend all install

* mergemaster

做完 make world & make kernel 後,有時候 /etc 下面的東西也會變更,這
時候就要跑 mergemaster 把 /usr/src/etc 的東西跟 /etc 的東西 sync:

mergemaster

然後請照他的說明做 :) 通常就是一直選 'i',除了 csh.* 跟你的密碼檔
/etc/master.passwd 外...

--
                        Gea-Suan Lin <gslin@informath.net>
--


[ 此文章被andyz在2005-05-18 19:48重新編輯 ]

此文章被評分,最近評分記錄
財富:50(codeboy)



獻花 x0 回到頂端 [樓 主] From:台灣數位聯合 | Posted:2005-01-05 17:53 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.052634 second(s),query:15 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言