Portsnap - 更新 Port Tree

前言

Portsnap - Secure FreeBSD ports tree updating 是由 Colin Percival 所開發的新系統,目標是取代以往使用 cvsup 更新 Ports Tree 的工作,Portsnap 比起原先的 cvsup 擁有以下的優點:


  • Portsnap 因為採用 HTTP Protocol,因此能結合 HTTP Proxy Server Cache 或其它 HTTP 修改 Proxy Cache 機制以節省頻寬,並且採用 Port 80 通行所以不需要更動到防火牆設定 (使用傳統 cvsup 則需打開 Port 5999 / TCP)。
  • Portsnap 使用 SHA-1 紀錄 Publickey Fingerprint,然後利用 Public Key 檢查下載的資料因此安全性較高。
  • Portsnap 類似於 CTM 更新機制,也就是每次更新只傳輸 diff 檔 (以及電子簽章),對於用戶端來說只需要 Patch 部分的檔案,對於伺服器端只需要提供 HTTP Download 因此更新速度更快。
  • Portsnap 於 FreeBSD 5-STABLE (2005/11/14 之後的版本),以及 FreeBSD 6.0 已內建到 Base System (4.x -RELEASE 及 5.5 -RELEASE 之前的版本,則需使用 Ports 安裝 /usr/ports/sysutils/portsnap)。





實作環境

  • FreeBSD 6.0-RELEASE
  • 內建 portsnap





安裝及設定

步驟1.修改 portsnap 設定檔 (portsnap.conf)

修改 portsnap 設定檔 (/etc/portsnap.conf) 將下載主機修改為離主機較近的 Portsnap Proxy Host。
vi /etc/portsnap.conf
 SERVERNAME=portsnap.FreeBSD.org      //預設值
 SERVERNAME=portsnap.tw.FreeBSD.org   //修改為離我們較近的主機
 SERVERNAME=portsnap.webamp.cc        //使用 Giga Portsnap Proxy




步驟2.更新 Port Tree

第一次使用 Portsnap 時需先取得 Ports System 的 Snapshot 並解開,鍵入如下指令即可:
portsnap fetch extract
日後要更新時 /usr/ports (Port Tree) 則執行如下指令即可:
portsnap fetch update      



步驟3.查看 Ports Tree 是否更新

執行完 Portsnap 更新 Ports Tree 後查看一下系統中的 Ports Tree 是否確實更新。
less /usr/ports/UPDATING           //查看 Ports Tree 更新說明檔
 20060212:                             //是否為較新的日期
  AFFECTS: users of mail/dcc-dccd
  AUTHOR: ehaupt@FreeBSD.org






參考