Dnf fails to load librpmbuild due to invalid ELF header

After a routine update with GNOME Software, I noticed that a set of updates just keeps re-appearing in it:

dnf           4.14.0-2.fc38 → 4.15.0-1.fc38
dnf-data      4.14.0-2.fc38 → 4.15.0-1.fc38
hwdata        0.369-1.fc38 → 0.370-1.fc38
python3-dnf   4.14.0-2.fc38 → 4.15.0-1.fc38
yum           4.14.0-2.fc38 → 4.15.0-1.fc38

I tried to upgrade with dnf but it returns an error:

$ LC_ALL=C sudo dnf upgrade
Traceback (most recent call last):
  File "/usr/bin/dnf", line 61, in <module>
    from dnf.cli import main
  File "/usr/lib/python3.11/site-packages/dnf/__init__.py", line 30, in <module>
    import dnf.base
  File "/usr/lib/python3.11/site-packages/dnf/base.py", line 32, in <module>
    from dnf.comps import CompsQuery
  File "/usr/lib/python3.11/site-packages/dnf/comps.py", line 27, in <module>
    from dnf.exceptions import CompsError
  File "/usr/lib/python3.11/site-packages/dnf/exceptions.py", line 22, in <module>
    import dnf.util
  File "/usr/lib/python3.11/site-packages/dnf/util.py", line 29, in <module>
    import dnf.callback
  File "/usr/lib/python3.11/site-packages/dnf/callback.py", line 22, in <module>
    import dnf.yum.rpmtrans
  File "/usr/lib/python3.11/site-packages/dnf/yum/rpmtrans.py", line 26, in <module>
    import rpm
  File "/usr/lib64/python3.11/site-packages/rpm/__init__.py", line 38, in <module>
    from rpm._rpm import *
ImportError: /lib64/librpmbuild.so.9: invalid ELF header

What should I do to complete the upgrade?


I downloaded packages from Fedora build system via my browser and upgraded them with rpm:

$ sudo rpm -U dnf-4.15.0-1.fc38.noarch.rpm python3-dnf-4.15.0-1.fc38.noarch.rpm dnf-data-4.15.0-1.fc38.noarch.rpm yum-4.15.0-1.fc38.noarch.rpm

But the error remains:

$ LC_ALL=C sudo dnf upgrade
Traceback (most recent call last):
  File "/usr/bin/dnf", line 61, in <module>
    from dnf.cli import main
  File "/usr/lib/python3.11/site-packages/dnf/__init__.py", line 30, in <module>
    import dnf.base
  File "/usr/lib/python3.11/site-packages/dnf/base.py", line 32, in <module>
    from dnf.comps import CompsQuery
  File "/usr/lib/python3.11/site-packages/dnf/comps.py", line 27, in <module>
    from dnf.exceptions import CompsError
  File "/usr/lib/python3.11/site-packages/dnf/exceptions.py", line 22, in <module>
    import dnf.util
  File "/usr/lib/python3.11/site-packages/dnf/util.py", line 29, in <module>
    import dnf.callback
  File "/usr/lib/python3.11/site-packages/dnf/callback.py", line 22, in <module>
    import dnf.yum.rpmtrans
  File "/usr/lib/python3.11/site-packages/dnf/yum/rpmtrans.py", line 26, in <module>
    import rpm
  File "/usr/lib64/python3.11/site-packages/rpm/__init__.py", line 38, in <module>
    from rpm._rpm import *
ImportError: /lib64/librpmbuild.so.9: invalid ELF header

I found that the librpmbuild.so is from rpm-build-libs, downloaded the package from Fedora build system via browser, and reinstalled it with rpm:

$ sudo rpm --reinstall rpm-build-libs-4.18.1-3.fc38.x86_64.rpm

This fixed the error and allowed me to complete the upgrade.

1 Like