CentOS7安装Apt-Cacher-NG为Ubuntu_Debian提供软件源服务

系统: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 "" > /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 ":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

完事。

引用:

How To Install apt-cacher-ng on CentOS 7Apt-Cacher-NG User Manual