linux

如何用Linux清理系统中的旧版本

小樊
40
2025-10-19 09:11:19
栏目: 智能运维

一、清理旧内核版本(最常见且风险较高的旧版本)
旧内核是系统中最常见的“旧版本”之一,长期积累会占用大量/boot分区空间并导致GRUB菜单冗长。清理时需保留最新的2-3个内核(确保系统崩溃时可回滚),步骤如下:

  1. 查看当前使用的内核:运行uname -r,确认当前运行的内核版本(如6.8.4-060804-generic),避免误删正在使用的版本。
  2. 列出所有已安装的内核
    • Debian/Ubuntu系统:dpkg --list | grep linux-image(筛选ii状态的包,即已安装的内核);
    • Red Hat/CentOS系统:rpm -qa | grep kernel
  3. 删除旧内核包
    • Debian/Ubuntu系统:使用sudo apt-get purge linux-image-x.x.x-xx-generic(替换为旧内核版本号,如linux-image-5.15.0-107-generic);
    • Red Hat/CentOS系统:使用sudo yum remove kernel-x.x.x-xxxxsudo dnf remove kernel-x.x.x-xxxx
  4. 清理残留文件:若/boot目录仍存在旧内核的vmlinuz(内核映像)或initrd.img(初始内存盘)文件,手动删除(如sudo rm /boot/vmlinuz-5.15.0-107-generic),随后更新GRUB配置:sudo update-grub(Debian/Ubuntu)或sudo grub2-mkconfig -o /boot/grub2/grub.cfg(Red Hat/CentOS)。
  5. 自动清理无用内核:运行sudo apt autoremove --purge(Debian/Ubuntu)或sudo dnf autoremove(Red Hat/CentOS),自动移除不再需要的旧内核及依赖。

二、清理旧版本软件包及依赖
软件升级后会遗留旧版本包及无用依赖,占用磁盘空间,可通过以下命令清理:

  1. 清理包缓存
    • Debian/Ubuntu系统:sudo apt-get clean(清理所有软件包缓存);sudo apt-get autoclean(清理旧版本软件包缓存,仅保留最新版本)。
    • Red Hat/CentOS系统:sudo yum clean all(清理所有缓存);sudo dnf clean all(同上,适用于Fedora)。
  2. 自动移除孤立依赖
    • Debian/Ubuntu系统:sudo apt-get autoremove(自动删除不再被任何软件包依赖的孤立包);
    • Red Hat/CentOS系统:sudo yum autoremovesudo dnf autoremove
  3. 手动清理旧版本软件:若包管理器无法卸载旧版本(如手动安装的软件),可找到软件安装目录(如/opt/usr/local),删除主目录及配置文件(如/etc/package-name),或使用dpkg -l | grep ^rc | awk '{print $2}' | sudo xargs dpkg -P(Debian/Ubuntu,清理残留配置文件)。

三、清理旧版本库文件
应用程序升级后,旧版本的库文件(.so)可能残留,占用/usr/lib/lib等目录空间。需谨慎操作,避免删除系统必需的库:

  1. 生成库文件列表:运行sudo ldconfig -p > library_list.txt,记录系统当前使用的库文件。
  2. 分析未使用的库:对比/usr/lib/lib中的库文件与library_list.txt,找出未被引用的旧版本库(需手动确认,避免误删)。
  3. 删除旧库文件:确认无误后,使用sudo rm /usr/lib/old-library.so(替换为实际文件名)删除旧库。

四、清理旧版本文档与帮助文件
/usr/share/doc(软件文档)、/usr/share/man(手册页)等目录可能包含大量旧版本文档,占用空间且很少使用:

  1. 分析目录大小:运行du -h /usr/share/doc | sort -rh | head -n 10(查看/usr/share/doc下最大的10个目录);du -h /usr/share/man | sort -rh | head -n 10(同理查看手册页)。
  2. 删除旧文档:进入对应目录,删除旧版本的文档文件夹(如sudo rm -rf /usr/share/doc/old-package)或手册页(如sudo rm -rf /usr/share/man/man1/old-command.1)。

注意事项

0
看了该问题的人还看了