I recently ran into this issue, that prevented me from updating the system.
Any time i’d run dnf update
, the process would end in errors such as:
$ sudo dnf update
(…)
Total 4.2 MB/s | 658 MB 02:36
Delta RPMs reduced 686.6 MB of updates to 657.7 MB (4.1% saved)
Running transaction check
Transaction check succeeded.
Running transaction test
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.
Error: Transaction test error:
file /usr/share/doc/gtk3/NEWS from install of gtk3-3.24.23-1.fc32.i686 conflicts with file from package gtk3-3.24.22-1.fc32.x86_64
file /usr/share/doc/gtk3/README from install of gtk3-3.24.23-1.fc32.i686 conflicts with file from package gtk3-3.24.22-1.fc32.x86_64
file /usr/share/locale/fi/LC_MESSAGES/gtk30.mo from install of gtk3-3.24.23-1.fc32.i686 conflicts with file from package gtk3-3.24.22-1.fc32.x86_64
file /usr/share/locale/gl/LC_MESSAGES/gtk30.mo from install of gtk3-3.24.23-1.fc32.i686 conflicts with file from package gtk3-3.24.22-1.fc32.x86_64
file /usr/share/locale/hu/LC_MESSAGES/gtk30.mo from install of gtk3-3.24.23-1.fc32.i686 conflicts with file from package gtk3-3.24.22-1.fc32.x86_64
file /usr/share/locale/ja/LC_MESSAGES/gtk30.mo from install of gtk3-3.24.23-1.fc32.i686 conflicts with file from package gtk3-3.24.22-1.fc32.x86_64
file /usr/share/locale/ko/LC_MESSAGES/gtk30.mo from install of gtk3-3.24.23-1.fc32.i686 conflicts with file from package gtk3-3.24.22-1.fc32.x86_64
file /usr/share/locale/nl/LC_MESSAGES/gtk30.mo from install of gtk3-3.24.23-1.fc32.i686 conflicts with file from package gtk3-3.24.22-1.fc32.x86_64
file /usr/share/locale/pt/LC_MESSAGES/gtk30.mo from install of gtk3-3.24.23-1.fc32.i686 conflicts with file from package gtk3-3.24.22-1.fc32.x86_64
file /usr/share/locale/zh_CN/LC_MESSAGES/gtk30.mo from install of gtk3-3.24.23-1.fc32.i686 conflicts with file from package gtk3-3.24.22-1.fc32.x86_64
file /usr/share/man/man1/broadwayd.1.gz from install of gtk3-3.24.23-1.fc32.i686 conflicts with file from package gtk3-3.24.22-1.fc32.x86_64
file /usr/share/man/man1/gtk-launch.1.gz from install of gtk3-3.24.23-1.fc32.i686 conflicts with file from package gtk3-3.24.22-1.fc32.x86_64
file /usr/share/man/man1/gtk-query-immodules-3.0.1.gz from install of gtk3-3.24.23-1.fc32.i686 conflicts with file from package gtk3-3.24.22-1.fc32.x86_64
file /usr/share/locale/en@boldquot/LC_MESSAGES/elfutils.mo from install of elfutils-libelf-0.181-1.fc32.i686 conflicts with file from package elfutils-libelf-0.179-2.fc32.x86_64
file /usr/share/locale/en@quot/LC_MESSAGES/elfutils.mo from install of elfutils-libelf-0.181-1.fc32.i686 conflicts with file from package elfutils-libelf-0.179-2.fc32.x86_64
file /usr/share/locale/uk/LC_MESSAGES/elfutils.mo from install of elfutils-libelf-0.181-1.fc32.i686 conflicts with file from package elfutils-libelf-0.179-2.fc32.x86_64
file /usr/share/doc/libssh/ChangeLog from install of libssh-0.9.5-1.fc32.i686 conflicts with file from package libssh-0.9.4-3.fc32.x86_64
Essentially, both the 32 bit (i686) and the 64 bit (x86_64) version of packages looked like they were installed (or partially installed?) and confusing dnf.
As recommended elsewhere, i went looking for duplicate packages with dnf repoquery --duplicates
and indeed, this showed multiple packages installed twice:
$ sudo dnf repoquery --duplicates
Last metadata expiration check: 2:00:47 ago on Tue 06 Oct 2020 14:17:31 BST.
armadillo-0:9.900.2-1.fc32.x86_64
armadillo-0:9.900.3-2.fc32.x86_64
bluez-0:5.54-1.fc32.x86_64
bluez-0:5.55-1.fc32.x86_64
bluez-cups-0:5.54-1.fc32.x86_64
bluez-cups-0:5.55-1.fc32.x86_64
bluez-libs-0:5.54-1.fc32.x86_64
bluez-libs-0:5.55-1.fc32.x86_64
bluez-obexd-0:5.54-1.fc32.x86_64
bluez-obexd-0:5.55-1.fc32.x86_64
chromium-0:85.0.4183.102-1.fc32.x86_64
chromium-0:85.0.4183.83-1.fc32.x86_64
chromium-common-0:85.0.4183.102-1.fc32.x86_64
chromium-common-0:85.0.4183.83-1.fc32.x86_64
clang-0:10.0.0-2.fc32.x86_64
clang-0:10.0.1-2.fc32.x86_64
(…)
Among these packages, those that dnf update
was getting stuck on. Sounds promising.
I tried to use dnf remove --duplicates
to clear this situation up, but that didn’t work and showed errors such as:
$ sudo dnf remove --duplicates
(…)
Installed package mesa-libOSMesa-20.1.8-1.fc32.x86_64 not available.
Installed package pcre2-utf32-10.35-6.fc32.x86_64 not available.
Installed package mesa-libglapi-20.1.8-1.fc32.x86_64 not available.
Installed package mesa-libEGL-20.1.8-1.fc32.x86_64 not available.
Installed package mesa-libgbm-20.1.8-1.fc32.x86_64 not available.
Installed package pcre2-utf16-10.35-6.fc32.x86_64 not available.
Installed package firefox-81.0-7.fc32.x86_64 not available.
Installed package xen-licenses-4.13.1-5.fc32.x86_64 not available.
Installed package xen-libs-4.13.1-5.fc32.x86_64 not available.
Installed package chromium-common-85.0.4183.102-1.fc32.x86_64 not available.
Installed package firefox-wayland-81.0-7.fc32.x86_64 not available.
Error:
Problem 1: problem with installed package mesa-libGL-20.1.7-1.fc32.i686
- mesa-libGL-20.0.4-1.fc32.i686 has inferior architecture
- mesa-libGL-20.1.9-1.fc32.i686 has inferior architecture
- mesa-libGL-20.1.7-1.fc32.i686 has inferior architecture
- conflicting requests
Problem 2: problem with installed package mesa-dri-drivers-20.1.7-1.fc32.i686
- package mesa-dri-drivers-20.0.4-1.fc32.i686 requires mesa-filesystem(x86-32) = 20.0.4-1.fc32, but none of the providers can be installed
- package mesa-dri-drivers-20.1.9-1.fc32.i686 requires mesa-filesystem(x86-32) = 20.1.9-1.fc32, but none of the providers can be installed
- package mesa-dri-drivers-20.1.7-1.fc32.i686 requires mesa-filesystem(x86-32) = 20.1.7-1.fc32, but none of the providers can be installed
- conflicting requests
Problem 3: problem with installed package pcre2-10.35-4.fc32.i686
- pcre2-10.34-9.fc32.i686 has inferior architecture
- pcre2-10.35-7.fc32.i686 has inferior architecture
- pcre2-10.35-4.fc32.i686 has inferior architecture
- conflicting requests
Problem 4: problem with installed package libproxy-0.4.15-17.fc32.i686
- libproxy-0.4.15-19.fc32.i686 has inferior architecture
- libproxy-0.4.15-17.fc32.i686 has inferior architecture
- conflicting requests
Problem 5: problem with installed package mesa-vulkan-drivers-20.1.7-1.fc32.i686
- mesa-vulkan-drivers-20.0.4-1.fc32.i686 has inferior architecture
- mesa-vulkan-drivers-20.1.9-1.fc32.i686 has inferior architecture
- mesa-vulkan-drivers-20.1.7-1.fc32.i686 has inferior architecture
- conflicting requests
Problem 6: problem with installed package mesa-libglapi-20.1.7-1.fc32.i686
- mesa-libglapi-20.0.4-1.fc32.i686 has inferior architecture
- mesa-libglapi-20.1.9-1.fc32.i686 has inferior architecture
- mesa-libglapi-20.1.7-1.fc32.i686 has inferior architecture
- conflicting requests
Problem 7: problem with installed package steam-1.0.0.66-1.fc32.i686
- package steam-1.0.0.66-1.fc32.i686 requires mesa-dri-drivers(x86-32), but none of the providers can be installed
- package steam-1.0.0.66-2.fc32.i686 requires mesa-dri-drivers(x86-32), but none of the providers can be installed
- package steam-1.0.0.62-1.fc32.i686 requires mesa-dri-drivers(x86-32), but none of the providers can be installed
- mesa-dri-drivers-20.0.4-1.fc32.i686 has inferior architecture
- mesa-dri-drivers-20.1.9-1.fc32.i686 has inferior architecture
- mesa-dri-drivers-20.1.7-1.fc32.i686 has inferior architecture
- conflicting requests
Problem 8: problem with installed package libselinux-3.0-5.fc32.i686
- package libselinux-3.0-5.fc32.i686 requires libpcre2-8.so.0, but none of the providers can be installed
- package libselinux-3.0-3.fc32.i686 requires libpcre2-8.so.0, but none of the providers can be installed
- package pcre2-10.34-9.fc32.i686 requires pcre2-syntax = 10.34-9.fc32, but none of the providers can be installed
- package pcre2-10.35-7.fc32.i686 requires pcre2-syntax = 10.35-7.fc32, but none of the providers can be installed
- package pcre2-10.35-4.fc32.i686 requires pcre2-syntax = 10.35-4.fc32, but none of the providers can be installed
- conflicting requests
Trying to remove these packages one by one looked like it was a/ going to take some time and b/ remove important packages (gtk3
, uh, no, i need this) so not an option.
I saw recommended elsewhere to try dnf update --refresh --best --allowerasing
but that didn’t work either. The --refresh
helped pull new, more up-to-date packages but that’s it.
In the end, what did work was to manually request reinstalling the problematic packages, so in my case:
$ sudo dnf reinstall gtk3-3.24.23-1.fc32 elfutils-libelf-0.181-1.fc32 libssh-0.9.5-1.fc32
After that, dnf update
worked fine.
Hope this helps someone else!
Related Red Hat Bugzilla bug: #1653683
PS: I’d mistakenly run sudo dnf remove mesa-libGL-20.1.7-1.fc32
previously, which removed stuff like steam
. I should have reinstalled that package, like the others.