P2P(Peer-to-Peer),即“點對點技術”,我們也可以理解為用戶與用戶之間直接的數據傳遞,典型的 P2P 技術代表如:BT、電驢。
有很多 Linux 用戶曾經夢想過,如果能像 BT、電驢一樣來進行軟件包的高速傳遞,那該多好啊——不但加快自己的速度,還能與別人分享自己下載來的軟件包——真正做到“人人為我,我為人人”。
apt-p2p 就是這麼一個夢想中的東西。
官方網站:http://www.camrdale.org/apt-p2p/
apt-p2p,顧名思義,就是用戶與用戶之間直接進行 deb 軟件包的傳遞。
P2P更新軟件包的優勢:
* 即能從用戶節點中獲取軟件包,同時又能從官方源中下載
* 使用 apt-p2p 的人越多,軟件包的傳遞效率就越高、速度越快
* 低 CPU 和內存資源消耗
*先進行哈希校驗,之後才進行軟件包的傳遞,最大限度地確保安全、避免下載到損壞的包
P2P更新軟件包的弊端:
* 如果使用 apt-p2p 的人不多,速度可能還不及原裝的 apt-get。
* 盡管機率非常小,但仍可能遭遇到潛在的哈希欺騙,進而引發系統安全隱患
目前,在國內使用 apt-p2p 的人的確不多,這一情況可能是制約 apt-p2p 在天朝推廣的最主要原因。但如果人人都不去支持 apt-p2p,那 apt-p2p 又如何發展得起來呢?我們又如何才能獲得 apt-p2p 的便利呢?
步驟方法
1、准備依賴環境
sudo apt-get install python python-apt python-twisted python-twisted-web2
2、安裝 apt-p2p
sudo apt-get install apt-p2p
3、修改軟件源列表(注:第三方源不用也不必修改)
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup //備份軟件源
sudo sed -i 's%http://%http://localhost:9977/%g' /etc/apt/sources.list
4、根據需要配置apt-p2p
sudo gedit /etc/apt-p2p/apt-p2p.conf
其中
“PORT = ”指定 apt-p2p 使用的端口,默認為“9977”。當然,你也可以指定它為“9527”,只是要確保與《/etc/apt/sources.list》中的修改值一致
“UPLOAD_LIMIT = ”指定最大上傳速度,默認為“0”即不限速,建議設置為“10~50”(KB/秒)
“MIN_DOWNLOAD_PEERS = ”是指定當可用的 prees 節點少於多少時,才開始從官方源下載,建議使用默認值“3”
“CACHE_DIR = ”是指定 apt-p2p 的軟件包緩存目錄,建議使用默認值
“OTHER_DIRS = ”是指定額外的軟件包目錄。注意:一旦指定,在該目錄下的所有文件都會被上傳
“UPLOAD_LIMIT = ”指定是否進行軟件包下載數據列表統計並公布。默認為“yes”即進行公布,若你的電腦對保密等級要求特別高,那請設置為“no”
“DHT-ONLY = ”是否僅只使用分布式散列表提供的資源,建議使用默認值“no”
5、若是裝有防火牆,須將“9967”、“9977”端口開放;若是使用路由器,還需要進行映射設置
6、重新啟動 apt-p2p,以應用新配置
sudo rm -rf /var/cache/apt-p2p/cache/*
sudo /etc/init.d/apt-p2p restart
7、開始更新、升級系統或安裝軟件包
sudo apt-get update sudo apt-get upgrade
更新,安裝或使用軟件包則仍然使用apt-get命令
例如安裝MYSQL則輸入apt-get install apt-get
說明:有的教程說要禁用第三方源,但就鄙人實際使用下來的情況,就算不禁用第三方源也沒有什麼影響
檢視 apt-p2p 運行情況的方法:
在浏覽器地址欄中輸入 http://localhost:9977/,即可察看相關信息
卸載 apt-p2p 的方法:
sudo apt-get remove --purge apt-p2p
sudo cp /etc/apt/sources.list.backup /etc/apt/sources.list
sudo rm -rf /var/cache/apt-p2p/*
sudo apt-get update