yum update 异常退出后常见报错的解决方法
我们在 yum update 更新异常退出了,例如 Ctrl+C 掉,网络中断等,会有很多软件包留在仓库,引起各种各样的问题。这里简单记录一些常见的问题和解决方法。但温馨提示,最好不要中断 yum update 过程,这十分危险,可能会导致 RPMDB 损坏。
常见问题
Q1:yum update 提示软件已经被安装了,但 rpm -e 却提示仍然未安装
此时可以定位一下引发报错的软件包的名字和版本号,使用 rpm -e –nodeps 来卸载保存的软件包。
Q2: There are unfinished transactions remaining
安装 yum-utils 并使用 yum-complete-transaction 清理未完成事务。
yum install yum-utils
yum clean all
yum-complete-transaction –cleanup-onlyQ3: Package A conflicts with Package B
这个提示是包冲突了,只能使用 rpm 命令手动解除冲突。rpm -e 或者必要时候使用 –nodeps 参数。
可以使用 rpm -qa | grep 软件包名。检索冲突包的所有版本,一般是旧版本和新装的版本冲突。
有时候会出现嵌套依赖的情况出现,即要删除包 A,被包 B 依赖了,需要先对 B 冲突的版本进行清理。因此可能需要重复进行多次操作才能将依赖冲突彻底解决。Q4: Package A is a duplicate with Package B
这个提示区别于 Q3,是包重复了,一般是系统里有新旧两个版本的包。
可以使用 package-cleanup 进行清理。查看重复的包:package-cleanup –dupes
清理损坏的包:package-cleanup –problems
清理重复的包:package-cleanup –cleandupesQ5: No Packages marked for Update
使用 yum clean all 清理包缓存。
一些建议
- 在 Screen 中执行升级命令
- 不报错就是没问题,慢就等等,不要中断 update 过程