温馨提示×

debian缓存过期时间设置

小樊
43
2026-01-01 08:01:52
栏目: 智能运维

适用范围与概念

  • Debian 中,大家最常需要控制的是 APT 包管理器的元数据与软件包缓存过期策略,以及本地已下载 .deb 包文件 的保留策略。前者决定索引是否“新鲜”、是否重新下载,后者决定磁盘上旧包何时被清理。

APT元数据缓存过期设置

  • 永久配置(推荐)
    • 创建或编辑文件:/etc/apt/apt.conf.d/99cache-control
    • 写入(示例为缓存有效期 7 天 = 604800 秒):
      Acquire::http::Cache-Control "max-age=604800";
      Acquire::https::Cache-Control "max-age=604800";
      Acquire::ftp::Cache-Control  "max-age=604800";
      
    • 保存后执行更新:sudo apt update。上述配置会让 APT 在向镜像站请求索引/包时携带 Cache-Control: max-age=…,由镜像/CDN决定是否返回 304 Not Modified 或新数据。注意:最终是否使用本地过期由镜像站策略与 HTTP 头决定,客户端只能“建议”。
  • 命令行临时使用
    • 若只想本次生效,可借助环境变量(示例 7 天):
      sudo apt -o Acquire::http::Cache-Control="max-age=604800" update
      sudo apt -o Acquire::https::Cache-Control="max-age=604800" update
      
  • 验证与观察
    • 查看索引是否命中/更新:运行 apt update 时观察返回码与下载量变化;用 apt-cache policy 查看各镜像源的优先级与版本信息(用于判断是否从期望源获取)。

本地包文件缓存清理策略

  • 常用清理命令
    • sudo apt-get clean:清空 /var/cache/apt/archives/ 中所有已下载 .deb 包,释放空间(最激进)。
    • sudo apt-get autoclean:仅删除“过期”的包文件(即已无法再从仓库获取的旧版本),保留仍可用的包,适合日常维护。
    • sudo apt-get autoremove:删除不再需要的依赖包,常与清理配合使用。
  • 何时使用
    • 磁盘空间紧张或镜像切换后,优先用 autoclean;需要彻底重置则用 clean

进阶 使用本地缓存服务器统一控制过期

  • 在团队或弱网环境,可部署 APT-CACHER-NG 作为本地缓存代理,统一缓存所有 Debian 包请求,便于集中设置缓存规则、加速下载并降低外网带宽占用。
  • 也可结合 Nexus Repository Manager 3 OSSSQUID 搭建更通用的代理/缓存层,分别对接多种仓库与协议,统一过期与命中策略。

0