首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在服务器端触发apt-cacher的缓存更新?

如何在服务器端触发apt-cacher的缓存更新?
EN

Ask Ubuntu用户
提问于 2022-06-02 09:11:08
回答 1查看 429关注 0票数 0

我正在服务器上成功地运行apt-cacher-ng,并将它用作使用各种发行版的20+设备/vms的apt代理(除了要求它们使用缓存这一事实之外,我在客户端没有控制权)。

我正在寻找一种方法,在服务器端,当我知道网络使用量很小时,就会触发apt-cacher-ng's缓存的更新。换句话说,我想在服务器端检索代理客户端正在使用的所有dists和代理ppas的所有软件包的最新版本。目标是确保当客户端triger升级时,缓存已经更新的可能性尽可能高(因此,软件包可以立即下载)。

我设想有一个cron作业触发一个脚本,该脚本扫描apt-cacher-ng的S缓存,检索有关缓存、dists、ppas、包的信息,并请求下载所有软件包的最新版本(而不是在本地安装它们)。

不幸的是,我不知道从哪里开始“让它成为现实”,也找不到这样做的工具/脚本(也许这是一个愚蠢的想法,这也是nodody实现它的原因)。

实现这一目标的最佳途径是什么?

EN

回答 1

Ask Ubuntu用户

发布于 2022-06-02 22:52:24

您可以在部分镜像中尝试apt-cacher-ng特性。

可以创建远程包存储库的部分本地镜像。这样做的方法通常称为预缓存。..。浏览器生成的CGI URL可以与其他客户端一起调用,以重复此任务,例如,在每天执行的脚本中。

但是,我认为最好的解决方案是客户端配置APT::Periodic设置。

代码语言:javascript
复制
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";

这种方法的优点

  • 只有需要的软件包才会被下载和缓存。
  • 当客户端升级时,所有的包都将被下载到客户端。
  • apt周期性脚本有内置的随机睡眠,可以保护代理不受大量请求的影响。这还有助于确保如果文件不在缓存中,则只影响第一个客户端。

如果您能够请求客户端使用代理,那么我希望您也可以请求客户端配置定期设置。

所有APT::Periodic选项都在apt.systemd.daily脚本中描述。

代码语言:javascript
复制
#  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)
票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1411876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档