Target certain version of package in DNF on CentOS Stream 9 image with bindep and ansible-builder

32 Views Asked by At

I am creating a custom AWX Execution Environment. I had a working image before, but needed to update it with some new requirements so I had to create a new image. Upon creating that new image my playbook failed on a task calling vmware_cluster_info. This task worked before so i went through and looked at every system/python package and ansible collection version that changed and tried the old ones one by one to find the one causing the issue.

I believe the perpetrator is openssl. The know working image used openssl-1:3.0.7-24.el9.x86_64 but the new version uses openssl-1:3.0.7-25.el9.x86_64.

Looking up the output on a DNF search these are the versions available:

[root@6b2b335bc34b bin]# dnf list openssl --showduplicates
Last metadata expiration check: 0:13:41 ago on Thu Feb 22 05:49:59 2024.
Installed Packages
openssl.x86_64                                    1:3.0.7-25.el9  @System
Available Packages
openssl.x86_64                                    1:3.0.7-19.el9  baseos
openssl.x86_64                                    1:3.0.7-20.el9  baseos
openssl.x86_64                                    1:3.0.7-21.el9  baseos
openssl.x86_64                                    1:3.0.7-24.el9  baseos
openssl.x86_64                                    1:3.0.7-25.el9  baseos

I need to force the older version when building my image to test out, so i assume i need the entire number listed above. For the bindep document i see that i have to use the == operator to define the version number. I learned that there must be a space between the package name and the operator. After trying this entry it failed as it did not like the colon, and failed during the build:

openssl ==1:3.0.7-24.el9

I then tried removing the "1:" as i read that is the epoch and not necessarily used, but that could entirely be wrong. So i tried the following entry in the bindep file:

openssl ==3.0.7-24.el9

This worked and finished the build, however, instead of installing 1:3.0.7-24.el9 it installed the latest version 1:3.0.7-25.el9.

I am not familiar with DNF at all, and I am not a fan of the versioning of packages. Any help would be greatly appreciated as i cannot find any documentation on bindep and how to force a certain version aside from this bindep doc

0

There are 0 best solutions below