P2P(Peer-to-Peer),即“点对点技术”,我们也可以理解为用户与用户之间直接的数据传递,典型的 P2P 技术代表如:BT、电驴。
有很多 Linux 用户曾经梦想过,如果能像 BT、电驴一样来进行软件包的高速传递,那该多好啊——不但加快自己的速度,还能与别人分享自己下载来的软件包——真正做到“人人为我,我为人人”。
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://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 运行情况的方法:
在浏览器地址栏中输入 :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