︿
Top

1、前言

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。




文章目錄

1、前言
2、實作環境
3、安裝及設定
          步驟1.安裝 csup 套件
          步驟2.Ports Tree 相關檔案說明
          步驟3.修改 Ports Tree 更新設定檔 (ports-supfile or make.conf)
          步驟4.更新 Ports Tree
          步驟5.更新 Ports Tree 訊息
          步驟6.更新 Ports Tree Index
4、參考
5、MeFAQ
          Q1.無法成功安裝 csup?
          Q2.無法執行 make 動作?



2、實作環境

  • FreeBSD 6.x-RELEASE
  • csup-20060223_1 



3、安裝及設定

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

步驟 1. 安裝 csup 套件

切換至 Ports Tree 路徑安裝 csup 套件
cd /usr/ports/net/csup    //切換到安裝路徑
make install clean        //安裝套件並清除暫存檔案




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

以下是更新相關檔案所需使用到的 Ports Tree 檔案說明 (/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。

方式一、修改 port-supfile
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     //改為國內站台 (修改後)


方式二、修改 /etc/make.conf
若使用 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

方式一、配合修改 port-supfile 其更新 Ports Tree 方式如下
cd /usr                     //切換路徑
rehash                      //才不會出現指令無效訊息 (csup: Command not found.)
csup -L 2 ports-supfile  //開始更新 Ports Tree


方式二、配合修改 /etc/make.conf 其更新 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) //顯示該套件安裝哪些檔案在系統內




4、參考




5、MeFAQ

Q1. 無法成功安裝 csup?

Error Message:
安裝 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 Message:
執行 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。
文章標籤: