直接用 package-cleanup --cleandupes 可自动化清理重复包,它基于 NEVRA 精确比对,仅保留每个软件名的最高版本实例,删除其余旧版本,前提是已安装 yum-utils 且系统依赖正常。

直接用 package-cleanup --cleandupes 就能自动化清理重复包,它会自动识别所有重复安装的软件包,并只保留每个软件的新版本,删掉旧版本。前提是已安装 yum-utils,且系统未处于严重依赖损坏状态。
确保基础工具就位
检查是否已安装 yum-utils:
yum list installed yum-utils
如未安装,运行:
sudo yum install -y yum-utils
该工具是 package-cleanup 的载体,没有它,命令不可用。
分步执行自动化清理
整个过程无需人工逐个确认旧包名,全部由工具自动判断和操作:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 先清理可能干扰的残留事务:
sudo yum-complete-transaction --cleanup-only - 清空缓存避免元数据混淆:
sudo yum clean all - 扫描重复包(预览):
package-cleanup --dupes(可选,用于观察有哪些重复) - 一键清理旧版本重复包:
sudo package-cleanup --cleandupes - 验证结果并修复潜在问题:
sudo package-cleanup --problems;如有输出,再执行sudo yum update
关键行为说明
--cleandupes 不是简单删除所有同名包,而是按 NEVRA(名称-版本-发布-架构)精确比对,对每个软件名,仅保留版本号最高的那个安装实例,其余全部卸载。例如同时存在:
python3-3.6.8-18.el7.x86_64 和 python3-3.6.8-15.el7.x86_64
它会自动删掉后者,保留前者。
该操作绕过常规 yum remove 的交互确认,但不会强制破坏依赖——它只删已被判定为“冗余”的旧版本,不碰当前运行所需的新版或唯一版本。
补充:配合旧内核等系统级残留清理
重复包清理不包含内核,但常与之共存。若 /boot 空间吃紧,可同步执行:
sudo package-cleanup --oldkernels --count=2
这条命令会保留最新两个内核,自动卸载更老的全部内核包(kernel、kernel-devel 等),属于同一工具链下的协同清理动作。

















