I had to recently patch several ODAs from 19.28 to 19.30, and one ODA patching failed running the prepatch report which is mandatory and helpful before going to patch the ODA. For each step (server, grid or storage) a prepatch report is needed. I had to troubleshoot and I could solve the problem, and I thought it would be more than interesting to share it, expecting it might be helpful.

Problem description

After dcs-admin update, dcs components update, repository update with grid and rdbms clones, I have run a prepatch report, and decided to run it already for all components : server, grid and storage.

This is why we will see in the output following part : OS, ILOM, ORACHKSERVER, SERVER, STORAGE, RHPGI, GI.

Running the prepatch report:

[root@ODA01 ~]# /opt/oracle/dcs/bin/odacli create-prepatchreport -sc -gi -st -v 19.30.0.0.0

Job details
----------------------------------------------------------------
                     ID:  6681af21-907a-4ffc-8add-d40af11441ae
            Description:  Patch pre-checks for [OS, ILOM, ORACHKSERVER, SERVER, STORAGE, RHPGI, GI] to 19.30.0.0.0
                 Status:  Created
                Created:  March 29, 2026 10:35:01 CEST
                Message:  Use 'odacli describe-prepatchreport -i 6681af21-907a-4ffc-8add-d40af11441ae' to check details of results

Task Name                                Start Time                               End Time                                 Status
---------------------------------------- ---------------------------------------- ---------------------------------------- ----------------

[root@ODA01 ~]#

Describing the report, I could see that it failed on the OS rpm verification:

[root@ODA01 ~]# odacli describe-prepatchreport -i 6681af21-907a-4ffc-8add-d40af11441ae

Prepatch Report
------------------------------------------------------------------------
                 Job ID:  6681af21-907a-4ffc-8add-d40af11441ae
            Description:  Patch pre-checks for [OS, ILOM, ORACHKSERVER, SERVER, STORAGE, RHPGI, GI] to 19.30.0.0.0
                 Status:  FAILED
                Created:  March 29, 2026 10:35:01 AM CEST
                 Result:  One or more pre-checks failed for [OS]

Node Name
---------------
ODA01

Pre-Check                      Status   Comments
------------------------------ -------- --------------------------------------
__OS__
Validate supported versions     Success   Validated minimum supported versions.
Validate patching tag           Success   Validated patching tag: 19.30.0.0.0.
Is patch location available     Success   Patch location is available.
Verify All OS patches           Failed    DCS-10252 - dnf dry-run execution
                                          failed: check
                                          /opt/oracle/dcs/log/jobfiles/
                                          dnfdryrunout_2026-03-29_10-35-
                                          15.0673_536.log file for more details
Validate command execution      Success   Validated command execution

__ILOM__
Validate ILOM server reachable  Success   Successfully connected with ILOM
                                          server using public IP and USB
                                          interconnect
Validate supported versions     Success   Validated minimum supported versions.
Validate patching tag           Success   Validated patching tag: 19.30.0.0.0.
Is patch location available     Success   Patch location is available.
Checking Ilom patch Version     Success   Successfully verified the versions
Patch location validation       Success   Successfully validated location
Validate command execution      Success   Validated command execution

__ORACHK__
Running orachk                  Success   Successfully ran Orachk
Validate command execution      Success   Validated command execution

__SERVER__
Validate local patching         Success   Successfully validated server local
                                          patching
Validate all KVM ACFS           Success   All KVM ACFS resources are running
resources are running
Validate DB System VM states    Success   All DB System VMs states are expected
Validate command execution      Success   Validated command execution

__STORAGE__
Validate patching tag           Success   Validated patching tag: 19.30.0.0.0.
Patch location validation       Success   Verified patch location
Patch tag validation            Success   Verified patch tag
Storage patch tag validation    Success   Verified storage patch location
Verify ASM disks status         Success   ASM disks are online
Validate command execution      Success   Validated command execution

__RHPGI__
Validate available space        Success   Validated free space under /u01
Evaluate GI patching            Success   Successfully validated GI patching
Validate command execution      Success   Validated command execution

__GI__
Validate GI metadata            Success   Successfully validated GI metadata
Validate supported GI versions  Success   Successfully validated minimum version
Is clusterware running          Success   Clusterware is running
Validate patching tag           Success   Validated patching tag: 19.30.0.0.0.
Is system provisioned           Success   Verified system is provisioned
Validate ASM is online          Success   ASM is online
Validate kernel log level       Success   Successfully validated the OS log
                                          level
Validate Central Inventory      Success   oraInventory validation passed
Validate patching locks         Success   Validated patching locks
Validate clones location exist  Success   Validated clones location
Validate DB start dependencies  Success   DBs START dependency check passed
Validate DB stop dependencies   Success   DBs STOP dependency check passed
Validate space for clones       Success   Clones volume is already created
volume
Validate command execution      Success   Validated command execution

[root@ODA01 ~]#

I checked the appropriate log, and could easily guess that the process complained about missing rhn-client-tools:

[root@ODA01 ~]# view /opt/oracle/dcs/log/jobfiles/dnfdryrunout_2026-03-29_10-35-15.0673_536.log
2026-03-29 10:35:29,977 [DNFHelper] INFO    : File path /tmp/dcsfiles/dnfoperation_2026-03-29_10-35-15.0676_536.json exists
2026-03-29 10:35:29,977 [DNFHelper] INFO    : File path /tmp/dcsfiles/dnfoperation_2026-03-29_10-35-15.0676_536.json is a regular file
2026-03-29 10:35:29,979 [dnf      ] DEBUG   : User-Agent: constructed: 'libdnf (Oracle Linux Server 8.10; server; Linux.x86_64)'
2026-03-29 10:35:29,991 [dnf      ] DEBUG   : User-Agent: constructed: 'libdnf (Oracle Linux Server 8.10; server; Linux.x86_64)'
2026-03-29 10:35:30,139 [dnf      ] DEBUG   : repo: using cache for: PrecheckOSPatchRepo
2026-03-29 10:35:30,147 [dnf      ] DEBUG   : PrecheckOSPatchRepo: using metadata from Sun 29 Mar 2026 10:35:12 AM CEST.
2026-03-29 10:35:30,148 [dnf      ] INFO    : Last metadata expiration check: 0:00:18 ago on Sun 29 Mar 2026 10:35:12 AM CEST.
2026-03-29 10:35:31,907 [DNFHelper] DEBUG   : === DNF Plugin Status ===
2026-03-29 10:35:31,907 [DNFHelper] DEBUG   : DNF plugins are enabled
2026-03-29 10:35:31,910 [DNFHelper] DEBUG   : === Debug Info ===
2026-03-29 10:35:31,910 [DNFHelper] DEBUG   : Operation RPM Metadata: {"install": ["hmpipmitool.x86_64", "rhn-setup.x86_64", "uptrack-updates-5.15.0-316.196.4.1.el8uek.x86_64.noarch", "ksplice-offline.x86_64", "ksplice.x86_64"], "exclude": ["linux-firmware-core.noarch"], "remove": ["uptrack-updates-5.15.0-310.184.5.2.el8uek.x86_64.noarch"]}
2026-03-29 10:35:31,910 [DNFHelper] DEBUG   : Installed packages: ['MegaCli-8.07.07-1.noarch', 'NetworkManager-1:1.40.16-19.0.1.el8_10.x86_64', 'NetworkManager-config-server-1:1.40.16-19.0.1.el8_10.noarch', 'NetworkManager-libnm-1:1.40.16-19.0.1.el8_10.x86_64', 'NetworkManager-team-1:1.40.16-19.0.1.el8_10.x86_64', 'NetworkManager-tui-1:1.40.16-19.0.1.el8_10.x86_64', 'VRTSnbcfg-10.2.0.1-1686143553.x86_64', 'VRTSnbclibs-10.2.0.1-1686143611.x86_64', 'VRTSnbclt-10.2.0.1-1686143729.x86_64', 'VRTSnbpck-10.2.0.1-1686143786.x86_64', 'VRTSpbx-1.17.62.5-5.x86_64', 'VRTSpddea-18.0.1.0-0023.x86_64', 'abattis-cantarell-fonts-0.0.25-6.el8.noarch', 'acl-2.2.53-3.el8.x86_64', 'adcli-0.9.2-1.el8.x86_64', 'adwaita-cursor-theme-3.28.0-3.el8.noarch', 'adwaita-icon-theme-3.28.0-3.el8.noarch', 'aide-0.16-14.el8_5.1.x86_64', 'alsa-lib-1.2.10-2.el8.x86_64', 'annobin-11.13-2.0.6.el8.x86_64', 'at-3.1.20-12.el8.x86_64', 'at-spi2-atk-2.26.2-1.el8.x86_64', 'at-spi2-core-2.28.0-1.el8.x86_64', 'atk-2.28.1-1.el8.x86_64', 'attr-2.4.48-3.el8.x86_64', 'audit-3.1.2-1.0.1.el8.x86_64', 'audit-libs-3.1.2-1.0.1.el8.x
...
...
...
2026-03-29 10:35:32,505 [DNFHelper] ERROR   : Dependency solving failed
2026-03-29 10:35:32,505 [DNFHelper] ERROR   : Error occured:
Traceback (most recent call last):
  File "/opt/oracle/oak/pkgrepos/scripts/19.30.0.0.0/dnfhelper.py", line 315, in main
    metadata_file=metadata_file
  File "/opt/oracle/oak/pkgrepos/scripts/19.30.0.0.0/dnfhelper.py", line 226, in run_combined_dnf_txn
    base.resolve()
  File "/usr/lib/python3.6/site-packages/dnf/base.py", line 906, in resolve
    raise exc
dnf.exceptions.DepsolveError:
 Problem: conflicting requests
  - nothing provides rhn-client-tools = 2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe needed by rhn-setup-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64 from PrecheckOSPatchRepo

Analysing problem and root cause

I first checked if the package is really missing:

[root@ODA01 ~]# rpm -qa | grep -i rhn-client-tools
[root@ODA01 ~]#

And it was definitively missing, when on other ODA it was existing:

[root@ODA02 ~]# rpm -qa | grep -i rhn-client-tools
python3-rhn-client-tools-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64
rhn-client-tools-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64
[root@ODA02 ~]#

I checked in the history of the package management if one transaction could have affected this.

[root@ODA01 ~]# dnf history | grep -i rhn-client-tools
     2 | remove -y rhn-client-tools                                    | 2024-03-12 17:27 | Removed        |   16  <
[root@ODA01 ~]#

And it was the case! Someone manually removed the package 2 years ago. And also we can see that 16 dependencies rpm have been removed as well. What a mess!

I take the opportunity here to remind that an ODA IS AN APPLIANCE, and not a normal linux server. Any yum or dnf changes will have huge impact on the ODA patching, knowing that each version is coming with its bundle patch version, and the ODA will lock the repository. If a package is needed (for example, veeam agent plugin) it is always better to prioritise an installation with a tar file which will be totally transparent for the ODA patching. Otherwise it is better to install each rpm individually, avoiding if possible yum or dnf. The worst of course is removing a package with several dependencies. dnf remove including dependencies is of course something that I would never recommend to run on an ODA.

The second question we can raise, is why now? We have been running several version from 2024 to 2026 and it seems only the 19.30 version is complaining about it.

Let’s list all the dependant packages that have been removed during this dnf transaction…

[root@ODA01 ~]# dnf history info 2
Transaction ID : 2
Begin time     : Tue 12 Mar 2024 05:27:35 PM CET
Begin rpmdb    : 1162:21b3b42bf2d4360e1ace842a41737674018ff3da
End time       : Tue 12 Mar 2024 05:27:36 PM CET (1 seconds)
End rpmdb      : 1146:a140a149ea28fdac865a8abdbe954771f896a078
User           : root 
Return-Code    : Success
Releasever     : 8
Command Line   : remove -y rhn-client-tools
Comment        :
Packages Altered:
    Removed dnf-plugin-spacewalk-2.8.5-11.0.3.module+el8.3.0+20070+f5719e00.noarch         @@System
    Removed python3-dmidecode-3.12.3-2.el8.x86_64                                          @@System
    Removed python3-dnf-plugin-spacewalk-2.8.5-11.0.3.module+el8.3.0+20070+f5719e00.noarch @@System
    Removed python3-dnf-plugin-ulninfo-0.3-2.module+el8.4.0+20142+f119a2fa.noarch          @@System
    Removed python3-hwdata-2.3.6-3.el8.noarch                                              @@System
    Removed python3-librepo-1.14.2-4.el8.x86_64                                            @@System
    Removed python3-netifaces-0.10.6-4.el8.x86_64                                          @@System
    Removed python3-newt-0.52.20-11.el8.x86_64                                             @@System
    Removed python3-rhn-check-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64           @@System
    Removed python3-rhn-client-tools-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64    @@System
    Removed python3-rhn-setup-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64           @@System
    Removed rhn-check-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64                   @@System
    Removed rhn-client-tools-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64            @@System
    Removed rhn-setup-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64                   @@System
    Removed rhnsd-5.0.35-3.0.1.module+el8+5192+3173336a.x86_64                             @@System
    Removed usermode-1.113-2.el8.x86_64                                                    @@System
[root@ODA01 yum.repos.d]#

Of course, I do not need to mention that such action has not been performed on the other ODA from the customer field, and this is why the patching did not raise this issue on the other ODAs.

[root@ODA02 ~]# dnf history | grep -i rhn-client-tools
[root@ODA02 ~]#

Resolution

The ODA had no internet access. That was a pity as I could have easily installed the needed packages that were removed from the official oracle linux distribution package manager, using dnf. So the only way of resolution for me was to download and install each package manually. In any case it was not worth to try otherwise the patching activity could have been stopped here. Stuff work as I had to download and install about 16 RPMs.

At the beginning, I tried to find the needed rpm from the Oracle linux distribution (yum.oracle.com) directly, but I need to say that it was not that so easy to find all the rpm. Also the maintenance windows was running on, and I had to find quickly a solution. I then get used of pkgs.org project which is a kind of search engine linking to the appropriate distribution mirror to download the package. We can see the home page of each project. It was much helpful because you can easily find the package, and in the download part it refers you to the exact rpm package you need from the official documentation. I found it so helpful knowing the time constraints.

For example for rhn-setup package, we can easily find it from pkgs.org:

https://oraclelinux.pkgs.org/8/ol8-appstream-x86_64/rhn-setup-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64.rpm.html

In the download part you will find the exact distribution link for the source and the binary, as well as the mirror, as displayed in next table:

TypeURL
Binary Packagehttps://yum.oracle.com/repo/OracleLinux/OL8/appstream/x86_64/getPackage/rhn-setup-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64.rpm
Source Packagehttps://yum.oracle.com/repo/OracleLinux/OL8/appstream/x86_64/getPackageSource/rhn-client-tools-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.src.rpm
Mirroryum.oracle.com

So the package comes from the official distribution, and you can confirm for each of your downloads.

I could install the first package which are needed for rhn-client-tools:

[root@ODA01 19.30]# rpm -ivh python3-newt-0.52.20-11.el8.x86_64.rpm
warning: python3-newt-0.52.20-11.el8.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ad986da3: NOKEY
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:python3-newt-0.52.20-11.el8      ################################# [100%]

[root@ODA01 19.30]# rpm -ivh python3-netifaces-0.10.6-4.el8.x86_64.rpm
warning: python3-netifaces-0.10.6-4.el8.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ad986da3: NOKEY
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:python3-netifaces-0.10.6-4.el8   ################################# [100%]

[root@ODA01 19.30]# rpm -ivh python3-hwdata-2.3.6-3.el8.noarch.rpm
warning: python3-hwdata-2.3.6-3.el8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID ad986da3: NOKEY
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:python3-hwdata-2.3.6-3.el8       ################################# [100%]

[root@ODA01 19.30]# rpm -ivh python3-dmidecode-3.12.2-15.el8.x86_64.rpm
warning: python3-dmidecode-3.12.2-15.el8.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ad986da3: NOKEY
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:python3-dmidecode-3.12.2-15.el8  ################################# [100%]

I then tried to install rhn-client-tools and python3-rhn-client-tools:

[root@ODA01 19.30]# rpm -ivh python3-rhn-client-tools-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64.rpm
warning: python3-rhn-client-tools-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ad986da3: NOKEY
error: Failed dependencies:
        rhn-client-tools = 2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe is needed by python3-rhn-client-tools-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64

[root@ODA01 19.30]# rpm -ivh rhn-client-tools-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64.rpm
warning: rhn-client-tools-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ad986da3: NOKEY
error: Failed dependencies:
        python3-rhn-client-tools = 2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe is needed by rhn-client-tools-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64
[root@ODA01 19.30]#

But it was like each one needs the other, so it was not possible to install it with rpm binary. I then used dnf to install them.

[root@ODA01 19.30]# mkdir local_repo_issue_rhn
[root@ODA01 19.30]# mv rhn-client-tools-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64.rpm ./local_repo_issue_rhn/
[root@ODA01 19.30]# mv python3-rhn-client-tools-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64.rpm ./local_repo_issue_rhn/
[root@ODA01 19.30]# cd local_repo_issue_rhn/
[root@ODA01 local_repo_issue_rhn]# dnf install *.rpm
BKB_Common                                                                                                                                                                                                                            95 kB/s | 1.5 kB     00:00
Dependencies resolved.
=====================================================================================================================================================================================================================================================================
 Package                                                           Architecture                                    Version                                                                               Repository                                             Size
=====================================================================================================================================================================================================================================================================
Installing:
 python3-rhn-client-tools                                          x86_64                                          2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe                                           @commandline                                          110 k
 rhn-client-tools                                                  x86_64                                          2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe                                           @commandline                                          394 k

Transaction Summary
=====================================================================================================================================================================================================================================================================
Install  2 Packages

Total size: 503 k
Installed size: 2.4 M
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                                                                                             1/1
  Installing       : rhn-client-tools-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64                                                                                                                                                                         1/2
  Running scriptlet: rhn-client-tools-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64                                                                                                                                                                         1/2
  Installing       : python3-rhn-client-tools-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64                                                                                                                                                                 2/2
  Running scriptlet: python3-rhn-client-tools-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64                                                                                                                                                                 2/2
  Verifying        : python3-rhn-client-tools-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64                                                                                                                                                                 1/2
  Verifying        : rhn-client-tools-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64                                                                                                                                                                         2/2

Installed:
  python3-rhn-client-tools-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64                                                           rhn-client-tools-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64

Complete!
[root@ODA01 local_repo_issue_rhn]#

Working, I had now the rhn-client-tools installed:

[root@ODA01 local_repo_issue_rhn]# rpm -qa | grep -i rhn-client
rhn-client-tools-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64
python3-rhn-client-tools-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64
[root@ODA01 local_repo_issue_rhn]#

I tried a new prepatch report:

[root@ODA01 local_repo_issue_rhn]# cd
[root@ODA01 ~]# /opt/oracle/dcs/bin/odacli create-prepatchreport -sc -gi -st -v 19.30.0.0.0

Job details
----------------------------------------------------------------
                     ID:  0af9bc46-2bfe-42a1-a6dc-bb89b9c0abb8
            Description:  Patch pre-checks for [OS, ILOM, ORACHKSERVER, SERVER, STORAGE, RHPGI, GI] to 19.30.0.0.0
                 Status:  Created
                Created:  March 29, 2026 12:57:10 CEST
                Message:  Use 'odacli describe-prepatchreport -i 0af9bc46-2bfe-42a1-a6dc-bb89b9c0abb8' to check details of results

Task Name                                Start Time                               End Time                                 Status
---------------------------------------- ---------------------------------------- ---------------------------------------- ----------------

[root@ODA01 ~]#

Which failed again on the same OS patches verification step:

[root@ODA01 ~]# odacli describe-prepatchreport -i 0af9bc46-2bfe-42a1-a6dc-bb89b9c0abb8

Prepatch Report
------------------------------------------------------------------------
                 Job ID:  0af9bc46-2bfe-42a1-a6dc-bb89b9c0abb8
            Description:  Patch pre-checks for [OS, ILOM, ORACHKSERVER, SERVER, STORAGE, RHPGI, GI] to 19.30.0.0.0
                 Status:  FAILED
                Created:  March 29, 2026 12:57:10 PM CEST
                 Result:  One or more pre-checks failed for [OS]

Node Name
---------------
ODA01

Pre-Check                      Status   Comments
------------------------------ -------- --------------------------------------
__OS__
Validate supported versions     Success   Validated minimum supported versions.
Validate patching tag           Success   Validated patching tag: 19.30.0.0.0.
Is patch location available     Success   Patch location is available.
Verify All OS patches           Failed    DCS-10252 - dnf dry-run execution
                                          failed: check
                                          /opt/oracle/dcs/log/jobfiles/
                                          dnfdryrunout_2026-03-29_12-57-
                                          23.0066_1614.log file for more details
...
...
...

And the log showed other missing packages that was part of the dependencies removed by the manual dnf remove command.

[root@ODA01 ~]# view /opt/oracle/dcs/log/jobfiles/dnfdryrunout_2026-03-29_12-57-23.0066_1614.log
...
...
...
dnf.exceptions.DepsolveError:
 Problem: package rhn-setup-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64 from PrecheckOSPatchRepo requires rhnsd, but none of the providers can be installed
  - package rhnsd-5.0.35-3.0.2.module+el8.10.0+90373+b70ceaf0.x86_64 from PrecheckOSPatchRepo requires rhn-check >= 0.0.8, but none of the providers can be installed
  - conflicting requests
  - nothing provides dnf-plugin-spacewalk >= 2.4.0 needed by rhn-check-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64 from PrecheckOSPatchRepo

So I installed all other dependencies rpm.

I installed usermode rpm:

[root@ODA01 19.30]# rpm -ivh usermode-1.113-2.el8.x86_64.rpm
warning: usermode-1.113-2.el8.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ad986da3: NOKEY
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing..a
   1:usermode-1.113-2.el8             ################################# [100%]
[root@ODA01 19.30]#

And finally all others with dnf:

[root@ODA01 local_repo_issue_rhn]# ls -ltrh
total 568K
-rw-r--r--. 1 root root 33K Mar 29 13:24 rhn-setup-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64.rpm
-rw-r--r--. 1 root root 26K Mar 29 13:31 rhn-check-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64.rpm
-rw-r--r--. 1 root root 72K Mar 29 13:31 python3-rhn-setup-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64.rpm
-rw-r--r--. 1 root root 52K Mar 29 13:41 rhnsd-5.0.35-3.0.1.module+el8+5192+3173336a.x86_64.rpm
-rw-r--r--. 1 root root 31K Mar 29 13:53 python3-dnf-plugin-spacewalk-2.8.5-11.0.3.module+el8.3.0+20070+f5719e00.noarch.rpm
-rw-r--r--. 1 root root 54K Mar 29 14:08 python3-librepo-1.14.2-4.el8.x86_64.rpm
-rw-r--r--. 1 root root 24K Mar 29 14:08 dnf-plugin-spacewalk-2.8.5-11.0.3.module+el8.3.0+20070+f5719e00.noarch.rpm
-rw-r--r--. 1 root root 12K Mar 29 14:31 python3-dnf-plugin-ulninfo-0.3-3.module+el8.10.0+90380+96a02ce9.noarch.rpm
-rw-r--r--. 1 root root 93K Mar 29 14:31 librepo-1.14.2-4.el8.x86_64.rpm
-rw-r--r--. 1 root root 40K Mar 29 14:43 python3-rhn-check-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64.rpm

[root@ODA01 local_repo_issue_rhn]# dnf install *.rpm
BKB_Common                                                                                                                                                                                                                            37 kB/s | 1.5 kB     00:00
Dependencies resolved.
=====================================================================================================================================================================================================================================================================
 Package                                                              Architecture                                   Version                                                                              Repository                                            Size
=====================================================================================================================================================================================================================================================================
Installing:
 dnf-plugin-spacewalk                                                 noarch                                         2.8.5-11.0.3.module+el8.3.0+20070+f5719e00                                           @commandline                                          24 k
 python3-dnf-plugin-spacewalk                                         noarch                                         2.8.5-11.0.3.module+el8.3.0+20070+f5719e00                                           @commandline                                          31 k
 python3-dnf-plugin-ulninfo                                           noarch                                         0.3-3.module+el8.10.0+90380+96a02ce9                                                 @commandline                                          11 k
 python3-librepo                                                      x86_64                                         1.14.2-4.el8                                                                         @commandline                                          54 k
 python3-rhn-check                                                    x86_64                                         2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe                                          @commandline                                          39 k
 python3-rhn-setup                                                    x86_64                                         2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe                                          @commandline                                          71 k
 rhn-check                                                            x86_64                                         2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe                                          @commandline                                          26 k
 rhn-setup                                                            x86_64                                         2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe                                          @commandline                                          32 k
 rhnsd                                                                x86_64                                         5.0.35-3.0.1.module+el8+5192+3173336a                                                @commandline                                          51 k
Downgrading:
 librepo                                                              x86_64                                         1.14.2-4.el8                                                                         @commandline                                          93 k

Transaction Summary
=====================================================================================================================================================================================================================================================================
Install    9 Packages
Downgrade  1 Package

Total size: 432 k
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                                                                                             1/1
  Downgrading      : librepo-1.14.2-4.el8.x86_64                                                                                                                                                                                                                1/11
  Installing       : python3-librepo-1.14.2-4.el8.x86_64                                                                                                                                                                                                        2/11
  Running scriptlet: dnf-plugin-spacewalk-2.8.5-11.0.3.module+el8.3.0+20070+f5719e00.noarch                                                                                                                                                                     3/11
  Installing       : dnf-plugin-spacewalk-2.8.5-11.0.3.module+el8.3.0+20070+f5719e00.noarch                                                                                                                                                                     3/11
  Running scriptlet: dnf-plugin-spacewalk-2.8.5-11.0.3.module+el8.3.0+20070+f5719e00.noarch                                                                                                                                                                     3/11
  Installing       : python3-dnf-plugin-ulninfo-0.3-3.module+el8.10.0+90380+96a02ce9.noarch                                                                                                                                                                     4/11
  Installing       : python3-dnf-plugin-spacewalk-2.8.5-11.0.3.module+el8.3.0+20070+f5719e00.noarch                                                                                                                                                             5/11
  Installing       : python3-rhn-check-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64                                                                                                                                                                       6/11
  Installing       : rhn-check-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64                                                                                                                                                                               7/11
  Installing       : rhnsd-5.0.35-3.0.1.module+el8+5192+3173336a.x86_64                                                                                                                                                                                         8/11
  Running scriptlet: rhnsd-5.0.35-3.0.1.module+el8+5192+3173336a.x86_64                                                                                                                                                                                         8/11
  Installing       : python3-rhn-setup-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64                                                                                                                                                                       9/11
  Installing       : rhn-setup-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64                                                                                                                                                                              10/11
  Cleanup          : librepo-1.14.2-5.el8.x86_64                                                                                                                                                                                                               11/11
  Running scriptlet: librepo-1.14.2-5.el8.x86_64                                                                                                                                                                                                               11/11
  Verifying        : librepo-1.14.2-4.el8.x86_64                                                                                                                                                                                                                1/11
  Verifying        : librepo-1.14.2-5.el8.x86_64                                                                                                                                                                                                                2/11
  Verifying        : dnf-plugin-spacewalk-2.8.5-11.0.3.module+el8.3.0+20070+f5719e00.noarch                                                                                                                                                                     3/11
  Verifying        : python3-dnf-plugin-spacewalk-2.8.5-11.0.3.module+el8.3.0+20070+f5719e00.noarch                                                                                                                                                             4/11
  Verifying        : python3-dnf-plugin-ulninfo-0.3-3.module+el8.10.0+90380+96a02ce9.noarch                                                                                                                                                                     5/11
  Verifying        : python3-librepo-1.14.2-4.el8.x86_64                                                                                                                                                                                                        6/11
  Verifying        : python3-rhn-check-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64                                                                                                                                                                       7/11
  Verifying        : python3-rhn-setup-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64                                                                                                                                                                       8/11
  Verifying        : rhn-check-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64                                                                                                                                                                               9/11
  Verifying        : rhnsd-5.0.35-3.0.1.module+el8+5192+3173336a.x86_64                                                                                                                                                                                        10/11
  Verifying        : rhn-setup-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64                                                                                                                                                                              11/11

Downgraded:
  librepo-1.14.2-4.el8.x86_64
Installed:
  dnf-plugin-spacewalk-2.8.5-11.0.3.module+el8.3.0+20070+f5719e00.noarch              python3-dnf-plugin-spacewalk-2.8.5-11.0.3.module+el8.3.0+20070+f5719e00.noarch              python3-dnf-plugin-ulninfo-0.3-3.module+el8.10.0+90380+96a02ce9.noarch
  python3-librepo-1.14.2-4.el8.x86_64                                                 python3-rhn-check-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64                        python3-rhn-setup-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64
  rhn-check-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64                        rhn-setup-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64                                rhnsd-5.0.35-3.0.1.module+el8+5192+3173336a.x86_64

Complete!
[root@ODA01 local_repo_issue_rhn]#

I checked the packages were there:

[root@ODA01 local_repo_issue_rhn]# rpm -qa | grep -i rhn
python3-rhnlib-2.8.6-8.0.2.module+el8.7.0+21027+f0093b7a.noarch
rhn-client-tools-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64
python3-rhn-check-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64
python3-rhn-setup-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64
rhnsd-5.0.35-3.0.1.module+el8+5192+3173336a.x86_64
python3-rhn-client-tools-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64
rhn-check-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64
rhn-setup-2.8.16-13.0.6.module+el8.7.0+21032+057d0dfe.x86_64
rhnlib-2.8.6-8.0.2.module+el8.7.0+21027+f0093b7a.noarch
[root@ODA01 local_repo_issue_rhn]#

And rerun a precheck report:

[root@ODA01 ~]# /opt/oracle/dcs/bin/odacli create-prepatchreport -sc -gi -st -v 19.30.0.0.0

Job details
----------------------------------------------------------------
                     ID:  3d5f5d96-f566-40c7-ad84-38c436fa3bba
            Description:  Patch pre-checks for [OS, ILOM, ORACHKSERVER, SERVER, STORAGE, RHPGI, GI] to 19.30.0.0.0
                 Status:  Created
                Created:  March 29, 2026 14:46:06 CEST
                Message:  Use 'odacli describe-prepatchreport -i 3d5f5d96-f566-40c7-ad84-38c436fa3bba' to check details of results

Task Name                                Start Time                               End Time                                 Status
---------------------------------------- ---------------------------------------- ---------------------------------------- ----------------

[root@ODA01 ~]#

Which was that time successful:

[root@ODA01 ~]# odacli describe-prepatchreport -i 3d5f5d96-f566-40c7-ad84-38c436fa3bba

Prepatch Report
------------------------------------------------------------------------
                 Job ID:  3d5f5d96-f566-40c7-ad84-38c436fa3bba
            Description:  Patch pre-checks for [OS, ILOM, ORACHKSERVER, SERVER, STORAGE, RHPGI, GI] to 19.30.0.0.0
                 Status:  SUCCESS
                Created:  March 29, 2026 2:46:06 PM CEST
                 Result:  All pre-checks succeeded

Node Name
---------------
ODA01

Pre-Check                      Status   Comments
------------------------------ -------- --------------------------------------
__OS__
Validate supported versions     Success   Validated minimum supported versions.
Validate patching tag           Success   Validated patching tag: 19.30.0.0.0.
Is patch location available     Success   Patch location is available.
Verify All OS patches           Success   No dependencies found for RPMs being
                                          removed, updated and installed. Check
                                          /opt/oracle/dcs/log/jobfiles/
                                          dnfdryrunout_2026-03-29_14-46-
                                          18.0970_2312.log file for more details
Validate command execution      Success   Validated command execution

__ILOM__
Validate ILOM server reachable  Success   Successfully connected with ILOM
                                          server using public IP and USB
                                          interconnect
Validate supported versions     Success   Validated minimum supported versions.
Validate patching tag           Success   Validated patching tag: 19.30.0.0.0.
Is patch location available     Success   Patch location is available.
Checking Ilom patch Version     Success   Successfully verified the versions
Patch location validation       Success   Successfully validated location
Validate command execution      Success   Validated command execution

__ORACHK__
Running orachk                  Success   Successfully ran Orachk
Validate command execution      Success   Validated command execution

__SERVER__
Validate local patching         Success   Successfully validated server local
                                          patching
Validate all KVM ACFS           Success   All KVM ACFS resources are running
resources are running
Validate DB System VM states    Success   All DB System VMs states are expected
Validate command execution      Success   Validated command execution

__STORAGE__
Validate patching tag           Success   Validated patching tag: 19.30.0.0.0.
Patch location validation       Success   Verified patch location
Patch tag validation            Success   Verified patch tag
Storage patch tag validation    Success   Verified storage patch location
Verify ASM disks status         Success   ASM disks are online
Validate command execution      Success   Validated command execution

__RHPGI__
Validate available space        Success   Validated free space under /u01
Evaluate GI patching            Success   Successfully validated GI patching
Validate command execution      Success   Validated command execution

__GI__
Validate GI metadata            Success   Successfully validated GI metadata
Validate supported GI versions  Success   Successfully validated minimum version
Is clusterware running          Success   Clusterware is running
Validate patching tag           Success   Validated patching tag: 19.30.0.0.0.
Is system provisioned           Success   Verified system is provisioned
Validate ASM is online          Success   ASM is online
Validate kernel log level       Success   Successfully validated the OS log
                                          level
Validate Central Inventory      Success   oraInventory validation passed
Validate patching locks         Success   Validated patching locks
Validate clones location exist  Success   Validated clones location
Validate DB start dependencies  Success   DBs START dependency check passed
Validate DB stop dependencies   Success   DBs STOP dependency check passed
Validate space for clones       Success   Clones volume is already created
volume
Validate command execution      Success   Validated command execution

[root@ODA01 ~]#

I could then successfully patch the server components part:

[root@ODA01 ~]# /opt/oracle/dcs/bin/odacli update-servercomponents -v 19.30.0.0.0
{
  "jobId" : "fd6ed1d5-1982-46da-8c8c-dfa862f6427a",
  "status" : "Created",
  "message" : "A server update job has been initiated. If a reboot is required, it will be performed as part of the update process. The final status will be provided once the update operation has been completed on all nodes.",
  "reports" : [ ],
  "createTimestamp" : "March 29, 2026 15:00:09 CEST",
  "resourceList" : [ ],
  "description" : "Server Patching to 19.30.0.0.0",
  "updatedTime" : "March 29, 2026 15:00:09 CEST",
  "jobType" : null,
  "cpsMetadata" : null,
  "ecJobId" : null
}
[root@ODA01 ~]#

[root@ODA01 ~]# odacli describe-job -i fd6ed1d5-1982-46da-8c8c-dfa862f6427a

Job details
----------------------------------------------------------------
                     ID:  fd6ed1d5-1982-46da-8c8c-dfa862f6427a
            Description:  Server Patching to 19.30.0.0.0
                 Status:  Success
                Created:  March 29, 2026 15:00:09 CEST
                Message:

Task Name                                Start Time                               End Time                                 Status
---------------------------------------- ---------------------------------------- ---------------------------------------- ----------------
Modify BM udev rules                     March 29, 2026 15:00:14 CEST             March 29, 2026 15:00:26 CEST             Success
Validate ILOM server reachable           March 29, 2026 15:00:14 CEST             March 29, 2026 15:00:14 CEST             Success
Validating GI user metadata              March 29, 2026 15:00:14 CEST             March 29, 2026 15:00:14 CEST             Success
Stop oakd                                March 29, 2026 15:00:26 CEST             March 29, 2026 15:00:30 CEST             Success
Creating local repository                March 29, 2026 15:00:30 CEST             March 29, 2026 15:00:31 CEST             Success
OSPatchBaseRepo
Updating versionlock plugin              March 29, 2026 15:00:31 CEST             March 29, 2026 15:00:34 CEST             Success
Applying OS Patches                      March 29, 2026 15:00:34 CEST             March 29, 2026 15:07:16 CEST             Success
Applying HMP Patches                     March 29, 2026 15:07:16 CEST             March 29, 2026 15:07:19 CEST             Success
Creating local repository HMPPatchRepo   March 29, 2026 15:07:16 CEST             March 29, 2026 15:07:16 CEST             Success
Patch location validation                March 29, 2026 15:07:19 CEST             March 29, 2026 15:07:19 CEST             Success
Setting SELinux mode                     March 29, 2026 15:07:19 CEST             March 29, 2026 15:07:19 CEST             Success
Oda-hw-mgmt upgrade                      March 29, 2026 15:07:20 CEST             March 29, 2026 15:07:53 CEST             Success
Installing SQLcl software                March 29, 2026 15:07:53 CEST             March 29, 2026 15:07:57 CEST             Success
OSS Patching                             March 29, 2026 15:07:53 CEST             March 29, 2026 15:07:53 CEST             Success
Applying Firmware local Disk Patches     March 29, 2026 15:07:57 CEST             March 29, 2026 15:07:59 CEST             Success
Applying Firmware local Controller Patch March 29, 2026 15:07:59 CEST             March 29, 2026 15:11:23 CEST             Success
Applying Firmware shared Controller      March 29, 2026 15:11:23 CEST             March 29, 2026 15:11:42 CEST             Success
Patch
Checking Ilom patch Version              March 29, 2026 15:11:43 CEST             March 29, 2026 15:11:43 CEST             Success
Disabling IPMI v2                        March 29, 2026 15:11:43 CEST             March 29, 2026 15:11:44 CEST             Success
Patch location validation                March 29, 2026 15:11:43 CEST             March 29, 2026 15:11:43 CEST             Success
Save password in Wallet                  March 29, 2026 15:11:43 CEST             March 29, 2026 15:11:43 CEST             Success
Apply Ilom patch                         March 29, 2026 15:11:44 CEST             March 29, 2026 15:22:19 CEST             Success
Copying Flash Bios to Temp location      March 29, 2026 15:22:19 CEST             March 29, 2026 15:22:19 CEST             Success
Start oakd                               March 29, 2026 15:22:20 CEST             March 29, 2026 15:22:36 CEST             Success
Add SYSNAME in Env                       March 29, 2026 15:22:37 CEST             March 29, 2026 15:22:37 CEST             Success
Cleanup JRE Home                         March 29, 2026 15:22:37 CEST             March 29, 2026 15:22:37 CEST             Success
Starting the clusterware                 March 29, 2026 15:22:37 CEST             March 29, 2026 15:23:29 CEST             Success
Update lvm.conf file                     March 29, 2026 15:23:30 CEST             March 29, 2026 15:23:30 CEST             Success
Generating and saving BOM                March 29, 2026 15:23:31 CEST             March 29, 2026 15:25:37 CEST             Success
Update System full patch version         March 29, 2026 15:23:31 CEST             March 29, 2026 15:23:31 CEST             Success
Update System rebootless patch version   March 29, 2026 15:23:31 CEST             March 29, 2026 15:23:31 CEST             Success
PreRebootNode Actions                    March 29, 2026 15:25:37 CEST             March 29, 2026 15:26:16 CEST             Success
Reboot Node                              March 29, 2026 15:26:16 CEST             March 29, 2026 15:39:48 CEST             Success

[root@ODA01 ~]#

To wrap up…

ODA is an appliance. Any bad behaviour with the rpm and dependencies will bring life more difficult to the consultant coming to patch your ODA. So thanks for sparing a thought for the consultant who will have to patch your ODA before you start playing with yum or dnf on your ODA. 😉