RPM 管理器的数据库

每次安装 rpm 包时,rpm 系统会将一些元信息存储在它的数据库中,使用 rpm -q 命令查询软件包的相关信息时将会查询这些数据库,数据库文件位于 /var/lib/rpm 目录中。如果 RPM 的数据库损坏,将会导致一些 RPM 数据丢失,一些功能将无法正常使用。

[root@bogon ~]# file /var/lib/rpm/*
/var/lib/rpm/Basenames:      Berkeley DB (Hash, version 9, native byte-order)
/var/lib/rpm/Conflictname:   Berkeley DB (Hash, version 9, native byte-order)
/var/lib/rpm/__db.001:       Applesoft BASIC program data
/var/lib/rpm/__db.002:       386 pure executable
/var/lib/rpm/__db.003:       386 pure executable not stripped
/var/lib/rpm/__db.004:       386 pure executable
/var/lib/rpm/Dirnames:       Berkeley DB (Btree, version 9, native byte-order)
/var/lib/rpm/Filedigests:    Berkeley DB (Hash, version 9, native byte-order)
/var/lib/rpm/Group:          Berkeley DB (Hash, version 9, native byte-order)
/var/lib/rpm/Installtid:     Berkeley DB (Btree, version 9, native byte-order)
/var/lib/rpm/Name:           Berkeley DB (Hash, version 9, native byte-order)
/var/lib/rpm/Obsoletename:   Berkeley DB (Hash, version 9, native byte-order)
/var/lib/rpm/Packages:       Berkeley DB (Hash, version 9, native byte-order)
/var/lib/rpm/Providename:    Berkeley DB (Hash, version 9, native byte-order)
/var/lib/rpm/Provideversion: Berkeley DB (Btree, version 9, native byte-order)
/var/lib/rpm/Pubkeys:        Berkeley DB (Hash, version 9, native byte-order)
/var/lib/rpm/Requirename:    Berkeley DB (Hash, version 9, native byte-order)
/var/lib/rpm/Requireversion: Berkeley DB (Btree, version 9, native byte-order)
/var/lib/rpm/Sha1header:     Berkeley DB (Hash, version 9, native byte-order)
/var/lib/rpm/Sigmd5:         Berkeley DB (Hash, version 9, native byte-order)
/var/lib/rpm/Triggername:    Berkeley DB (Hash, version 9, native byte-order)

可以看到这里有很多 Berkeley DB 格式的数据库文件和几个 __db 数据文件。

重建数据库

如果 RPM 的数据库损坏,首先可以尝试重建它,如果无法重建,那么需要重新初始化数据库。

rpm --rebuilddb 表示重建数据库

这个命令会从已安装的软件包提取信息重建数据库,它从 /var/lib/rpm/Packages 这个文件中提取信息,其他所有的数据库文件都可以由这个文件重建。如果 RPM 的数据库是完好的,这个命令不会重建,而是对数据库中未使用的条目进行空间回收。

rpm --initdb 创建一个新的 RPM 数据

如果已经没有其他别的办法了,--initdb 会创建一个新的空的 RPM 数据库。由于新建的数据库是空的,不要万不得已不要使用这个命令。

联系我们

邮箱 626512443@qq.com
电话 18611320371(微信)
QQ群 235681453

Copyright © 2015-2024

备案号:京ICP备15003423号-3