Debian 的“缓存失效”通常指 APT 缓存(/var/cache/apt/archives) 或 软件源元数据缓存(/var/lib/apt/lists) 没有按预期工作。下面按常见原因和排查思路说明。
Debian 默认会定期清理旧缓存:
apt-get clean # 清空所有缓存
apt-get autoclean # 只删除过期缓存
如果你或脚本执行过:
apt-get clean
那么缓存一定是空的。
✅ 检查:
ls /var/cache/apt/archives
以下情况也会“悄悄”清缓存:
cron / systemd timer常见于 Dockerfile:
RUN apt-get update && apt-get install -y xxx && apt-get clean
当 /var 分区满时:
✅ 检查:
df -h /var
某些配置会限制缓存行为:
/etc/apt/apt.conf
/etc/apt/apt.conf.d/*
例如:
APT::AutoRemove::RecommendsImportant "false";
Dir::Cache::archives "";
apt-get update 未执行或失败如果:
会导致:
Unable to locate package
✅ 解决:
apt-get update
常见问题:
✅ 检查:
cat /etc/apt/sources.list
ls /etc/apt/sources.list.d/
rm -rf /var/lib/apt/lists/*
这会强制重新下载索引。
apt-get clean 是“最佳实践”✅ 这是预期行为,不是故障。
| 现象 | 问题类型 |
|---|---|
/var/cache/apt/archives 为空 |
包缓存被清 |
apt update 后还报错 |
索引缓存失效 |
| Docker 每次都重新下载 | 层级缓存机制 |
| 安装慢但无错误 | 缓存未命中 |
apt-get install -y xxx
# 不要执行 apt-get clean
apt-get update
grep -R cache /etc/apt/
你可以直接贴出:
cat /etc/os-release)我可以给你精确到配置级别的原因和修复方案。