萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Red Hat Linux 核心升級後 RPM 資料庫錯誤:LD_ASSUME_KERNEL 解決法

核心升級後執行 rpm 指令出現 rpmdb: unable to join the environment、db4 error(11) 等錯誤,原因在於舊版 RPM 資料庫格式與新核心 NPTL 執行緒庫不相容。設定 LD_ASSUME_KERNEL 強制使用舊版執行緒模型即可暫時繞過。

錯誤現象

rpmdb: unable to join the environment
error: db4 error(11) from dbenv->open: Resource temporarily unavailable
error: cannot open Packages index using db3 - Resource temporarily unavailable (11)
error: cannot open Packages database in /var/lib/rpm

臨時解法(目前 Shell 生效)

export LD_ASSUME_KERNEL=2.2.5
# 或
export LD_ASSUME_KERNEL=2.4.19

版本號視 glibc 支援範圍而定,通常 2.2.5 或 2.4.19 皆可嘗試。

永久生效

編輯 /etc/profile 或 /etc/bashrc,加入:

export LD_ASSUME_KERNEL=2.2.5

重新登入或 source /etc/profile。

根本修正:重建 RPM 資料庫

rm -f /var/lib/rpm/__db.*
rpm --rebuilddb
rpmdb_verify Packages

若仍失敗,考慮從備份還原 /var/lib/rpm/ 或重新安裝 rpm 套件。

注意

  • LD_ASSUME_KERNEL 為相容性權宜之計,長期應升級 RPM 至支援新核心執行緒庫的版本。
  • RHEL 4/5 時代常見,現代發行版(RHEL 7+、Fedora 20+)已不存此問題。
copyright © 萬盛學電腦網 all rights reserved