I upgraded from F40 using the graphical Software app. Distro-sync wants to remove dnf5 and others:
#sudo dnf distro-sync
Updating and loading repositories:
Repositories loaded.
Failed to resolve the transaction:
Problem: The operation would result in removing the following protected packages: dnf5, gnome-shell, grub2-tools-minimal, selinux-policy-targeted, systemd, systemd-udev
You can try to add to command line:
--skip-broken to skip uninstallable packages
I think I remember needing to manually delete some dnf packages afterwards. I did run multiple upgrades since without running distro-sync until today.
I have a lot of duplicate packages, maybe because dnf did not delete the old package from the now unknown source?
#sudo dnf check --duplicates
ImageMagick-c++-1:7.1.1.39-1.fc41.x86_64
duplicate with "ImageMagick-c++-1:7.1.1.41-1.fc41.x86_64"
ImageMagick-c++-1:7.1.1.41-1.fc41.x86_64
duplicate with "ImageMagick-c++-1:7.1.1.39-1.fc41.x86_64"
ImageMagick-libs-1:7.1.1.39-1.fc41.x86_64
duplicate with "ImageMagick-libs-1:7.1.1.41-1.fc41.x86_64"
ImageMagick-libs-1:7.1.1.41-1.fc41.x86_64
duplicate with "ImageMagick-libs-1:7.1.1.39-1.fc41.x86_64"
SDL2-0:2.30.3-2.fc41.x86_64
duplicate with "SDL2-0:2.30.9-1.fc41.x86_64"
SDL2-0:2.30.9-1.fc41.x86_64
duplicate with "SDL2-0:2.30.3-2.fc41.x86_64"
abrt-0:2.17.6-2.fc41.x86_64
duplicate with "abrt-0:2.17.6-3.fc41.x86_64"
abrt-0:2.17.6-3.fc41.x86_64
duplicate with "abrt-0:2.17.6-2.fc41.x86_64"
...
dnf5-0:5.2.7.0-1.fc41.x86_64
duplicate with "dnf5-0:5.2.8.1-2.fc41.x86_64"
dnf5-0:5.2.8.1-2.fc41.x86_64
duplicate with "dnf5-0:5.2.7.0-1.fc41.x86_64"
dnf5-plugins-0:5.2.7.0-1.fc41.x86_64
duplicate with "dnf5-plugins-0:5.2.8.1-2.fc41.x86_64"
dnf5-plugins-0:5.2.8.1-2.fc41.x86_64
duplicate with "dnf5-plugins-0:5.2.7.0-1.fc41.x86_64"
...
xxd-2:9.1.866-1.fc41.x86_64
duplicate with "xxd-2:9.1.919-1.fc41.x86_64"
xxd-2:9.1.919-1.fc41.x86_64
duplicate with "xxd-2:9.1.866-1.fc41.x86_64"
Check discovered 718 problem(s) in 718 package(s)
The common solution to removing the dupes is the distro-sync, which I can’t run. What’s the best way to solve this?
EDIT:
The real problem happens when trying to dnf update, which gives me conflicts for different architectures of the same package. Probably because it only updates one architecture of a package which is already installed in both archs:
#sudo dnf update
libxcrypt i686 4.4.37-1.fc41 updates 280.8 KiB
replacing libxcrypt i686 4.4.36-10.fc41 <unknown> 282.8 KiB
libxcrypt-compat i686 4.4.37-1.fc41 updates 206.4 KiB
replacing libxcrypt-compat i686 4.4.36-10.fc41 <unknown> 208.8 KiB
libxml2 i686 2.12.9-1.fc41 updates 1.8 MiB
replacing libxml2 i686 2.12.8-2.fc41 <unknown> 1.8 MiB
llvm x86_64 19.1.5-1.fc41 updates 74.2 MiB
replacing llvm x86_64 19.1.0-1.fc41 <unknown> 75.3 MiB
llvm-libs i686 19.1.5-1.fc41 updates 127.4 MiB
replacing llvm-libs i686 19.1.0-1.fc41 <unknown> 129.2 MiB
...
Running transaction
Transaction failed: Rpm transaction failed.
- file /usr/share/doc/libxcrypt/NEWS from install of libxcrypt-4.4.37-1.fc41.i686 conflicts with file from package libxcrypt-4.4.36-10.fc41.x86_64
- file /usr/share/doc/libxml2/NEWS from install of libxml2-2.12.9-1.fc41.i686 conflicts with file from package libxml2-2.12.8-2.fc41.x86_64
- file /usr/share/doc/cairo/NEWS from install of cairo-1.18.2-2.fc41.i686 conflicts with file from package cairo-1.18.0-4.fc41.x86_64
- file /usr/share/man/man5/pipewire-client.conf.5.gz from install of pipewire-libs-1.2.7-1.fc41.i686 conflicts with file from package pipewire-libs-1.2.6-1.fc41.x86_64
...
If your running kernel is 6.8.9 from f38, please explain how this occurs.
You might also investigate the circumstances where you wound up with 3 installed kernels from f37 & f38 while upgrading to f41 since it is never recommended to upgrade more than 2 release versions in a single step.
I would suggest that you first remove the older kernels for f37 and f38 that are not the current kernel with dnf remove kernel\*6.2\* kernel\*6.3\* (those appear to be uki kernels and not true fedora kernels anyway). You also should probably verify removal of all kernel debug packages regardless of the kernel version with dnf list --installed kernel\*
After a reboot then rerun the command suggested to remove the duplicates but add the --exclude kernel\* to that command. so it does not attempt to remove the running kernel.
At that point find out why you are still booting an f38 kernel and fix that so you are booting the f41 kernel before doing anything else.
After manually updating some packages that dnf4 could no longer see, dnf4 remove --duplicates seems to have the right idea. But I get the same error in the end.
$ sudo dnf4 remove --duplicates
Last metadata expiration check: 0:54:45 ago on po 6. ledna 2025, 10:30:37.
Dependencies resolved.
=======================================================================================================================================================================================================================================
Package Architecture Version Repository Size
=======================================================================================================================================================================================================================================
Upgrading:
compiler-rt x86_64 19.1.5-1.fc41 updates 2.4 M
cups-ipptool x86_64 1:2.4.11-8.fc41 updates 3.9 M
cups-libs i686 1:2.4.11-8.fc41 updates 275 k
firefox-langpacks x86_64 133.0.3-2.fc41 updates 48 M
fwupd-plugin-uefi-capsule-data x86_64 1.9.27-1.fc41 updates 2.0 M
glibc i686 2.40-17.fc41 updates 1.9 M
...
xorg-x11-drv-nvidia x86_64 3:565.77-3.fc41 rpmfusion-nonfree-updates 133 M
xorg-x11-drv-nvidia-cuda x86_64 3:565.77-3.fc41 rpmfusion-nonfree-updates 2.2 M
xorg-x11-drv-nvidia-cuda-libs i686 3:565.77-3.fc41 rpmfusion-nonfree-updates 41 M
xorg-x11-drv-nvidia-libs i686 3:565.77-3.fc41 rpmfusion-nonfree-updates 36 M
xorg-x11-drv-nvidia-libs x86_64 3:565.77-3.fc41 rpmfusion-nonfree-updates 67 M
xorg-x11-drv-nvidia-power x86_64 3:565.77-3.fc41 rpmfusion-nonfree-updates 104 k
xorg-x11-drv-nvidia-xorg-libs x86_64 3:565.77-3.fc41 rpmfusion-nonfree-updates 2.3 M
Reinstalling:
ImageMagick-c++ x86_64 1:7.1.1.41-1.fc41 updates 176 k
replacing ImageMagick-c++.x86_64 1:7.1.1.39-1.fc41
ImageMagick-libs x86_64 1:7.1.1.41-1.fc41 updates 2.6 M
replacing ImageMagick-libs.x86_64 1:7.1.1.39-1.fc41
abrt x86_64 2.17.6-3.fc41 updates 519 k
replacing abrt.x86_64 2.17.6-2.fc41
...
librsvg2 x86_64 2.59.2-1.fc41 updates 1.6 M
replacing librsvg2.x86_64 2.59.1-1.fc41
libsane-airscan x86_64 0.99.30-1.fc41 updates 132 k
replacing libsane-airscan.x86_64 0.99.29-2.fc41
libserf x86_64 1.3.10-7.fc41 updates 57 k
replacing libserf.x86_64 1.3.10-6.fc41
libsmbclient x86_64 2:4.21.2-1.fc41 updates 81 k
replacing libsmbclient.x86_64 2:4.21.1-7.fc41
libsss_certmap x86_64 2.10.1-1.fc41 updates 84 k
replacing libsss_certmap.x86_64 2.10.0-2.fc41
libsss_idmap x86_64 2.10.1-1.fc41 updates 34 k
replacing libsss_idmap.x86_64 2.10.0-2.fc41
libsss_nss_idmap x86_64 2.10.1-1.fc41 updates 39 k
replacing libsss_nss_idmap.x86_64 2.10.0-2.fc41
libsss_sudo x86_64 2.10.1-1.fc41 updates 29 k
replacing libsss_sudo.x86_64 2.10.0-2.fc41
libvirt-daemon x86_64 10.6.0-6.fc41 updates 185 k
replacing libvirt-daemon.x86_64 10.6.0-5.fc41
libvirt-daemon-common x86_64 10.6.0-6.fc41 updates 113 k
replacing libvirt-daemon-common.x86_64 10.6.0-5.fc41
libvirt-daemon-driver-interface x86_64 10.6.0-6.fc41 updates 189 k
replacing libvirt-daemon-driver-interface.x86_64 10.6.0-5.fc41
libvirt-daemon-driver-network x86_64 10.6.0-6.fc41 updates 235 k
replacing libvirt-daemon-driver-network.x86_64 10.6.0-5.fc41
libvirt-daemon-driver-nodedev x86_64 10.6.0-6.fc41 updates 211 k
replacing libvirt-daemon-driver-nodedev.x86_64 10.6.0-5.fc41
libvirt-daemon-driver-nwfilter x86_64 10.6.0-6.fc41 updates 223 k
replacing libvirt-daemon-driver-nwfilter.x86_64 10.6.0-5.fc41
libvirt-daemon-driver-qemu x86_64 10.6.0-6.fc41 updates 914 k
replacing libvirt-daemon-driver-qemu.x86_64 10.6.0-5.fc41
libvirt-daemon-driver-secret x86_64 10.6.0-6.fc41 updates 186 k
replacing libvirt-daemon-driver-secret.x86_64 10.6.0-5.fc41
libvirt-daemon-driver-storage-core x86_64 10.6.0-6.fc41 updates 239 k
replacing libvirt-daemon-driver-storage-core.x86_64 10.6.0-5.fc41
libvirt-daemon-driver-storage-disk x86_64 10.6.0-6.fc41 updates 21 k
replacing libvirt-daemon-driver-storage-disk.x86_64 10.6.0-5.fc41
libvirt-daemon-driver-storage-gluster x86_64 10.6.0-6.fc41 updates 22 k
replacing libvirt-daemon-driver-storage-gluster.x86_64 10.6.0-5.fc41
libvirt-daemon-driver-storage-iscsi-direct x86_64 10.6.0-6.fc41 updates 20 k
replacing libvirt-daemon-driver-storage-iscsi-direct.x86_64 10.6.0-5.fc41
libvirt-daemon-driver-storage-mpath x86_64 10.6.0-6.fc41 updates 16 k
replacing libvirt-daemon-driver-storage-mpath.x86_64 10.6.0-5.fc41
libvirt-daemon-driver-storage-zfs x86_64 10.6.0-6.fc41 updates 18 k
replacing libvirt-daemon-driver-storage-zfs.x86_64 10.6.0-5.fc41
libvirt-daemon-kvm x86_64 10.6.0-6.fc41 updates 11 k
replacing libvirt-daemon-kvm.x86_64 10.6.0-5.fc41
libvirt-daemon-log x86_64 10.6.0-6.fc41 updates 50 k
replacing libvirt-daemon-log.x86_64 10.6.0-5.fc41
libvirt-daemon-proxy x86_64 10.6.0-6.fc41 updates 183 k
replacing libvirt-daemon-proxy.x86_64 10.6.0-5.fc41
libvirt-libs x86_64 10.6.0-6.fc41 updates 4.9 M
replacing libvirt-libs.x86_64 10.6.0-5.fc41
libvirt-ssh-proxy x86_64 10.6.0-6.fc41 updates 17 k
replacing libvirt-ssh-proxy.x86_64 10.6.0-5.fc41
libvisio x86_64 0.1.8-1.fc41 updates 244 k
replacing libvisio.x86_64 0.1.7-24.fc41
libvpl x86_64 1:2.14.0-1.fc41 updates 147 k
replacing libvpl.x86_64 1:2.13.0-1.fc41
libwbclient x86_64 2:4.21.2-1.fc41 updates 47 k
replacing libwbclient.x86_64 2:4.21.1-7.fc41
libwebp x86_64 1.5.0-1.fc41 updates 280 k
replacing libwebp.x86_64 1.4.0-4.fc41
libwinpr x86_64 2:3.10.3-2.fc41 updates 378 k
replacing libwinpr.x86_64 2:3.9.0-1.fc41
libxcrypt x86_64 4.4.37-1.fc41 updates 116 k
replacing libxcrypt.x86_64 4.4.36-10.fc41
libxml2 x86_64 2.12.9-1.fc41 updates 657 k
replacing libxml2.x86_64 2.12.8-2.fc41
llvm-libs x86_64 19.1.5-1.fc41 updates 30 M
replacing llvm-libs.x86_64 19.1.0-1.fc41
mediawriter x86_64 5.2.1-1.fc41 updates 1.0 M
replacing mediawriter.x86_64 5.2.0-1.fc41
mingw64-vkd3d noarch 1.14-1.fc41 updates 763 k
replacing mingw64-vkd3d.noarch 1.12-1.fc41
mozjs128 x86_64 128.5.1-2.fc41 updates 6.5 M
replacing mozjs128.x86_64 128.3.0-1.fc41
mpg123-libs x86_64 1.32.9-1.fc41 updates 338 k
replacing mpg123-libs.x86_64 1.31.3-5.fc41
mutter x86_64 47.3-1.fc41 updates 2.4 M
replacing mutter.x86_64 47.1-3.fc41
mutter-common noarch 47.3-1.fc41 updates 22 k
replacing mutter-common.noarch 47.1-3.fc41
nautilus x86_64 47.1-1.fc41 updates 2.4 M
replacing nautilus.x86_64 47.0-1.fc41
nautilus-extensions x86_64 47.1-1.fc41 updates 35 k
replacing nautilus-extensions.x86_64 47.0-1.fc41
nfs-utils x86_64 1:2.8.1-3.rc2.fc41 updates 448 k
replacing nfs-utils.x86_64 1:2.8.1-1.rc2.fc41
nspr x86_64 4.36.0-2.fc41 updates 127 k
replacing nspr.x86_64 4.35.0-30.fc41
nss x86_64 3.107.0-1.fc41 updates 657 k
replacing nss.x86_64 3.105.0-1.fc41
nss-softokn x86_64 3.107.0-1.fc41 updates 361 k
replacing nss-softokn.x86_64 3.105.0-1.fc41
nss-softokn-freebl x86_64 3.107.0-1.fc41 updates 311 k
replacing nss-softokn-freebl.x86_64 3.105.0-1.fc41
nss-sysinit x86_64 3.107.0-1.fc41 updates 18 k
replacing nss-sysinit.x86_64 3.105.0-1.fc41
nss-util x86_64 3.107.0-1.fc41 updates 81 k
replacing nss-util.x86_64 3.105.0-1.fc41
obs-studio x86_64 31.0.0-1.fc41 updates 4.8 M
replacing obs-studio.x86_64 31.0.0~beta1-4.fc41
obs-studio-libs x86_64 31.0.0-1.fc41 updates 2.0 M
replacing obs-studio-libs.x86_64 31.0.0~beta1-4.fc41
obs-studio-plugin-vlc-video x86_64 31.0.0-1.fc41 updates 59 k
replacing obs-studio-plugin-vlc-video.x86_64 31.0.0~beta1-4.fc41
obs-studio-plugin-x264 x86_64 31.0.0-1.fc41 rpmfusion-free-updates 48 k
replacing obs-studio-plugin-x264.x86_64 31.0.0~beta1-1.fc41
openjpeg x86_64 2.5.3-2.fc41 updates 185 k
replacing openjpeg.x86_64 2.5.2-4.fc41
openldap x86_64 2.6.8-6.fc41 updates 243 k
replacing openldap.x86_64 2.6.8-5.fc41
pam x86_64 1.6.1-7.fc41 updates 555 k
replacing pam.x86_64 1.6.1-6.fc41
pam-libs x86_64 1.6.1-7.fc41 updates 57 k
replacing pam-libs.x86_64 1.6.1-6.fc41
passt x86_64 0^20241211.g09478d5-1.fc41 updates 226 k
replacing passt.x86_64 0^20241121.g238c69f-1.fc41
perf x86_64 6.12.7-200.fc41 updates 2.4 M
replacing perf.x86_64 6.11.8-300.fc41
perl-Git noarch 2.47.1-1.fc41 updates 38 k
replacing perl-Git.noarch 2.47.0-1.fc41
pipewire x86_64 1.2.7-1.fc41 updates 130 k
replacing pipewire.x86_64 1.2.6-1.fc41
pipewire-gstreamer x86_64 1.2.7-1.fc41 updates 69 k
replacing pipewire-gstreamer.x86_64 1.2.6-1.fc41
pipewire-jack-audio-connection-kit-libs x86_64 1.2.7-1.fc41 updates 136 k
replacing pipewire-jack-audio-connection-kit-libs.x86_64 1.2.6-1.fc41
pipewire-libs x86_64 1.2.7-1.fc41 updates 1.9 M
replacing pipewire-libs.x86_64 1.2.6-1.fc41
pipewire-utils x86_64 1.2.7-1.fc41 updates 353 k
replacing pipewire-utils.x86_64 1.2.6-1.fc41
pixman x86_64 0.44.2-1.fc41 updates 269 k
...
systemd x86_64 256.10-1.fc41 updates 5.4 M
replacing systemd.x86_64 256.8-1.fc41
systemd-container x86_64 256.10-1.fc41 updates 604 k
replacing systemd-container.x86_64 256.8-1.fc41
systemd-libs x86_64 256.10-1.fc41 updates 691 k
replacing systemd-libs.x86_64 256.8-1.fc41
systemd-pam x86_64 256.10-1.fc41 updates 377 k
replacing systemd-pam.x86_64 256.8-1.fc41
systemd-rpm-macros noarch 256.10-1.fc41 updates 33 k
replacing systemd-rpm-macros.noarch 256.8-1.fc41
systemd-udev x86_64 256.10-1.fc41 updates 2.3 M
replacing systemd-udev.x86_64 256.8-1.fc41
...
wireplumber x86_64 0.5.7-1.fc41 updates 105 k
replacing wireplumber.x86_64 0.5.5-2.fc41
wireplumber-libs x86_64 0.5.7-1.fc41 updates 358 k
replacing wireplumber-libs.x86_64 0.5.5-2.fc41
wlroots x86_64 0.18.2-1.fc41 updates 393 k
replacing wlroots.x86_64 0.18.1-1.fc41
xorg-x11-drv-nvidia-cuda-libs x86_64 3:565.77-3.fc41 rpmfusion-nonfree-updates 44 M
replacing xorg-x11-drv-nvidia-cuda-libs.x86_64 3:565.57.01-3.fc41
xorg-x11-drv-nvidia-kmodsrc x86_64 3:565.77-3.fc41 rpmfusion-nonfree-updates 57 M
replacing xorg-x11-drv-nvidia-kmodsrc.x86_64 3:565.57.01-3.fc41
xorg-x11-server-Xorg x86_64 21.1.15-1.fc41 updates 1.4 M
replacing xorg-x11-server-Xorg.x86_64 21.1.14-1.fc41
Installing dependencies:
akmod-nvidia x86_64 3:565.77-1.fc41 rpmfusion-nonfree-updates 40 k
Transaction Summary
=======================================================================================================================================================================================================================================
Install 1 Package
Upgrade 38 Packages
Total size: 1.2 G
Total download size: 674 M
Is this ok [y/N]:
After running that I still get conflict with e.g. pipewire. I have a duplicate installed that is not in the list of detected duplicates:
I manually installed the old kernels for compat with old NVIDIA drivers. My point was that list did not include a single package where I had duplicates.
I also used dnf versionlock in the past, now found out dnf4 has its own list, so I cleared it.
I guess I could temporarily switch to nouveau and new kernel for the upgrading and duplicate clearing.
Success! Turns out when distro-sync wants to remove protected packages it’s probably right!
I had so many duplicates even dnf, systemd, etc were duplicated.
So I ran sudo dnf distro-sync --setopt protected_packages=
But that still failed on some damn libxml duplicate README file and 10+ other similar errors, so I had to parse the output of dnf4 remove --duplicates and regexp each pair of lines of “installing new_pkg, replacing old_pkg” into yum -y swap old_pkg new_pkg and run that.
Which was slow because of separate transactions but didn’t fail like all the bigger commands.
After this manual replacing of dupes distro-sync ran successfully to completion, replacing the protected packages too. I could have added --setopt protected_packages= to my regexp’d commands but I didn’t trust them that much.
The last step was running dnf4 remove --duplicates again, this time it also finished without errors and cleaned up the last problems (hopefully).
Then I rebooted, everything works, dnf update is clean. Now I can remove all the btrfs snapshots I’ve made before every step.