CSUP - 更新 Security Patch

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。本篇為說明利用 csup 更新系統安全性更新 (Security Patch)。


下列為更新系統安全性更新 (Security Patch) 操作步驟,其中第二、三步驟指令可簡化為 make kernel (配合/etc/make.conf) 即可。
  1. 編譯所有的系統程式 (make buildworld)
  2. 編譯新的系統核心 (make buildkernel)
  3. 安裝新的系統核心 (make installkernel)
  4. 安裝新的系統程式 (make installworld)





文章目錄

1、前言
2、實作環境
3、安裝及設定
          步驟1.安裝 csup 套件
          步驟2.Ports Tree 相關檔案說明
          步驟3.修改 Main Source Tree 更新設定檔 (stable-supfile)
          步驟4.下載 Security Patch
          步驟5.下載 Security Patch 更新訊息
          步驟6.更新 Security Patch
4、參考





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.修改 Main Source Tree 更新設定檔 (stable-supfile)

修改 stable-supfile 內容。
cd /usr/share/examples/cvsup
vi stable-supfile
 *default host=CHANGE_THIS.FreeBSD.org   //官方站台 (預設值)
 *default host=cvsup.tw.freebsd.org      //改為國內站台
 *default release=cvs tag=RELENG_6       //預設值
 *default release=cvs tag=RELENG_6_0     //修改後




步驟4.下載 Security Patch

在更新 Security Patch 以前為了避免因為系統時間不準確而造成之後執行 make 指令時可能會失敗?我們先以 ntpdate 指令來進行網路對時。
ntpdate -s watch.stdtime.gov.tw
更新 Security Patch 方式有二種 (隨個人喜好擇一即可):修改 stable-supfile、修改 /etc/make.conf

方式一、修改 stable-supfile 其更新 Security Patch 方式如下:
cd /usr/share/examples/cvsup     //切換路徑
csup -L 2 stable-supfile          //開始更新 


方式二、修改 /etc/make.conf 其更新 Security Patch 方式如下:
vi /etc/make.conf
 KERNCONF=XEON                                     //指定要編譯的核心設定檔名稱
 SUP_UPDATE=yes                                    //自動呼叫 csup 更新
 SUP=/usr/local/bin/csup                           //指定 csup 的程式路徑
 SUPFLAGS=-L 2                                     //採用的 csup 參數
 SUPHOST=cvsup.tw.FreeBSD.org                      //指定 csup 的主機網址
 SUPFILE=/usr/share/examples/cvsup/stable-supfile  //指定使用哪一個 supfile 範本


修改完 /etc/make.conf 後即可鍵入如下指令來執行更新 Security Patch。
cd /usr/src ; make update



步驟5.下載 Security Patch 更新訊息

執行更新 Security Patch 指令後可以看到更新的站台及 Security Patch 版本及哪些檔案被更新、刪除,更新 Security Patch 完成後可查看 /usr/src/UPDATING 檔案了解更新 /usr/src/UPDATING 編號 (-px) 及相關資訊 (例如: 修正哪些安全性更新...等)。

若看到下列訊息則代表更新 Security Patch 途中因為某些因素中斷了更新,再執行一次指令更新 Security Patch 吧。
 Suspended
若看到以下訊息則代表 Ports Tree 更新完畢。
 Shutting down connection to server
 Finished successfully




步驟6.更新 Security Patch

若您的系統為 FreeBSD 4.x 或 FreeBSD 5.1、5.2 那麼您只要執行如下一行指令即可打完收功 (也就是一行指令搞定編輯 / 安裝系統程式、系統核心)。
  1. 編譯所有的系統程式 (make buildworld)
  2. 編譯新的系統核心 (make buildkernel)
  3. 安裝新的系統核心 (make installkernel)
  4. 安裝新的系統程式 (make installworld)
cd /usr/src
make world kernel    //適用於 FreeBSD 4.x
make kernel world    //適用於 FreeBSD 5.1、5.2
# reboot 


若您的系統為 FreeBSD 5.3 或之後的版本則因為 make world 必須分開執行 (否則將出現錯誤訊息),所以請執行如下指令 (詳細內容請參考 /usr/src/Makefile)。
cd /usr/src
make buildworld kernel //等於 make buildworld + make buildkernel + make installkernel
reboot
make installworld
reboot


編輯 / 安裝系統程式及系統核心後,當系統重新開機完成後請鍵入如下指令即可發現 FreeBSD 之後多出了 -px
uname -a
 FreeBSD 6.0-RELEASE-p7






4、參考