Today I tried to update all packages with sudo dnf --refresh upgrade
command in my Fedora 35 desktop. During the package update, I encountered with this issue – error: rpmdb: damaged header #5904 retrieved — skipping.
I kept getting this error a lot. I couldn’t update the Fedora system. After a couple web searches, I found that the RPM database is corrupted for some reason.
If you ever stuck into a situation like mine, you can easily solve the “rpmdb damaged header” error by rebuilding the RPM database as shown in the following steps.
Fix error: rpmdb: damaged header in Fedora
Backup corrupted RPM database, just in case:
$ mv /var/lib/rpm/__db* /var/lib/rpm/old/
Next, delete the RPM database using command:
$ sudo rm -f /var/lib/rpm/__db*
Next, reset the SELinux security context for /var/lib/rpm/
directory to its default values using restorecon
command:
$ sudo restorecon -Rv /var/lib/rpm
Finally, rebuild the RPM database to fix rpmdb damaged header error in Fedora, RHEL and its clones like CentOS, AlmaLinux and Rocky Linux:
$ sudo rpmdb --rebuilddb
You will not see any output in the terminal. If you want to see what’s going on in the background, use -v
flag.
$ sudo rpmdb --rebuilddb -v
And then update/upgrade Fedora system as usual.
$ sudo dnf update --refresh
Now, I can able to update the system without any issues.
Copr repo for fedy owned by kwizart 921 B/s | 3.3 kB 00:03 Copr repo for Signal-Desktop owned by luminoso 8.7 kB/s | 3.3 kB 00:00 Copr repo for PyCharm owned by phracek 567 B/s | 3.3 kB 00:05 Fedora 35 - x86_64 5.1 kB/s | 5.3 kB 00:01 Fedora 35 openh264 (From Cisco) - x86_64 2.0 kB/s | 989 B 00:00 Fedora Modular 35 - x86_64 17 kB/s | 5.2 kB 00:00 Fedora 35 - x86_64 - Updates 13 kB/s | 4.4 kB 00:00 Fedora 35 - x86_64 - Updates 210 kB/s | 1.7 MB 00:08 Fedora Modular 35 - x86_64 - Updates 26 kB/s | 6.6 kB 00:00 google-chrome 4.8 kB/s | 1.3 kB 00:00 RPM Fusion for Fedora 35 - Free 4.4 kB/s | 6.2 kB 00:01 RPM Fusion for Fedora 35 - Free - Updates 6.2 kB/s | 5.8 kB 00:00 RPM Fusion for Fedora 35 - Nonfree 7.1 kB/s | 6.7 kB 00:00 RPM Fusion for Fedora 35 - Nonfree - NVIDIA Dri 6.8 kB/s | 6.4 kB 00:00 RPM Fusion for Fedora 35 - Nonfree - Steam 6.5 kB/s | 6.1 kB 00:00 RPM Fusion for Fedora 35 - Nonfree - Updates 6.6 kB/s | 6.2 kB 00:00 Dependencies resolved. ================================================================================ Package Arch Version Repository Size ================================================================================ Upgrading: cmake-filesystem x86_64 3.22.0-4.fc35 updates 18 k cpp x86_64 11.2.1-7.fc35 updates 10 M gcc x86_64 11.2.1-7.fc35 updates 31 M gcc-gdb-plugin x86_64 11.2.1-7.fc35 updates 147 k glibc x86_64 2.34-10.fc35 updates 2.0 M [...] python3-pikepdf x86_64 4.1.0-1.fc35 updates 500 k virt-viewer x86_64 11.0-1.fc35 updates 324 k xxhash-libs x86_64 0.8.1-1.fc35 updates 40 k zram-generator x86_64 1.1.1-3.fc35 updates 397 k zram-generator-defaults noarch 1.1.1-3.fc35 updates 9.6 k Transaction Summary ================================================================================ Upgrade 49 Packages Total download size: 134 M Is this ok [y/N]: y
Hope this helps.
Thanks @FlorianLudwig for the quick response.
We are building large images so bear with me, because the error only shows up after a couple of base images are built, even when dnf-plugin-ovl is installed early in the process.
The following script produces the error:
#!/bin/bash set -euo pipefail export build_no_touch_rpmdb=1 export build_image_base=radiasoft/beamsim:20190521.170321 docker pull radiasoft/beamsim:20190521.170321 | cat [[ -d sirepo ]] || git clone -q https://github.com/radiasoft/sirepo cd sirepo curl https://depot.radiasoft.org/index.sh | bash -s container-build
It will not produce the error if you disable build_no_touch_rpmdb
with:
export build_no_touch_rpmdb=
This (default mode) triggers touch of /var/lib/rpm/*.
radiasoft/beamsim:20190521.170321 contains:
$ docker run --rm radiasoft/beamsim:20190521.170321 rpm -q dnf-plugin-ovl dnf-plugin-ovl-0.0.2-1.20181107gitfd1a5a5.fc29.noarch
And, radiasoft/beamsim builds without the error, even though the same code runs for the dnf clean
. Not sure what’s triggering the error in the sirepo build, but I tested it multiple times to sure it was reproducible.
The script can be run on VirtualBox centos/7 with these params in /etc/docker/daemon.json
:
{ "storage-driver": "overlay2", "storage-opts": [ "overlay2.override_kernel_check=true" ] }
We have curl installers for CentOS 7 so if you want to get a copy of our VM with Docker setup (works on Mac and Linux):
curl https://depot.radiasoft.org/index.sh | bash -s vagrant-dev centos/7 vagrant ssh -c 'radia_run redhat-docker' vagrant reload vagrant ssh -c 'radia_run redhat-docker'
The images are large and take a tens of minutes to build:
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE d/sirepo 20190524.144425 fa3b2dcda727 14 minutes ago 9.94GB d/sirepo alpha fa3b2dcda727 14 minutes ago 9.94GB d/sirepo dev fa3b2dcda727 14 minutes ago 9.94GB d/sirepo latest fa3b2dcda727 14 minutes ago 9.94GB radiasoft/beamsim 20190521.170321 4a4a024db504 2 days ago 5.42GB
Всем привет!
# apt-get update
Получено: 1 ftp://ftp.firma.zn p8/branch/x86_64 release [880B]
Получено: 2 ftp://ftp.firma.zn p8/branch/x86_64-i586 release [537B]
Получено: 3 ftp://ftp.firma.zn p8/branch/noarch release [673B]
Получено 2090B за 0s (14,9kB/s).
Получено: 1 ftp://ftp.firma.zn p8/branch/x86_64/classic pkglist [20,5MB]
Получено: 2 ftp://ftp.firma.zn p8/branch/x86_64/classic release [135B]
Получено: 3 ftp://ftp.firma.zn p8/branch/x86_64-i586/classic pkglist [15,4MB]
Получено: 4 ftp://ftp.firma.zn p8/branch/x86_64-i586/classic release [140B]
Получено: 5 ftp://ftp.firma.zn p8/branch/noarch/classic pkglist [5090kB]
Получено: 6 ftp://ftp.firma.zn p8/branch/noarch/classic release [135B]
Получено 41,0MB за 5s (7084kB/s).
error: rpmdb: damaged header instance #2029 retrieved, skipping.
error: rpmdb: damaged header instance #2045 retrieved, skipping.
error: rpmdb: damaged header instance #2042 retrieved, skipping.
error: rpmdb: damaged header instance #2039 retrieved, skipping.
error: rpmdb: damaged header instance #2049 retrieved, skipping.
error: rpmdb: damaged header instance #2036 retrieved, skipping.
error: rpmdb: damaged header instance #2052 retrieved, skipping.
error: rpmdb: damaged header instance #2033 retrieved, skipping.
error: rpmdb: damaged header instance #2041 retrieved, skipping.
error: rpmdb: damaged header instance #2030 retrieved, skipping.
error: rpmdb: damaged header instance #2038 retrieved, skipping.
error: rpmdb: damaged header instance #2046 retrieved, skipping.
error: rpmdb: damaged header instance #2050 retrieved, skipping.
error: rpmdb: damaged header instance #2035 retrieved, skipping.
error: rpmdb: damaged header instance #2043 retrieved, skipping.
error: rpmdb: damaged header instance #2053 retrieved, skipping.
error: rpmdb: damaged header instance #2032 retrieved, skipping.
error: rpmdb: damaged header instance #2040 retrieved, skipping.
error: rpmdb: damaged header instance #2048 retrieved, skipping.
error: rpmdb: damaged header instance #2037 retrieved, skipping.
error: rpmdb: damaged header instance #2051 retrieved, skipping.
error: rpmdb: damaged header instance #2034 retrieved, skipping.
error: rpmdb: damaged header instance #2031 retrieved, skipping.
error: rpmdb: damaged header instance #2047 retrieved, skipping.
error: rpmdb: damaged header instance #2028 retrieved, skipping.
error: rpmdb: damaged header instance #2044 retrieved, skipping.
error: rpmdb: damaged header instance #2029 retrieved, skipping.
error: rpmdb: damaged header instance #2045 retrieved, skipping.
error: rpmdb: damaged header instance #2042 retrieved, skipping.
error: rpmdb: damaged header instance #2039 retrieved, skipping.
error: rpmdb: damaged header instance #2049 retrieved, skipping.
error: rpmdb: damaged header instance #2036 retrieved, skipping.
error: rpmdb: damaged header instance #2052 retrieved, skipping.
error: rpmdb: damaged header instance #2033 retrieved, skipping.
error: rpmdb: damaged header instance #2041 retrieved, skipping.
error: rpmdb: damaged header instance #2030 retrieved, skipping.
error: rpmdb: damaged header instance #2038 retrieved, skipping.
error: rpmdb: damaged header instance #2046 retrieved, skipping.
error: rpmdb: damaged header instance #2050 retrieved, skipping.
error: rpmdb: damaged header instance #2035 retrieved, skipping.
error: rpmdb: damaged header instance #2043 retrieved, skipping.
error: rpmdb: damaged header instance #2053 retrieved, skipping.
error: rpmdb: damaged header instance #2032 retrieved, skipping.
error: rpmdb: damaged header instance #2040 retrieved, skipping.
error: rpmdb: damaged header instance #2048 retrieved, skipping.
error: rpmdb: damaged header instance #2037 retrieved, skipping.
error: rpmdb: damaged header instance #2051 retrieved, skipping.
error: rpmdb: damaged header instance #2034 retrieved, skipping.
error: rpmdb: damaged header instance #2031 retrieved, skipping.
error: rpmdb: damaged header instance #2047 retrieved, skipping.
error: rpmdb: damaged header instance #2028 retrieved, skipping.
error: rpmdb: damaged header instance #2044 retrieved, skipping.
error: rpmdb: damaged header instance #2029 retrieved, skipping.
error: rpmdb: damaged header instance #2045 retrieved, skipping.
error: rpmdb: damaged header instance #2042 retrieved, skipping.
error: rpmdb: damaged header instance #2039 retrieved, skipping.
error: rpmdb: damaged header instance #2049 retrieved, skipping.
error: rpmdb: damaged header instance #2036 retrieved, skipping.
error: rpmdb: damaged header instance #2052 retrieved, skipping.
error: rpmdb: damaged header instance #2033 retrieved, skipping.
error: rpmdb: damaged header instance #2041 retrieved, skipping.
error: rpmdb: damaged header instance #2030 retrieved, skipping.
error: rpmdb: damaged header instance #2038 retrieved, skipping.
error: rpmdb: damaged header instance #2046 retrieved, skipping.
error: rpmdb: damaged header instance #2050 retrieved, skipping.
error: rpmdb: damaged header instance #2035 retrieved, skipping.
error: rpmdb: damaged header instance #2043 retrieved, skipping.
error: rpmdb: damaged header instance #2053 retrieved, skipping.
error: rpmdb: damaged header instance #2032 retrieved, skipping.
error: rpmdb: damaged header instance #2040 retrieved, skipping.
error: rpmdb: damaged header instance #2048 retrieved, skipping.
error: rpmdb: damaged header instance #2037 retrieved, skipping.
error: rpmdb: damaged header instance #2051 retrieved, skipping.
error: rpmdb: damaged header instance #2034 retrieved, skipping.
error: rpmdb: damaged header instance #2031 retrieved, skipping.
error: rpmdb: damaged header instance #2047 retrieved, skipping.
error: rpmdb: damaged header instance #2028 retrieved, skipping.
error: rpmdb: damaged header instance #2044 retrieved, skipping.
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
W: В Вашей системе установлено несколько версий пакета "libobasis6.1-core".
Этот пакет не может быть обновлён обычным путём до тех пор, пока Вы не
оставите только одну его версию. Чтобы оставить установленными несколько версий,
и
W: Возможно, Вам потребуется запустить `apt-get update' для исправления.
# rpm --rebuildb -vv
...
D: добавляется "7bc533d411bcc606a3f4c3ef6d24481a398b1ba3" в индекс Sha1header.
D: +++ 1266 vlc-plugin-ogg-2.2.6.20170917-alt1.M80P.1
D: добавляется "vlc-plugin-ogg" в индекс Name.
D: добавляется 4 записей в индекс Basenames
D: добавляется "Видео" в индекс Group.
D: добавляется 7 записей в индекс Requirename
D: добавляется "vlc-plugin-ogg" в индекс Providename.
D: добавляется 3 записей в индекс Dirnames
D: добавляется 1 записей в индекс Installtid
D: добавляется 1 записей в индекс Sigmd5
D: добавляется "268a4f09c911aa5294705bf9ba96d4491c4ba52b" в индекс Sha1header.
*** Error in `/usr/lib/rpm/rpmd': double free or corruption (!prev): 0x00000000025054a0 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x6f325)[0x7fab7262f325]
/lib64/libc.so.6(+0x74ae6)[0x7fab72634ae6]
/lib64/libc.so.6(+0x752ce)[0x7fab726352ce]
/usr/lib64/librpmdb-4.0.4.so(+0xca47)[0x7fab72b7ca47]
/usr/lib64/librpmdb-4.0.4.so(+0xcdee)[0x7fab72b7cdee]
/usr/lib64/librpmdb-4.0.4.so(+0x12a73)[0x7fab72b82a73]
/usr/lib64/librpmdb-4.0.4.so(rpmdbAdd+0x329)[0x7fab72b86059]
/usr/lib64/librpmdb-4.0.4.so(rpmdbRebuild+0x4ea)[0x7fab72b8725a]
/usr/lib/rpm/rpmd[0x401d6c]
/lib64/libc.so.6(__libc_start_main+0xf0)[0x7fab725e07f0]
/usr/lib/rpm/rpmd[0x401f59]
======= Memory map: ========
00400000-00403000 r-xp 00000000 08:02 525025 /usr/lib/rpm/rpmd
00602000-00603000 r--p 00002000 08:02 525025 /usr/lib/rpm/rpmdАварийный останов
Как исправить ?