Debian中安装使用apt-p2p来构建软件包缓存的教程
本人家里有好几台运行Debian GNU/Linux testing的计算机,共处于一个小局域网内。因为Debian testing是滚动更新的,所以我每隔几天就要把它们全部更新一遍。但是一来中国家庭的网速还是说不上很快,每台机器都要从上游软件源的服务器上下载成百上千兆字节的软件包要花不少时间;二来这样操作也给软件源的服务器造成不小的负担。
apt-p2p,顾名思义,就是用户与用户之间直接进行 deb 软件包的传递。
后来我想起Debian曾开发过一个叫apt-p2p的软件,它的设计初衷是缓存已下载的软件包提供给其他同样运行着apt-p2p的peers,作为从软件源下载的补充。那么是否可以用这个软件在局域网内搭建一个Debian软件包缓存呢?
apt-p2p拥有着 P2P 技术的优势:
# * 即能从用户节点中获取软件包,同时又能从官方源中下载
# * 使用 apt-p2p 的人越多,软件包的传递效率就越高、速度越快
# * 低 CPU 和内存资源消耗
# *先进行哈希校验,之后才进行软件包的传递,最大限度地确保安全、避免下载到损坏的包
但同样,它也存在着 P2P 的弊端:
# * 如果使用 apt-p2p 的人不多,速度可能还不及原装的 apt-get。
# * 尽管机率非常小,但仍可能遭遇到潜在的哈希欺骗,进而引发系统安全隐患
目前,在天朝境内使用 apt-p2p 的人的确不多,这一情况可能是制约 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-p2p 运行情况的方法:
在浏览器地址栏中输入 http://localhost:9977/,即可察看相关信息
本地软件包缓存搭建方法:
apt-p2p由Python写成,安装好后默认监听于TCP和UDP的9977端口,可通过/etc/apt-p2p/apt-p2p.conf改变其行为。TCP端口同时用于本机apt下载软件包,而UDP端口用于组建在p2p文件共享工具中常见的DHT网络。只需要在/etc/apt/sources.list文件中软件源的url,例如http://mirror.server/debian/的服务器域名前面插入localhost:9977,即成为http://localhost:9977/mirror.server/debian/,具体从互联网上获取软件包的工作便交给apt-p2p负责了:
当收到来自本机apt的文件下载请求时,apt-p2p会先检测文件是否已经存在于缓存的目录树中
如果已存在,则还要检查是否为最新(通过向软件源服务器发出HEAD请求来实现)
如果是,则直接返回缓存的文件
否则从互联网上下载文件供给apt,同时存入缓存并记录其散列值
下载文件会首先尝试从peer处下载,不成再到软件源服务器处下载
缓存下来的文件和散列值可供其他peer使用。可以通过apt-p2p的日志文件/var/log/apt-p2p.log深入观测这一过程。
以下是我安装了apt-p2p的主机mycastle的sources.list:
复制代码代码如下:
deb http://localhost:9977/mirrors.ustc.edu.cn/debian/ testing main
deb-src http://localhost:9977/mirrors.ustc.edu.cn/debian/ testing main
deb http://localhost:9977/mirrors.ustc.edu.cn/debian-security/ testing/updates main
deb-src http://localhost:9977/mirrors.ustc.edu.cn/debian-security testing/updates main
deb http://localhost:9977/mirrors.ustc.edu.cn/debian/ testing-proposed-updates main
deb-src http://localhost:9977/mirrors.ustc.edu.cn/debian/ testing-proposed-updates main
deb http://localhost:9977/mirrors.ustc.edu.cn/debian/ unstable main
deb-src http://localhost:9977/mirrors.ustc.edu.cn/debian/ unstable main
然而apt-p2p的缓存只能给本机使用,其他主机若试图直接访问9977端口只会得到404错误。因此还需要在安装apt-p2p的主机上架设一个http反向代理,使得在apt-p2p看来,所有的请求均来自本机。
我使用的反向代理是Pound,它在安装好后默认是禁用的。在/etc/pound/pound.cfg中配置好服务器后再到/etc/default/pound中启用它,然后使用service启动服务器即可。
我使用的配置如下:
复制代码代码如下:
...(keep default)
ListenHTTP
Address 0.0.0.0
Port9978
## allow PUT and DELETE also (by default only GET, POST and HEAD)?:
xHTTP 0
Service
BackEnd
Address 127.0.0.1
Port9977
End
End
End
监听于9978端口,后台服务器在本机的9977端口。
这样一来,其他主机便也可以通过9978端口使用apt-p2p的缓存了。我的做法是在打算使用缓存的其他主机上将/etc/apt/sources.list移动到/etc/apt/sources.list.d/50_main.list,然后仿照缓存主机的软件源列表建立/etc/apt/sources.list.d/10_apt-p2p-home.list,只是要把url中的localhost:9977换成
复制代码代码如下:
10_apt-p2p-home.list:/p
deb http://mycastle.local:9978/mirrors.ustc.edu.cn/debian/ testing main
deb-src http://mycastle.local:9978/mirrors.ustc.edu.cn/debian/ testing main
deb http://mycastle.local:9978/mirrors.ustc.edu.cn/debian-security/ testing/updates main
deb-src http://mycastle.local:9978/mirrors.ustc.edu.cn/debian-security testing/updates main
deb http://mycastle.local:9978/mirrors.ustc.edu.cn/debian/ testing-proposed-updates main
deb-src http://mycastle.local:9978/mirrors.ustc.edu.cn/debian/ testing-proposed-updates main
deb http://mycastle.local:9978/mirrors.ustc.edu.cn/debian/ unstable main
deb-src http://mycastle.local:9978/mirrors.ustc.edu.cn/debian/ unstable main
50_main.list:
deb http://mirrors.ustc.edu.cn/debian/ testing main
deb-src http://mirrors.ustc.edu.cn/debian/ testing main
deb http://mirrors.ustc.edu.cn/debian-security/ testing/updates main
deb-src http://mirrors.ustc.edu.cn/debian-security testing/updates main
deb http://mirrors.ustc.edu.cn/debian/ testing-proposed-updates main
deb-src http://mirrors.ustc.edu.cn/debian/ testing-proposed-updates main
deb http://mirrors.ustc.edu.cn/debian/ unstable main
deb-src http://mirrors.ustc.edu.cn/debian/ unstable main
如安装了apt-transport-https,可以将50_main.list中的http换成https。
<>
这种以主机名加“.local”的域名格式是mDNS/DNS-SD协议提供的一种在广播域内定位主机和发布服务的方法,主要实现有Avahi和Mac OS X的Bonjour。
这样一来,在局域网内,任何一台主机都优先通过apt-p2p获取软件包,一台更新可以惠及全家;即使短时间内更新多台主机,也只需要向软件源索取一次;而且大规模的数据流动发生在带宽很高的局域网内,更缩短了更新时间,提高了效率。
只是这样一来相当于在非缓存主机上配置了两个软件源,而当这两个软件源重复部分的信息不同步时(如笔记本计算机在局域网外更新了直连软件源服务器的软件包列表),apt-get source是无法使用的,因为apt对源码包的检查更严格。
推荐系统
番茄花园 Windows 10 极速企业版 版本1903 2022年7月(32位) ISO镜像快速下载
语言:中文版系统大小:3.98GB系统类型:Win10番茄花园 Windows 10 32位极速企业版 v2022年7月 一、系统主要特点: 使用微软Win10正式发布的企业TLSB版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过程中自动激活
新萝卜家园电脑城专用系统 Windows10 x86 企业版 版本1507 2022年7月(32位) ISO镜像高速下载
语言:中文版系统大小:3.98GB系统类型:Win10新萝卜家园电脑城专用系统 Windows10 x86企业版 2022年7月 一、系统主要特点: 使用微软Win10正式发布的企业TLSB版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过程
笔记本&台式机专用系统 Windows10 企业版 版本1903 2022年7月(32位) ISO镜像快速下载
语言:中文版系统大小:3.98GB系统类型:Win10笔记本台式机专用系统 Windows 10 32位企业版 v2022年7月 一、系统主要特点: 使用微软Win10正式发布的企业TLSB版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过
笔记本&台式机专用系统 Windows10 企业版 版本1903 2022年7月(64位) 提供下载
语言:中文版系统大小:3.98GB系统类型:Win10笔记本台式机专用系统 Windows10 64专业版 v2022年7月 一、系统主要特点: 使用微软Win10正式发布的专业版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过程中自动
雨林木风 Windows10 x64 企业装机版 版本1903 2022年7月(64位) ISO镜像高速下载
语言:中文版系统大小:3.98GB系统类型:Win10新雨林木风 Windows10 x64 企业装机版 2022年7月 一、系统主要特点: 使用微软Win10正式发布的企业TLSB版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过程中自动激活
深度技术 Windows 10 x64 企业版 电脑城装机版 版本1903 2022年7月(64位) 高速下载
语言:中文版系统大小:3.98GB系统类型:Win10深度技术 Windows 10 x64 企业TLSB 电脑城装机版2022年7月 一、系统主要特点: 使用微软Win10正式发布的企业TLSB版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过程
电脑公司 装机专用系统Windows10 x64 企业版2022年7月(64位) ISO镜像高速下载
语言:中文版系统大小:3.98GB系统类型:Win10电脑公司 装机专用系统 Windows10 x64 企业TLSB版2022年7月一、系统主要特点: 使用微软Win10正式发布的企业TLSB版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过
新雨林木风 Windows10 x86 企业装机版2022年7月(32位) ISO镜像高速下载
语言:中文版系统大小:3.15GB系统类型:Win10新雨林木风 Windows10 x86 专业版 2022年7月 一、系统主要特点: 使用微软Win10正式发布的专业版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过程中自动激活系统,无
相关文章
- 让Win8系统中自带的系统恢复功能与隐藏分区内出厂备份关联的方法
- 怎样使用u大侠win8系统制作u盘
- win8登陆密码取消 win8如何取消密码
- win8.1系统玩剑网三出现闪退的三种原因分析及解决方法
- WinXP、Win7、Win8系统显示文件扩展名的设置方法(图文教程)
- win8.1系统打不开wifi怎么办?win8.1系统打不开wifi的解决方法图文教程
- win8插入U盘没反应USB接口失灵的两种解决办法
- win8系统怎么开启打印机服务 win8系统开启打印机服务操作方法
- win8音频服务未运行图标一直显示红色的叉叉
- Win8.1系统下取消Win10更新提示的方法
- Win8/8.1快速关闭右边桌面超级菜单的方法
- 快速解决win8 system.exe程序磁盘占用100%的教程
- Win8无法开启休眠提示休眠失败的解决方法
- FreeBSD常用指令整理(学习笔记)
热门系统
- 1华硕笔记本&台式机专用系统 GhostWin7 32位正式旗舰版2018年8月(32位)ISO镜像下载
- 2雨林木风 Ghost Win7 SP1 装机版 2020年4月(32位) 提供下载
- 3深度技术 Windows 10 x86 企业版 电脑城装机版2018年10月(32位) ISO镜像免费下载
- 4电脑公司 装机专用系统Windows10 x86喜迎国庆 企业版2020年10月(32位) ISO镜像快速下载
- 5深度技术 Windows 10 x86 企业版 六一节 电脑城装机版 版本1903 2022年6月(32位) ISO镜像免费下载
- 6深度技术 Windows 10 x64 企业版 电脑城装机版2021年1月(64位) 高速下载
- 7新萝卜家园电脑城专用系统 Windows10 x64 企业版2019年10月(64位) ISO镜像免费下载
- 8新萝卜家园 GhostWin7 SP1 最新电脑城极速装机版2018年8月(32位)ISO镜像下载
- 9电脑公司Ghost Win8.1 x32 精选纯净版2022年5月(免激活) ISO镜像高速下载
- 10新萝卜家园Ghost Win8.1 X32 最新纯净版2018年05(自动激活) ISO镜像免费下载
热门文章
- 1华为手环6pro有游泳功能吗-支持游泳模式吗
- 2重装上阵新赛季有哪些重型武器_重装上阵新赛季重型武器列表
- 3系统之家win8笔记本推荐
- 4使用win7中本地搜索功能时四个技巧快速找到文件的操作方如何用win7的搜索功能法
- 5premiere怎么更改素材序列? premiere更改序列设置的方法
- 6天天酷跑布鲁与冰原狼仔哪一个好 布鲁好还是冰原狼仔好
- 7斐讯k1路由器刷Breed BootLoader(不死UBoot)教程
- 8路由器密码忘了怎么办 无线路由器登陆密码忘了解决方法【详解】
- 9战双帕弥什超频晶币极如何获得_战双帕弥什超频晶币极获得方法
- 10Redmi AirDots 3 Pro体验如何 Redmi AirDots 3 Pro详细评测
常用系统
- 1番茄花园Ghost Win8.1 (X32) 六一节 纯净版2022年6月(免激活) ISO镜像免费下载
- 2笔记本系统Ghost Win8.1 (32位) 极速纯净版2021年4月(免激活) ISO镜像高速下载
- 3番茄花园 Windows 10 官方企业版 2020年7月(64位) ISO高速下载
- 4电脑公司Ghost Win8.1 X64位 六一节 纯净版2021年6月(自动激活) ISO镜像快速下载
- 5笔记本&台式机专用系统 GHOSTXPSP3 2021年1月 元旦特别 海驱版 ISO镜像高速下载
- 6雨林木风 Windows10 x64 企业装机版2019年10月(64位) ISO镜像高速下载
- 7电脑公司 GhostXpSp3 电脑城装机版 2020年7月 ISO镜像高速下载
- 8雨林木风Ghost Win8.1 (X64) 极速纯净版2022年4月免激活) ISO镜像高速下载
- 9新萝卜家园 GhostWin7 SP1 电脑城极速稳定版2021年6月(32位) ISO镜像高速下载
- 10番茄花园GhostWin7 SP1电脑城极速装机版2022年5月(32位) 最新高速下载