当使用yum安装PHP或者PHP的一些扩展的时候遇到版本不一致问题,比如类似下面这种错误
1 2 3 |
# yum install -y php-pear Requires: php-common(x86-64) = 5.4.16-48.el7 Installed: php-common-7.4.33-4.el7.remi.x86_64 (@remi-php74) |
或者
1 2 3 4 5 6 |
#yum install php-devel Processing Conflict: php74-cli-7.4.30-1.el7.ius.x86_64 conflicts php-cli < 7.4.30-1.el7.ius --> Processing Conflict: php74-common-7.4.30-1.el7.ius.x86_64 conflicts php-common < 7.4.30-1.el7.ius --> Processing Conflict: php74-json-7.4.30-1.el7.ius.x86_64 conflicts php-json < 7.4.30-1.el7.ius --> Processing Conflict: php74-pecl-zip-1.19.0-1.el7.ius.x86_64 conflicts php-pecl-zip < 1.19.0-1.el7.ius |
上面两个示例是在安装PHP扩展php-pear 和PHP的开发工具包php-devel的时候报错了,提示的就是PHP版本导致的软件包冲突。 这种问题产生的原因可能是因为系统默认有一个PHP 5.4的版本,后来又使用yum安装了php7.4的版本,但是yum里面不知道什么原因,还是只认php5.4 .. 。 所以出现这种问题的时候就很恶心。
解决方式如下:
remi源官网:http://rpms.remirepo.net/
如果已经给yum安装了remi源的情况下,直接使用下面这个命令:
1 |
yum --enablerepo=remi-php74 install php-pear |
因为我那上面的错误提示是php7.4的版本和xx版本起冲突了,所以命令里面使用的是remi-php74,如果错误中是其它版本冲突,就改成对应的版本, 使用这个命令的前提一定是你系统中已经安装好了remi源,检查是否安装的方式如下:
查看你的”/etc/yum.repos.d/”这个目录中是否存在remi-phpXX.repo这类的文件,XX表示PHP的版本好。 比如54、70、74 等等,如果有这类文件,那就说明remi的源已经安装过了。 但是上面出现那些错误冲突,是因为虽然安装了remi源, 但是大概率你的这些remi-phpXX.repo文件中的enabled=0,表示不启用这个源。。 所以上面那个命令中的–enablerepo=remi-php74表示启用remi-php74.repo这个文件中配置的源。
如果系统没有安装过remi源,则先用下面的命令安装,remi-release-7其中7表是centos的版本
1 |
yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm |
安装完成之后,就能在”/etc/yum.repos.d/”目录中看到PHP的各个版本的rpm文件了。
然后再通过上面的方式安装即可。