我有三个 Ubuntu 系统,我希望通过设置下载包的缓存来最小化下载带宽。(只有三个系统,不值得设置全镜像)。
apt-cacher-ng
听起来很适合这个,但在设置了 1 个服务器和 1 个客户端的试用后,它并没有像我预期的那样工作。
当我在客户端上安装软件时,它按预期工作 - 软件包被下载到服务器并存储在服务器的缓存中。
但是当我在服务器上安装软件时,软件包没有被缓存。
这种破坏了apt-cacher-ng
我的实用程序 - 只有两个系统,我最终将下载两次软件包(例如内核更新等)。我希望它能够缓存下载并安装在服务器上的软件包;对我来说,这些套餐与客户的要求之间有很大的重叠。
有没有办法apt-cacher-ng
缓存下载并安装在服务器上的软件包?
要让服务器计算机通过缓存,还需要将其设置为缓存 (
apt
) 客户端。当您按照服务器计算机的apt-cacher-ng
说明apt-cacher-ng
进行操作时,您需要执行将其设置为缓存 ( ) 服务器和缓存 ( ) 客户端的步骤apt
。你意想不到的情况是这样的:对于服务器,将其设置为服务器的主机
Acquire::http::Proxy
名http://localhost:3142
,而不是客户端计算机将代理设置为服务器的主机名。这有效并且更可靠。之后,情况就如预期的那样:服务器计算机(运行 和 的计算机
apt
)apt-cacher-ng
、客户端计算机(仅运行 计算机apt
)、缓存服务器 (apt-cacher-ng
) 和缓存客户端 (apt
) 这 4 个概念不应混淆。在客户端机器上很简单。但在服务器计算机上,它自己的缓存客户端 (apt
) 不会因安装apt-cacher-ng
.apt-cacher-ng
是您运行的一个单独的东西,并且将代理设置为localhost
不会导致循环。事实上,必须设置代理,以便服务器计算机的缓存客户端 (apt
) 通过缓存服务器 (apt-cacher-ng
)(恰好在同一台计算机上运行)才能按预期工作。补充答案,为任何想要这样做的人提供一些提示:
/etc/apt/apt.conf.d
设置代理的文件是世界可读的,否则您sudo
每次执行apt policy
.apt-cacher-ng
。apt-mirror
,但我仍然需要对此进行一些测试。