系统:CentOS 7.9
前言:内网有少量Ubuntu服务器(无法联网),版本都是20.04,想着提供下软件源服务,但是不值得同步庞大的源所有包文件, 正好发现 apt-cacher-ng 这款软件,相当于以代理的模式中转下载并提供缓存,面向Ubuntu、Debian等,恰巧符合我的要求。
部署:
- 使用 docker:sameersbn/apt-cacher-ng 部署
如前言所讲,早先量少,不值得单独一台Ubuntu服务器来部署,于是准备进行容器化部署,在 dockerhub 中找到了 sameersbn/apt-cacher-ng
很可惜,测试中发现客户端安装软件几乎百分百出现 Hash Sum mismatch failures 这个错误,而查看 issue 发现其他人也遇到,而在 issue 中发现了他人推荐的 mbentley/apt-cacher-ng
- 使用 docker:mbentley/apt-cacher-ng 部署
这个镜像很棒,一开始使用起来没有问题(其实也没问题,属于我没有配置好),开始投入正式使用,但之后一次偶然机会安装桌面环境,大量的软件包触发了 HTTP 502 错误,找不到软件包(实际是有的),在查询这一错误时看到引用中的文章,在 CentOS 7 中安装,赶紧试试。
- 使用 centos 部署
这,惯性使然,之前居然没想到在 centos 系统中直接安装(下意识将 apt-cacher-ng 固定在了Debian系),在 centos 中直接包管理器安装即可:
yum -y install apt-cacher-ng
配置文件:/etc/apt-cacher-ng
,修改 acng.conf ,添加一行 PassThroughPattern: .*
允许客户端所有模式请求。
在国内,还应该配置下 /etc/apt-cacher-ng/backends_ubuntu
,用来定义apt-cacher-ng请求的源,默认是官方,第二步的容器部署就是因为此处采用官方默认源,才导致偶尔 502 错误,这里我用的中科大代替,速度杠杠的:
echo "http://mirrors.ustc.edu.cn/ubuntu/" > /etc/apt-cacher-ng/backends_ubuntu
PS:代理 Debian 的话,请添加或修改 backends_debian 文件。
接下来使用 systemctl start apt-cacher-ng
启动服务即可,不要忘记 systemctl enable apt-cacher-ng
设为开机自启动。
使用:
Apt-Cacher-NG默认监听全部地址的 3142 端口,浏览器打开这个端口就有使用方法。
第一种:
添加配置,自动代理:
echo 'Acquire::http::Proxy "http://127.0.0.1:3142";' > /etc/apt/apt.conf.d/00aptproxy
第二种: 修改 source.list 仓库地址:
sed -i "s#archive.ubuntu.com#127.0.0.1:3142/&#g" /etc/apt/sources.list
最后更新下缓存:apt update
完事。
引用: