Upgrading cPanel/WHM – Dealing with conflicting rpms
While running the cPanel version update from its whm web interface, it is most likely to encounter conflicting rpms error if there are any manual rpms updates done and same are also accounted to get updated by cPanel. Of Course the manual update was needed because that particular service was not updated correctly by its built in graphical interface. This is because the cPanel/WHM has their own set of packaging for many of their services to include their further customization to communicate with their other custom dependent packages. In this particular example we will see how they provide mysql service in centos server.
The rpms packaged by MySQL team works well for RHEL and variations of it like centos. cPanel has their own packaging for it though. So if we install rpms directly from third party like mysql, they will get conflict with their custom rpms that they manage to communicate.
When such an issue comes, after you are done with regular updates in normal way, run this
/usr/local/cpanel/scripts/check_cpanel_rpms
This will check which rpms are missing from the system, which ones got conflict and which ones need repair or reinstall. They have managed excellent scripts to do all this checking. If any of conflicts as below is encountered:
file /usr/share/mysql/mysql_system_tables.sql from install of MySQL56-server-5.6.35-1.cp1156.x86_64 conflicts with file from package MySQL-server-5.6.44-1.el6.x86_64
If we try out some updates from the WHM GUI, errors like this will be shown:
Problems were detected with cPanel-provided files which are RPM controlled…
The solution for issues like above it is very simple. Just remove your conflicting rpm packages by
rpm -e MySQL-server-5.6.44-1.el6.x86_64
We are safe here to do so because conflicting package is of almost the same mysql version and we don’t need to do mysql_upgrade for the schemas to update. If the version is different in major releases like 5.1.X, 5.5.X, 5.6.X and 5.7.X, we will need to make sure the rpms are updated the upgrade of schema is performed by running
mysql_upgrade
With username and password.
After that just remove those conflicting rpms and let intelligent cPanel script check missing rpms and perform an install or repair for you by running
/usr/local/cpanel/scripts/check_cpanel_rpms --fix
This will install those missing rpms from their own server that exactly match with their custom dependant package. At the other side your service is also updated.