CentOS 6.9 Vesta环境升级PHP7遇依赖冲突及libdb4报错求助
兄弟,我帮你捋清楚这个问题了——你遇到的核心是libdb4包和系统filesystem组件冲突,同时rpm找不到它依赖的libdb-4.7.so库,大概率是操作中引入了非官方高版本的db4包,或者CentOS6的官方源因为停止维护失效导致的。先把你遇到的错误信息贴出来明确问题:
Error: Package: rpm-4.8.0-55.el6.x86_64 (base) Requires: libdb-4.7.so()(64bit)
Available: db4-4.7.25-22.el6.x86_64 (base) libdb-4.7.so()(64bit)
Error: Package:...
libdb4 conflicts with filesystem
下面是具体的解决步骤:
第一步:检查当前安装的db4相关包
先排查系统里到底装了哪些db4版本,执行命令:rpm -qa | grep db4如果输出里有不是
db4-4.7.25-22.el6.x86_64的版本,那就是这个高版本包导致的冲突。第二步:卸载冲突的db4包
把非官方版本的db4卸载,比如查到是db4-4.8.x.x.el6.x86_64,就执行:yum remove db4-4.8.x.x.el6.x86_64注意看yum的依赖提示,别误删系统必需的包,确认没问题再输入
y确认卸载。第三步:修复base源并安装官方db4
CentOS6已经停止官方维护,原来的base源大概率失效了,先修改/etc/yum.repos.d/CentOS-Base.repo:注释掉所有mirrorlist行,替换成归档源配置:[base] name=CentOS-6 - Base baseurl=http://vault.centos.org/6.9/os/x86_64/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6然后安装官方版本的db4:
yum install db4-4.7.25-22.el6.x86_64第四步:修复rpm包依赖
现在重新安装rpm包,确保它能找到正确的libdb库:yum reinstall rpm第五步:重新安装PHP7
用适合CentOS6的PHP7源来安装(推荐remi源,是CentOS6支持的稳定第三方源):- 先安装remi-release:
rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-6.rpm - 启用PHP7的源(比如PHP7.4,是CentOS6支持的最高PHP版本):
yum-config-manager --enable remi-php74 - 安装PHP7及常用扩展:
yum install php php-cli php-fpm php-mysql php-common php-gd php-mbstring php-xml
- 先安装remi-release:
额外提醒
CentOS6已经完全停止安全更新了,如果你是生产环境,强烈建议尽快升级到CentOS7、Rocky Linux或者AlmaLinux这些受支持的发行版,避免安全风险
内容的提问来源于stack exchange,提问作者Sezer Toker

