sudo apt clean 可清空 /var/cache/apt/archives/,但精细化清理需区分缓存类型、保留必要.deb包、避免重复下载,尤其适用于树莓派等资源受限设备。

直接运行 sudo apt clean 能清空 /var/cache/apt/archives/,但“精细化清理”关键在于分清缓存类型、保留必要文件、避免重复下载,尤其对树莓派、老旧设备或根分区紧张的系统特别实用。
看清缓存构成再动手
/var/cache/apt/archives/ 存放已完整下载的 .deb 包,partial/ 子目录则放未下完的临时文件。真正占空间的是前者——它不随软件安装自动清理,久而久之可能累积几百MB甚至1GB以上。先确认实际占用:
-
sudo du -sh /var/cache/apt/archives—— 查总大小 -
ls -lh /var/cache/apt/archives | head -n 5—— 看几个最大包,常是内核、桌面环境、编译工具链等大体积包 -
ls /var/cache/apt/archives/partial/—— 若有残留,说明之前中断过下载,可安全删掉
按需选择三种清理方式
别一上来就 clean,先判断你当前需求:
-
只想腾出空间,且近期不重装/降级软件 → 用
sudo apt autoclean:只删那些源里已不存在的老版本包(比如你装了firefox_124,源里只剩125,那124的 deb 就被删),保留当前可用版本,最稳妥 -
确定不需要任何缓存,追求最大释放 → 用
sudo apt clean:清空整个archives/和partial/,不留痕迹;下次apt install会重新下载,适合网络稳定或带宽充裕场景 -
刚升级完系统,想顺手删旧内核残留包 → 先
sudo apt autoremove --purge,再autoclean:因为旧内核的linux-image-*deb 常卡在缓存里,autoremove不动它,autoclean才能识别并清理
配合检查与预防更省心
清理后建议做两件事,防止反复爆满:
-
确认是否真释放了空间:再跑一次
df -h /,对比Avail列;若没变化,可能是有进程还占着已删文件(用sudo lsof +L1查) -
限制未来缓存增长:编辑
/etc/apt/apt.conf.d/20archive(可新建),加入:
APT::Archive::MaxAge "30";
APT::Archive::MinAge "2";
APT::Archive::MaxSize "500 MB";
这样autoclean会自动清理超30天的老包,且缓存总量不超500MB
注意绕开两个常见坑
有些操作看似省事,实则风险高或无效:
- 别手动
rm -rf /var/cache/apt/archives/*:可能误删正在使用的 partial 文件,导致后续 apt 报错;用apt clean更安全 - 别指望
apt clean清理/var/lib/apt/lists/:那是软件源索引,不是缓存包,删了会导致apt update失败;如需清理索引,用sudo rm -rf /var/lib/apt/lists/*+sudo apt update


















