Ubuntu系统垃圾如何清理 Ubuntu无用依赖与缓存清理详解

作者:袖梨 2026-06-11
清理Ubuntu垃圾需组合使用apt autoremove(删无依赖包,但旧内核常因元包依赖残留)和apt clean(清缓存),并手动处理旧内核、用户缓存及日志,避免误删影响系统功能。

直接说结论:清理 Ubuntu 垃圾不能只靠一个命令,apt autoremoveapt clean 是最常用、最安全的两个起点,但它们各自管不同东西,混用或漏用都会留下大量空间没释放。

为什么 apt autoremove 有时删不掉旧内核

它默认只删“自动安装且当前无依赖”的包,而旧内核(如 linux-image-5.15.0-91-generic)可能仍被 linux-image-generic 元包间接依赖,或被 dpkg 标记为手动安装。结果就是:你运行了 apt autoremovedpkg --list | grep linux-image 一看,七八个旧内核还在 /boot 里占着位置。

  • 先确认当前内核:uname -r,别删这个
  • 查所有已安装内核:dpkg --list | grep 'linux-image-[0-9]' | awk '{print $2}'
  • 手动删指定旧内核:sudo apt purge linux-image-5.15.0-91-generic linux-headers-5.15.0-91-generic
  • 删完必须执行:sudo update-grub,否则启动菜单不更新

apt cleanapt autoclean 的实际差别

两者都针对 /var/cache/apt/archives/,但行为完全不同:

  • apt clean:暴力清空整个目录,删掉所有 .deb 包,包括当前系统正在用的软件的安装包 —— 安全,但重装时需重新下载
  • apt autoclean:只删“仓库里已不存在对应版本”的包(比如你升级了 firefox 从 120 到 122,120 的 deb 就会被删),保留还能用的最新版缓存 —— 更保守,适合带宽受限环境
  • 注意:apt autoclean 不处理 linux-image 这类包,因为内核包在仓库中长期存在,不会被它识别为“过期”

用户级缓存里最容易被忽略的三个坑

~/.cache 看似安全,但直接 rm -rf ~/.cache/* 可能导致部分应用异常启动或丢失会话状态:

  • ~/.cache/thumbnails/:可放心删,文件管理器下次访问图片时自动生成,无副作用
  • ~/.cache/mozilla/firefox/*.default-release/:删前确认没开“恢复上次会话”,否则标签页全丢;更稳妥是进 Firefox 设置 → 隐私与安全 → 清除数据 → 勾选“缓存”
  • ~/.cache/gedit/~/.cache/Code/:VS Code 等编辑器的缓存删了会慢一点首次加载,但不会丢代码;不过 ~/.cache/Code/CachedData/ 下若存有未提交的临时草稿(极少见),建议先关掉编辑器再清

日志和临时文件清理要分场景

/tmp/var/log 不是“越干净越好”,错误清理可能影响诊断或服务稳定性:

  • sudo rm -rf /tmp/*:可行,但注意有些服务(如 systemd 临时 socket)可能正用着 /tmp 下的子目录,强制删可能导致短时中断;推荐改用 sudo systemctl restart systemd-tmpfiles-clean 触发标准清理流程
  • journalctl --vacuum-size=100M:比 --vacuum-time=7d 更可靠,因为日志写入速率不均,按天删可能某天就爆掉 500MB;设大小上限更防意外
  • 别碰 /var/log/journal/ 下的原始目录结构 —— 直接删文件可能破坏 journal 索引,必须用 journalctl 自带命令

真正麻烦的从来不是“该不该删”,而是“删完谁还指着它活”。比如 autoremove 顺手把 libreoffice-l10n-zh-cn 删了,中文界面就变英文;clean 后想回滚某个 deb 包,发现得翻镜像站找旧版本。留一个当前+一个上一版内核、留一份 apt autoclean 缓存、定期用 ncdu / 看一眼大目录,比追求“彻底干净”实用得多。

相关文章

精彩推荐