前言
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