Symptoms
On servers with alt-php-internal-sqlite3 installed from [imunify360] repo, yum update fails with the following error:
yum update
Last metadata expiration check: 1:47:22 ago on Thu 22 Jul 2021 07:40:59 AM CST.
Error:
Problem 1: package alt-php-internal-sqlite3-7.4.16-1.el8.x86_64 requires alt-php-internal-common = 7.4.16-1.el8, but none of the providers can be installed
- cannot install both alt-php-internal-common-7.4.20-2.el8.x86_64 and alt-php-internal-common-7.4.16-1.el8.x86_64
- cannot install both alt-php-internal-common-7.4.16-1.el8.x86_64 and alt-php-internal-common-7.4.20-2.el8.x86_64
- cannot install the best update candidate for package alt-php-internal-sqlite3-7.4.16-1.el8.x86_64
- cannot install the best update candidate for package alt-php-internal-common-7.4.16-1.el8.x86_64
Problem 2: problem with installed package alt-php-internal-sqlite3-7.4.16-1.el8.x86_64
- package alt-php-internal-sqlite3-7.4.16-1.el8.x86_64 requires alt-php-internal-common = 7.4.16-1.el8, but none of the providers can be installed
- package alt-php-internal-common-7.4.16-1.el8.x86_64 requires alt-php-internal = 7.4.16-1.el8, but none of the providers can be installed
- cannot install both alt-php-internal-7.4.20-2.el8.x86_64 and alt-php-internal-7.4.16-1.el8.x86_64
- cannot install both alt-php-internal-7.4.16-1.el8.x86_64 and alt-php-internal-7.4.20-2.el8.x86_64
- cannot install the best update candidate for package alt-php-internal-7.4.16-1.el8.x86_64
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
Description
This occurs on servers where alt-php-internal-sqlite3 version 7.4.16 is installed. The alt-php-internal-sqlite3 package requires alt-php-internal-common version 7.4.16 as a dependency:
rpm -qR alt-php-internal-sqlite3 | grep -Ei common
alt-php-internal-common = 7.4.16-1.el8
However, when "yum update" runs alt-php-internal-common version 7.4.20 from [imunify360-rollout-2] repo is pulled, as it's the latest version available and by default Yum attempts to download the latest available version of each package.
yum list available --showduplicates | grep -Ei alt-php-internal-common
alt-php-internal-common.x86_64 7.4.12-3.el8 imunify360
alt-php-internal-common.x86_64 7.4.15-3.el8 imunify360
alt-php-internal-common.x86_64 7.4.16-1.el8 imunify360
alt-php-internal-common.x86_64 7.4.20-2.el8 imunify360-rollout-2
And since the latest available version is different from the version required by alt-php-internal-sqlite3, that breaks Yum's update.
We've opened an upstream case with Imunify's team to investigate this further. For reference, the case number is UPS-385. Follow this article to receive an email notification when a solution is published in the product.
Workaround
The workaround is to temporarily disable the [imunify360-rollout-2] repository. Here is how it's done:
1- Open the following file and disable the [imunify360-rollout-2] repository and then close and save the file:
vi /etc/yum.repos.d/imunify-rollout.repo
2- Confirm that the changes have been made:
grep -Eirh "(\[.*\]|enabled=)" /etc/yum.repos.d/* | grep -Ei "\[imunify360-rollout-2\]" -A 1
[imunify360-rollout-2]
enabled=0
3- Remake Yum's cache:
yum clean all
yum makecache
Next, you should be able to run "yum update" with no issues.
Note: In certain cases if disabling the [imunify360-rollout-2] repository alone doesn't resolve the issue then you might have to disable the [imunify360] repository as well. That repository is found here:
/etc/yum.repos.d/imunify360.repo