我正在服务器上成功地运行apt-cacher-ng,并将它用作使用各种发行版的20+设备/vms的apt代理(除了要求它们使用缓存这一事实之外,我在客户端没有控制权)。
我正在寻找一种方法,在服务器端,当我知道网络使用量很小时,就会触发apt-cacher-ng's缓存的更新。换句话说,我想在服务器端检索代理客户端正在使用的所有dists和代理ppas的所有软件包的最新版本。目标是确保当客户端triger升级时,缓存已经更新的可能性尽可能高(因此,软件包可以立即下载)。
我设想有一个cron作业触发一个脚本,该脚本扫描apt-cacher-ng的S缓存,检索有关缓存、dists、ppas、包的信息,并请求下载所有软件包的最新版本(而不是在本地安装它们)。
不幸的是,我不知道从哪里开始“让它成为现实”,也找不到这样做的工具/脚本(也许这是一个愚蠢的想法,这也是nodody实现它的原因)。
实现这一目标的最佳途径是什么?
发布于 2022-06-02 22:52:24
您可以在部分镜像中尝试apt-cacher-ng特性。
可以创建远程包存储库的部分本地镜像。这样做的方法通常称为预缓存。..。浏览器生成的CGI URL可以与其他客户端一起调用,以重复此任务,例如,在每天执行的脚本中。
但是,我认为最好的解决方案是客户端配置APT::Periodic设置。
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";这种方法的优点
apt周期性脚本有内置的随机睡眠,可以保护代理不受大量请求的影响。这还有助于确保如果文件不在缓存中,则只影响第一个客户端。如果您能够请求客户端使用代理,那么我希望您也可以请求客户端配置定期设置。
所有APT::Periodic选项都在apt.systemd.daily脚本中描述。
# APT::Periodic::Update-Package-Lists "0";
# - Do "apt-get update" automatically every n-days (0=disable)
#
# APT::Periodic::Download-Upgradeable-Packages "0";
# - Do "apt-get upgrade --download-only" every n-days (0=disable)https://askubuntu.com/questions/1411876
复制相似问题