总结:我运行了 yum update -y,然后在执行了一个大更新(1.1GB)时,不小心按了 ctrl+C。这破坏了一切。
我试过:
500 yum check all
501 package-cleanup --problems
502 package-cleanup --dupes
503 package-cleanup --cleandupes
504 yum-complete-transaction
505 yum update -y
506 yum update --skip-broken -y
507 yum-complete-transaction --cleanup-only
508 yum update --skip-broken -y
509 yum check all
510 yum clean all
511 yum makecache
512 rpm --rebuilddb
513 yum update
514 package-cleanup
515 package-cleanup --cleandupes
516 package-cleanup --cleandupes --skip-broken
517 yum history
518 yum history undo 78
519 yum history undo 78 --skip-broken
525 package-cleanup --cleandupes
526 package-cleanup --cleandupes --skip-broken
毫无效果。我还能尝试其他方法吗?这似乎是互联网建议我可以尝试的所有方法。
我觉得 yum 很容易就打破了这种局面,这很愚蠢,我的意思是,由于某些错误,更新中途停止的情况有多常见?我以为 yum 是企业软件,也包含在 RHEL 等发行版中。甚至 Windows 也知道如何从崩溃/损坏/取消的更新中恢复,而无需太多用户干预。但没关系。
我的系统运行 Linux chlorine 3.18.6-200.fc21.x86_64 #1 SMP Fri Feb 6 22:59:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux (Fedora 21)。
我的主要问题似乎在这里:
--> Finished Dependency Resolution
Error: Trying to remove "systemd", which is protected
Error: Trying to remove "yum", which is protected
** Found 394 pre-existing rpmdb problem(s), 'yum check' output follows:
ModemManager-1.4.4-2.fc21.x86_64 is a duplicate with ModemManager-1.4.0-1.fc21.x86_64
我还没有重新启动并且我的系统目前仍然运行良好。
非常感谢任何建议和想法!如果这个线程不起作用,那么我可能会重新安装我的系统。
答案1
我刚刚在 Fedora 22 系统上做了同样的事情。我无法升级或重新安装任何软件包。运行 package-cleanup --cleandups 想要删除 glibc,而 glibc 想要删除系统上的几乎所有软件包。
为了解决这个问题,我对所有重复的包执行了 distro-sync。
sudo package-cleanup --dupes | perl -pe 's/-\d+.*$//' | sort -u | grep -vP '^Loaded' | xargs sudo dnf distro-sync -y
然后
sudo dnf upgrade
sudo package-cleanup --cleandupes