Germán A. Racca writes:
After the reboot, run rpm --rebuilddb to rebuild the rpm database. Afterwards, run rpm -V against the NEWER version of systemd and dnf packages. Only if rpm -V gives a clean bill of health would it be safe to forcefully remove the older versions from systemd and dnf.Hi Sam, thanks for your message. After fsck and reboot, I did: # rpm --rebuilddb which finished without errors. Then I verified the versions of dnf: # rpm -q dnf dnf-1.1.1-2.fc22.noarch dnf-1.1.3-1.fc22.noarch and verified the newer version of the package: # rpm -V dnf-1.1.3-1.fc22.noarch so I removed the older version: # rpm -e --nodeps dnf-1.1.1-2.fc22.noarch
This is probably fine, but I would've tried to avoid using --nodeps, and make the best effort to go through the process without using --nodeps, by removing all other duplicated packages that have a listed dependency on dnf, and then finally removing the duplicated dnf package.
The problem is with systemd, which is NOT duplicated: # rpm -q systemd systemd-219-24.fc22.x86_64 # rpm -V systemd S.5....T. c /etc/sysctl.conf .M....... /var/log/journal
This is fine. It is normal for these files to be modified, after installation.
Then again: # rpm --rebuilddb and I tried to remove duplicated packages: # dnf remove $(dnf repoquery --duplicated --latest-limit -1 -q) Dependencies resolved.Error: The operation would result in removing the following protected packages: systemd, dnf.but it insists in removing systemd and dnf again. How can I proceed next?
The list of packages you get from that dnf repoquery also includes the kernel packages.
This is wrong.It is normal for multiple kernel packages to be concurrently installed. You should take that duplicated list, and manually delete all of the kernel packages from it.
So, that's one thing that's definitely wrong there. You'll need to take the list produced by dnf repoquery, and manually delete all the kernel packages from that list.
That still doesn't explain why dnf is trying to remove itself and systemd, though. It's true that the kernel-core package lists a dependency on systemd. But the same dependency would also be listed in the newest version of kernel-core, which would remain installed, and this should be sufficient to exclude systemd from being uninstalled.
Barring some other, undetected, corruption on your system (unlikely, since you executed rpm --rebuilddb), I would say that this is a bug in dnf's dependency resolution. dnf sees that some of the packages that are slated to be removed have a dependency on dnf and systemd, which are protected, and aborts; even though it is not going to actually remove either dnf or systemd.
You should be able to work around this likely bug by taking the overall list of duplicated packages, and manually trying to dnf remove successively smaller parts of the list; trying to remove as many of the duplicated packages as possible, using dnf remove. Then, use rpm -e to remove only the packages that end up triggering this suspected bug.
Attachment:
pgp3QsK1ZsFb1.pgp
Description: PGP signature
-- users mailing list users@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe or change subscription options: https://admin.fedoraproject.org/mailman/listinfo/users Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines Have a question? Ask away: http://ask.fedoraproject.org