站長新書 站長開講 首頁 最新文章 站長著作及審校 FreeBSD 筆記 Linux 筆記 Windows 筆記 虛擬化筆記 網管人雜誌 遊山玩水 關於本站
站長新書 VMware vSphere ICM 團購開跑了!!

CSUP-更新 Port Tree

前言

[Csup - a rewrite of CVSup in C],csup 為 mux@FreeBSD.org 利用 C 語言重新改寫原本以 Modula-3 語言寫的 CVSup,作者目前進度寫到客戶端來更新階段 (相信滿足大多數人的需要) 此外 csup 計劃日後可望也會跟 portsnap 一樣進入 Base System 內,而 csup 使用方法大致與原先的 cvsup-without-gui 一樣並且 csup 更新速度快,不用像原本的 cvsup 需要較久的等待,而且安裝 cvsup 時還需要安裝 ezm3 (相依關係) 且操作方式跟使用 cvsup 一樣,本篇為說明利用 csup 來更新 Ports Tree。

【作業環境】

安裝及設定

若您使用的是 FreeBSD 6.2-RELEASE 或之後的版本可直接跳到步驟三,因為 csup 在這些版本中已進入 Base System (內建於系統) 所以不用進行步驟1及步驟2來另外安裝。

步驟1.安裝 csup 套件

切換至 Ports Tree 路徑安裝 csup 套件

 #cd /usr/ports/net/csup    //切換到安裝路徑 
 #make install clean        //安裝套件並清除安裝過程中產生不必要檔案

由於此 Ports 套件於 2006/1/27 才 commit 進來,所以若找不到這個路徑的話請更新 Port Tree 即可,若不想使用 cvsup 或 portsnap 來更新 Ports Tree 的話,那麼可暫時先使用 [chinsan] 主機提供的 csup.shar 來進行安裝 csup

 #cd /usr/ports/net ; fetch http://chinsan2.twbbs.org/csup.shar
 #sh csup.shar ; cd csup ; make install clean 

步驟2.Ports Tree 相關檔案說明

以下是更新相關檔案所需使用到的 Ports Tree 檔案說明

 #cd /usr/share/examples/cvsup/     //路徑
 cvs-supfile                        //更新 Main source tree and ports collection
 doc-supfile                        //更新 Document
 gnats-supfile                      //更新 FreeBSD bug database
 ports-supfile                      //更新 Ports collection
 stable-supfile                     //更新 Main source tree
 standard-supfile                   //更新 Main source tree
 www-supfile                        //更新 FreeBSD 官方網頁 

步驟3.修改 Ports Tree 更新設定檔 (ports-supfile or make.conf)

修改 Ports Tree 更新設定檔方式有二種 (隨個人喜好擇一即可):更改 ports-supfile、更改 /etc/make.conf

 #cd /usr/share/examples/cvsup            //路徑
 #cp ports-supfile /usr/                  //放到 /usr 下 (看你高興要放哪)
 #cd /usr                                          
 #vi ports-supfile                        //修改原更新站台位置內容如下
 default host CHANGE_THIS.FreeBSD.org     //官方站台 (預設值)
 default host cvsup.tw.freebsd.org        //改為國內站台交大資工如此下載速度較快 (還有 cvsup1 ~ 15 都可使用)      

若使用 FreeBSD 6.2-RELEASE 或之後的版本則 /etc/make.conf 內容其中一行關於 csup 執行檔的路徑修改一下即可 (因為 csup 指令要改為 Base System 路徑)

 SUP_UPDATE=yes
 SUP=/usr/local/bin/csup                  //用於使用 Ports 安裝的路徑
 SUP=/usr/bin/csup                        //用於 Base System 的路徑
 SUPFLAGS=-L 2
 SUPHOST=cvsup.tw.FreeBSD.org
 PORTSSUPFILE=/usr/share/examples/cvsup/ports-supfile                  

步驟4.更新 Ports Tree

 #cd /usr                          //切換路徑
 #rehash                           //才不會出現指令無效訊息 (csup: Command not found.)
 #csup -L 2 ports-supfile          //開始更新 Ports Tree
 #cd /usr/ports                    //切換路徑
 #make update                      //開始更新 Ports Tree

步驟5.更新 Ports Tree 訊息

執行更新 Ports Tree 指令後可以看到更新的站台及 Ports Tree 版本及哪些檔案被更新、刪除,更新 Ports Tree 完成後可查看 /usr/ports/UPDATING 檔案了解更新 Ports Tree 日期即相關資訊 (例如: 升級某套件需注意的事項...等)

若看到下列訊息則代表更新 Ports Tree 途中因為某些因素中斷了更新,再執行一次指令更新 Ports Tree 吧

 Suspended

若看到以下訊息則代表 Ports Tree 更新完畢

 Shutting down connection to server
 Finished successfully

步驟6.更新 Ports Tree Index

更新 Ports Tree 完畢之後請執行下列指令 (隨個人喜好擇一即可) 來更新 Ports Tree 的 Index 檔 (索引檔)

 #cd /usr/ports ; make fetchindex        //方法一
 #portsdb -Uu                            //方法二

之後若安裝完 Ports Tree 內套件之後想清除不需要的 Distfiles、Working Folder、Old Shared Libraries...等可鍵入如下指令

 #portsclean -CDLP

若安裝完 Ports Tree 內套件想查詢目前系統共安裝了那些套件可鍵入如下指令

 #pkg_info | more                                 //顯示系統所安裝的全部套件
 #pkg_info -L 套件名稱 (ex. screen-4.0.2_1)       //顯示該套件安裝哪些檔案在系統內

參考

[Csup - a rewrite of CVSup in C]

[ chinsan - 新式的更新方式 csup]

MeFAQ

Q1.無法成功安裝 csup?

Error Meaage:

安裝 csup 無法成功 make install 到一半就跳出如下錯誤訊息

 #make ===> Vulnerability check disabled, database not found 
 => csup-snap-20060318.tgz doesn't seem to exist in /usr/ports/distfiles/.
 => Attempting to fetch from ftp://ftp5.tw.freebsd.org/pub/FreeBSD/distfiles//. csup-snap-20060318.tgz 100% of 77 kB 51 kBps
 ===> Extracting for csup-20060318
  => MD5 Checksum OK for csup-snap-20060318.tgz. 
 => SHA256 Checksum OK for csup- 
 ===> Patching for csup-20060318 
 ===> Applying FreeBSD patches for csup-20060318 Ignoring previously applied (or reversed) patch. 7 out of 7 hunks ignored--saving rejects to proto.c.rej
 => Patch patch-proto.c failed to apply cleanly. 
 *** Error code 1 Stop in /usr/ports/net/csup.  

Ans:

似乎是 patch-proto.c 有問題的樣子,利用 chinsan 提供的 csup.shar 來安裝吧

 #fetch http://chinsan2.twbbs.org/csup.shar ; sh csup.shar ; rm csup.shar
 #cd /usr/ports/net/csup ; make install clean

Q2.無法 make?

Error Meaage:

執行 make install clean 指令安裝某個套件時跳出如下錯誤訊息指示無法執行 make 動作

 #make install clean
 ===>  Building for sysmon-0.92.2
 (cd src; make )
 make: don't know how to make //ftp.tw.freebsd.org/pub/FreeBSD/distfiles//. Stop
 *** Error code 2
 Stop in /usr/ports/net-mgmt/sysmon/work/sysmon-0.92.2.
 *** Error code 1
 Stop in /usr/ports/net-mgmt/sysmon.

Ans:

原因在於 /etc/make.conf 中每個 MASTER_SITE 網址最後面不可以有空格,此次原因為其中有一行結尾有 空格 而 ftp.tw.freebsd.org 是最後一行所以報錯時說錯誤為最後一行,將空格刪除後即可正常 make install clean.

Go To Oddmuse OrgGo To FreeBSD OrgCreative Commons 2.5 Taiwansitestates.com