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

CSUP-更新 Security Patch

前言

[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)

實作環境

安裝及設定

若您使用的是 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.修改 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       //改為國內站台交大資工如此下載速度較快 (還有cvsup1 ~ 13 都可使用)      
 *default release=cvs tag=RELENG_6        //預設值
 *default release=cvs tag=RELENG_6_0      //修改後,(FreeBSD 6.0 Release) 只有安全性更新會進入這個 Branch 的 Source Code

步驟4.下載 Security Patch

在更新 Security Patch 以前為了避免因為系統時間不準確而造成之後執行 make 指令時可能會失敗?我們先以 ntpdate 指令來進行網路對時

 #ntpdate -s watch.stdtime.gov.tw

更新 Security Patch 方式有二種 (隨個人喜好擇一即可):更改 stable-supfile、更改 /etc/make.conf

 #cd /usr/share/examples/cvsup                     //切換路徑
 #rehash                                           //才不會出現指令無效訊息 (cvsup: Command not found.)
 #csup -L 2 stable-supfile                         //開始更新 
 #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

步驟5.更新 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

參考

[Csup - a rewrite of CVSup in C]

[chinsan - FreeBSD 版號後面的 p 與 # 意思]

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

[FreeBSD 使用手冊 - 21.4 重新編譯 world]

[雄的 FreeBSD 筆記‧系統升級 make world]

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