Usually errors similar to this do have one version (“X”) and something (“ZZZ”) that requires that version (X) installed. An update would remove X in order to replace it with Y, but X cannot be removed as long as ZZZ requires it. Typical case has ZZZ from EPEL when it has not been rebuilt for/with Y yet.
However, I were under impression that EPEL avoids offering same package names as the base distro. If both apptream and epel do have python3-botocore, then that assumption does not hold.
For comparison, AlmaLinux 9 does not have that package. Neither does RPM resource python3-botocore list Rocky, does it? (But does list 1.25.10-1.el9 for EPEL 9 and 1.31.62-1.el9 for EPEL 9 Testing.
Here is a full error for context.
The package installation is normaly done via ansible ansible.builtin.package module that installs bunch of packages, with python-botocore one of them.
To reproduce the issue when ansible fails following the upgrade to 9.4, I can just run the command below:
yum install python-boto3
Last metadata expiration check: 3:59:29 ago on Wed 29 May 2024 11:35:44 UTC.
Dependencies resolved.
========================================================================================================================================================================================================================================================================
Package Architecture Version Repository Size
========================================================================================================================================================================================================================================================================
Installing:
python3-boto3 noarch 1.22.10-1.el9 epel 161 k
Installing dependencies:
python3-botocore noarch 1.25.10-1.el9 epel 4.9 M
python3-jmespath noarch 0.9.4-11.el9 appstream 45 k
python3-s3transfer noarch 0.5.2-2.el9 epel 113 k
Transaction Summary
========================================================================================================================================================================================================================================================================
Install 4 Packages
Total download size: 5.2 M
Installed size: 64 M
Is this ok [y/N]: y
Downloading Packages:
(1/4): python3-boto3-1.22.10-1.el9.noarch.rpm 671 kB/s | 161 kB 00:00
(2/4): python3-botocore-1.25.10-1.el9.noarch.rpm 16 MB/s | 4.9 MB 00:00
(3/4): python3-s3transfer-0.5.2-2.el9.noarch.rpm 1.4 MB/s | 113 kB 00:00
(4/4): python3-jmespath-0.9.4-11.el9.noarch.rpm 84 kB/s | 45 kB 00:00
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 7.2 MB/s | 5.2 MB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : python3-jmespath-0.9.4-11.el9.noarch 1/4
Installing : python3-botocore-1.25.10-1.el9.noarch 2/4
Installing : python3-s3transfer-0.5.2-2.el9.noarch 3/4
Installing : python3-boto3-1.22.10-1.el9.noarch 4/4
Running scriptlet: python3-boto3-1.22.10-1.el9.noarch 4/4
Verifying : python3-jmespath-0.9.4-11.el9.noarch 1/4
Verifying : python3-boto3-1.22.10-1.el9.noarch 2/4
Verifying : python3-botocore-1.25.10-1.el9.noarch 3/4
Verifying : python3-s3transfer-0.5.2-2.el9.noarch 4/4
Installed:
python3-boto3-1.22.10-1.el9.noarch python3-botocore-1.25.10-1.el9.noarch python3-jmespath-0.9.4-11.el9.noarch python3-s3transfer-0.5.2-2.el9.noarch epel 4.9 M
yum install python-botocore
Last metadata expiration check: 3:59:44 ago on Wed 29 May 2024 11:35:44 UTC.
Package python3-botocore-1.25.10-1.el9.noarch is already installed.
Error:
Problem: problem with installed package python3-boto3-1.22.10-1.el9.noarch
- package python3-boto3-1.22.10-1.el9.noarch from @System requires (python3.9dist(botocore) < 1.26 with python3.9dist(botocore) >= 1.25.10), but none of the providers can be installed
- package python3-boto3-1.22.10-1.el9.noarch from epel requires (python3.9dist(botocore) < 1.26 with python3.9dist(botocore) >= 1.25.10), but none of the providers can be installed
- cannot install both python3-botocore-1.31.62-1.el9.noarch from appstream and python3-botocore-1.25.10-1.el9.noarch from @System
- cannot install both python3-botocore-1.25.10-1.el9.noarch from epel and python3-botocore-1.31.62-1.el9.noarch from appstream
- cannot install the best candidate for the job
(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)
No it means that both epel and appstream have the same package in the repo, the appstream version having the higher version. You just need to pick the one you want to use, by disabling the repo of the package version you don’t want to use.