How to solve CentOS7 and “yum install php-7.2.3 ” dependency issues upgrading to PHP 7.2.3

centos7dependenciesphp7

Here is what 'yum install php-7.2.3' returns:

[root@prv-apps conf.d]# yum install php-7.2.3
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.vtti.vt.edu
 * epel: ftp.cse.buffalo.edu
 * extras: mirror.vtti.vt.edu
 * remi-php72: mirror.team-cymru.org
 * remi-safe: mirror.team-cymru.org
 * updates: mirror.vtti.vt.edu
Resolving Dependencies
--> Running transaction check
---> Package php.x86_64 0:5.4.16-43.el7_4.1 will be updated
---> Package php.x86_64 0:7.2.3-2.el7.remi will be an update
--> Processing Dependency: php-common(x86-64) = 7.2.3-2.el7.remi for package: php-7.2.3-2.el7.remi.x86_64
--> Processing Dependency: php-cli(x86-64) = 7.2.3-2.el7.remi for package: php-7.2.3-2.el7.remi.x86_64
--> Processing Dependency: libargon2.so.0()(64bit) for package: php-7.2.3-2.el7.remi.x86_64
--> Running transaction check
---> Package libargon2.x86_64 0:20161029-2.el7 will be installed
---> Package php-cli.x86_64 0:5.4.16-43.el7_4.1 will be updated
--> Processing Dependency: php-cli(x86-64) = 5.4.16-43.el7_4.1 for package: php-devel-5.4.16-43.el7_4.1.x86_64
---> Package php-cli.x86_64 0:7.2.3-2.el7.remi will be an update
---> Package php-common.x86_64 0:5.4.16-43.el7_4.1 will be updated
--> Processing Dependency: php(api) = 20100412-64 for package: php-pecl-apcu-4.0.11-1.el7.x86_64
--> Processing Dependency: php(api) = 20100412-64 for package: php-pecl-ssh2-0.12-1.el7.x86_64
--> Processing Dependency: php(api) = 20100412-64 for package: php-mcrypt-5.4.16-7.el7.x86_64
--> Processing Dependency: php(api) = 20100412-64 for package: php-pecl-mongo-1.6.14-1.el7.x86_64
--> Processing Dependency: php(zend-abi) = 20100525-64 for package: php-pecl-apcu-4.0.11-1.el7.x86_64
--> Processing Dependency: php(zend-abi) = 20100525-64 for package: php-pecl-ssh2-0.12-1.el7.x86_64
--> Processing Dependency: php(zend-abi) = 20100525-64 for package: php-mcrypt-5.4.16-7.el7.x86_64
--> Processing Dependency: php(zend-abi) = 20100525-64 for package: php-pecl-mongo-1.6.14-1.el7.x86_64
--> Processing Dependency: php-json(x86-64) = 7.2.3-2.el7.remi for package: php-common-7.2.3-2.el7.remi.x86_64
--> Processing Dependency: php-common(x86-64) = 5.4.16-43.el7_4.1 for package: php-soap-5.4.16-43.el7_4.1.x86_64
--> Processing Dependency: php-common(x86-64) = 5.4.16-43.el7_4.1 for package: php-pdo-5.4.16-43.el7_4.1.x86_64
--> Processing Dependency: php-common(x86-64) = 5.4.16-43.el7_4.1 for package: php-mbstring-5.4.16-43.el7_4.1.x86_64
--> Processing Dependency: php-common(x86-64) = 5.4.16-43.el7_4.1 for package: php-gd-5.4.16-43.el7_4.1.x86_64
--> Processing Dependency: php-common(x86-64) = 5.4.16-43.el7_4.1 for package: php-process-5.4.16-43.el7_4.1.x86_64
--> Processing Dependency: php-common(x86-64) = 5.4.16-43.el7_4.1 for package: php-ldap-5.4.16-43.el7_4.1.x86_64
--> Processing Dependency: php-common(x86-64) = 5.4.16-43.el7_4.1 for package: php-xml-5.4.16-43.el7_4.1.x86_64
---> Package php-common.x86_64 0:7.2.3-2.el7.remi will be an update
--> Running transaction check
---> Package php-common.x86_64 0:5.4.16-43.el7_4.1 will be updated
--> Processing Dependency: php(api) = 20100412-64 for package: php-pecl-mongo-1.6.14-1.el7.x86_64
--> Processing Dependency: php(zend-abi) = 20100525-64 for package: php-pecl-mongo-1.6.14-1.el7.x86_64
---> Package php-devel.x86_64 0:5.4.16-43.el7_4.1 will be updated
---> Package php-devel.x86_64 0:7.2.3-2.el7.remi will be an update
---> Package php-gd.x86_64 0:5.4.16-43.el7_4.1 will be updated
---> Package php-gd.x86_64 0:7.2.3-2.el7.remi will be an update
--> Processing Dependency: gd-last(x86-64) >= 2.1.1 for package: php-gd-7.2.3-2.el7.remi.x86_64
--> Processing Dependency: libgd.so.3()(64bit) for package: php-gd-7.2.3-2.el7.remi.x86_64
---> Package php-json.x86_64 0:7.2.3-2.el7.remi will be installed
---> Package php-ldap.x86_64 0:5.4.16-43.el7_4.1 will be updated
---> Package php-ldap.x86_64 0:7.2.3-2.el7.remi will be an update
---> Package php-mbstring.x86_64 0:5.4.16-43.el7_4.1 will be updated
---> Package php-mbstring.x86_64 0:7.2.3-2.el7.remi will be an update
---> Package php-mcrypt.x86_64 0:5.4.16-7.el7 will be obsoleted
---> Package php-pdo.x86_64 0:5.4.16-43.el7_4.1 will be updated
--> Processing Dependency: php-pdo(x86-64) = 5.4.16-43.el7_4.1 for package: php-odbc-5.4.16-43.el7_4.1.x86_64
--> Processing Dependency: php-pdo(x86-64) = 5.4.16-43.el7_4.1 for package: php-mysql-5.4.16-43.el7_4.1.x86_64
---> Package php-pdo.x86_64 0:7.2.3-2.el7.remi will be an update
---> Package php-pecl-apcu.x86_64 0:4.0.11-1.el7 will be updated
---> Package php-pecl-apcu.x86_64 0:5.1.11-1.el7.remi.7.2 will be an update
---> Package php-pecl-mcrypt.x86_64 0:1.0.1-4.el7.remi.7.2 will be obsoleting
---> Package php-pecl-ssh2.x86_64 0:0.12-1.el7 will be updated
---> Package php-pecl-ssh2.x86_64 0:1.1.2-1.el7.remi.7.2 will be an update
---> Package php-process.x86_64 0:5.4.16-43.el7_4.1 will be updated
---> Package php-process.x86_64 0:7.2.3-2.el7.remi will be an update
---> Package php-soap.x86_64 0:5.4.16-43.el7_4.1 will be updated
---> Package php-soap.x86_64 0:7.2.3-2.el7.remi will be an update
---> Package php-xml.x86_64 0:5.4.16-43.el7_4.1 will be updated
---> Package php-xml.x86_64 0:7.2.3-2.el7.remi will be an update
--> Running transaction check
---> Package gd-last.x86_64 0:2.2.5-1.el7.remi will be installed
---> Package php-common.x86_64 0:5.4.16-43.el7_4.1 will be updated
--> Processing Dependency: php(api) = 20100412-64 for package: php-pecl-mongo-1.6.14-1.el7.x86_64
--> Processing Dependency: php(zend-abi) = 20100525-64 for package: php-pecl-mongo-1.6.14-1.el7.x86_64
---> Package php-mysql.x86_64 0:5.4.16-43.el7_4.1 will be obsoleted
---> Package php-mysqlnd.x86_64 0:7.2.3-2.el7.remi will be obsoleting
---> Package php-odbc.x86_64 0:5.4.16-43.el7_4.1 will be updated
---> Package php-odbc.x86_64 0:7.2.3-2.el7.remi will be an update
--> Finished Dependency Resolution
Error: Package: php-pecl-mongo-1.6.14-1.el7.x86_64 (@epel)
           Requires: php(zend-abi) = 20100525-64
           Removing: php-common-5.4.16-43.el7_4.1.x86_64 (@updates)
               php(zend-abi) = 20100525-64
           Updated By: php-common-7.2.3-2.el7.remi.x86_64 (remi-php72)
               php(zend-abi) = 20170718-64
           Available: php-common-5.4.16-42.el7.x86_64 (base)
               php(zend-abi) = 20100525-64
           Available: php-common-5.4.16-43.el7_4.x86_64 (updates)
               php(zend-abi) = 20100525-64
           Available: php-common-7.2.2-1.el7.remi.x86_64 (remi-php72)
               php(zend-abi) = 20170718-64
Error: Package: php-pecl-mongo-1.6.14-1.el7.x86_64 (@epel)
           Requires: php(api) = 20100412-64
           Removing: php-common-5.4.16-43.el7_4.1.x86_64 (@updates)
               php(api) = 20100412-64
           Updated By: php-common-7.2.3-2.el7.remi.x86_64 (remi-php72)
               php(api) = 20170718-64
           Available: php-common-5.4.16-42.el7.x86_64 (base)
               php(api) = 20100412-64
           Available: php-common-5.4.16-43.el7_4.x86_64 (updates)
               php(api) = 20100412-64
           Available: php-common-7.2.2-1.el7.remi.x86_64 (remi-php72)
               php(api) = 20170718-64
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

How do I resolve the dependency issues in order to get PHP 7.2.3 up and running?

Best Answer

Remove the php-pecl-mongo package first. It's built for an ancient version of PHP and won't work with PHP 7.2.

# yum info php-pecl-mongo
Loaded plugins: product-id, search-disabled-repos, subscription-manager
Available Packages
Name        : php-pecl-mongo
Arch        : x86_64
Version     : 1.6.16
Release     : 1.el7.remi.5.4
Size        : 267 k
Repo        : remi
Summary     : PHP MongoDB database driver
URL         : http://pecl.php.net/package/mongo
License     : ASL 2.0
Description : This package provides an interface for communicating with the
            : MongoDB database in PHP.
            : 
            : Documentation: http://php.net/mongo
            : 
            : Package built for PHP 5.4.

After you upgrade to PHP 7.2, you can then install its replacement, php-pecl-mongodb.

# yum info php-pecl-mongodb
Loaded plugins: product-id, search-disabled-repos, subscription-manager
Available Packages
Name        : php-pecl-mongodb
Arch        : x86_64
Version     : 1.4.2
Release     : 1.el7.remi.7.2
Size        : 479 k
Repo        : remi-php72
Summary     : MongoDB driver for PHP
URL         : http://pecl.php.net/package/mongodb
License     : ASL 2.0
Description : The purpose of this driver is to provide exceptionally thin glue
            : between MongoDB and PHP, implementing only fundemental and
            : performance-critical components necessary to build a
            : fully-functional MongoDB driver.
            : 
            : Package built for PHP 7.2.

Keep in mind that if you haven't done so already, you should test your application for compatibility, as the new PECL library may have introduced backward incompatible changes.