故事的开始是这样的:
服务器是linux
[root@ip-172-31-26-105 ~]# cat /etc/issue
Red Hat Enterprise Linux Server release 6.9 (Santiago)
Kernel \r on an \m
看到的版本是这个
一开始我的yum我把他删除了,我使用把别的正常主机上的yum命令文件拷贝过来,能使用成功,我就执行了一次 yum -y install mariadb mariadb-server
后边再次使用就变成了
[root@ip-172-31-26-105 ~]# yum
error: bad option 'archcolor' at (null):96
error: dbiOpen: dbapi 1 not available
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:
Error: rpmdb open failed
网上的相关教程讲的是把/var/lib/rpm/清下缓存就可以了,我的并不行,后来想着使用rpm安装yum命令
[root@ip-172-31-26-105 test]# rpm -ivh gmp-4.3.1-7.el6_2.2.x86_64.rpm
BDB2053 Freeing read locks for locker 0x21: 17484/140469886113792
BDB2053 Freeing read locks for locker 0x23: 17484/140469886113792
BDB2053 Freeing read locks for locker 0x24: 17484/140469886113792
BDB2053 Freeing read locks for locker 0x25: 17484/140469886113792
BDB2053 Freeing read locks for locker 0x26: 17484/140469886113792
BDB2053 Freeing read locks for locker 0x27: 17484/140469886113792
warning: gmp-4.3.1-7.el6_2.2.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
rpm: symbol lookup error: /usr/lib64/librpm.so.3: undefined symbol: selinux_status_close
我去网上查了这个关键词,都没有遇到次问题。不知道是哪出了错。
求大神讲下思路
谢谢!!
这条:
rpm: symbol lookup error: /usr/lib64/librpm.so.3: undefined symbol: selinux_status_close
是因为RPM程序与librpm.so版本不匹配。用yum/rpm来管理软件版本和依赖关系,就是为了避免类似的问题。所以尽量不要自己复制软件进去。
用yum管理,也可能因为安装了不同版本的rpm库导致类似问题。
还有一种可能性是 etc/ld.so.conf.d/的配置下,有些.conf路径中包含了另外一个版本的librpm.so,导致系统调用出错。
如果rpm2cpio命令还能用的话,可以手动下载正确的软件包,再通过rpm2cpio和cpio命令来安装。例如:
cd /;/usr/lib/rpm2cpio.sh rpm-libs-4.4.1-18.1.i386.rpm | cpio -ivd
cd /;/usr/lib/rpm2cpio.sh rpm-4.4.1-18.1.i386.rpm | cpio -ivd
1、备份/var/lib/rpm 目录下的文件
2、重建rpmdb
rpmdb --rebuilddb