When maintaining older RHEL, CentOS, AlmaLinux, Rocky Linux OS (legacy) installs, or HA cluster systems, you may (and will perhaps) occasionally hit RPM dependency problems during updates because a required package is missing from the currently enabled repositories.
One common scenario you mighty face is when the required missing RPM exists in another repository or on local storage, but YUM/DNF does not automatically pick it up, due to mismanaged central repositories, broken proxies or even OS package release bugs.
In this article shows how to solve these dependency issues by using local RPM directories and temporary repositories.
Here is a typical Error example:
# yum update
- Updating Subscription Management repositories.
- Unable to read consumer identity
- This system is not registered with an entitlement server.
- You can use subscription-manager to register.
The Error faced is:
# yum update
Last metadata expiration check: 0:00:20 ago on Tue 19 May 2026 11:15:32 AM CEST.
Problem: cannot install the best update candidate for package corosync-3.1.8-1.el8.x86_64
– nothing provides corosynclib(x86-64) = 3.1.8-1.el8_10.1 needed by corosync-3.1.8-1.el8_10.1.x86_64 from rhel-8-rhsm-ha
(try to add '–skip-broken' to skip uninstallable packages or '–nobest' to use not only best candidate packages)
Here as you can read from the error:
corosync update is available but the currently enabled repositories do not provide it, as the required package corosynclib exists elsewhere.
This often happens for reasons like
- Partially mirrored REPO systems,
- Network disconnected environments,
- On expired RHEL OS subscription,
- or migrated CentOS / RHEL (physical systems on another network or migrated VMs to another DC),
- Custom (old) EOL HA cluster setups.
- etc.
The missing RPM packages work around
There areat least 4 ways to fix YUM / DNF missing RPM packages:
- Install the RPM directly
- Create a temporary local repository
- Add another repository dynamically
- Use –repofrompath / Use –nobest as a fallback workaround (Not recommended)
1. Install the missing RPM directly from local file copy
If you already have the required package downloaded:
# yum install /root/packages/corosynclib-3.1.8-1.el8_10.1.x86_64.rpm
Try update retry:
# yum check-update
# yum update
YUM will now resolve dependencies successfully.
2. Create a Local Repository and put the missing package in
This is the cleanest solution if you maintain multiple RPMs.
a) Create Directory
# mkdir -p /root/localrepo
b) Copy RPMs to localrepo
# cp corosynclib-*.rpm /root/localrepo/
c) Install createrepo
# yum install createrepo
d) Generate repo Metadata
This is done with createrepo command the command is provided by a package RPM package “createrepo_c” so if you have it missing you will have to install it (note in older RPM distros the cmd was provided by createrepo)
# createrepo /root/localrepo
Add Repository Definition
Create local.repo :
# vim /etc/yum.repos.d/local.repo
Add:
[local]
name=Local Repository
baseurl=file:///root/localrepo
enabled=1
gpgcheck=0
e. Rebuild Cache and retry update again
# yum clean all
# yum makecache
Retry the update:
# yum update
YUM / DNF will automatically pull corosynclib from the local repository.
3. Use a temporary repository With –repofrompath
If you do not want permanent configuration files:
# yum –repofrompath=local,file:///root/localrepo \
–enablerepo=local \
update
This method is excellent for:
one-time fixes, for mass automation (fix wrong dependency on multiple servers), inside a rescue shells or if having to fix something offline on systems, that can’t be connected to the Internet.
4. Use another existing repository to pull the package from
If corosynclib exists in another disabled repository:
Check available repositories:
# yum repolist all
Then enable the required repository temporarily:
# yum –enablerepo=repo-name-corosync update
Or install directly:
# yum –enablerepo=repo-name-corosync install corosynclib
Then rerun the update.
Using –nobest yum option (not recommended) as cluster might break
Sometimes the newest package version has unresolved dependencies, while an older compatible package is still installable.
Try:
# yum update –nobest
This tells YUM/DNF not to insist on the newest possible package candidate.
This is often enough for partially synced repositories. But still this work around is not desirable as the HA cluster might break.
Note ! –skip-broken should not be used (a wrongly suggested “fix”)
The error message suggests:
# yum update –skip-broken
But this only skips the problematic package entirely.
!! Meaning it will most lilkely make corosync outdated, cluster nodes may become inconsistent, dependency issues remain unresolved.
Note ! For HA clusters and production systems, fixing the dependency properly is the right safe way to go.
On RHEL 8+, AlmaLinux 8+, Rocky Linux 8+, and Fedora having the package downloaded manually from a repo and using dnf is enough to have it installed:
# dnf install /root/packages/corosynclib*.rpm
or (if you have created a localrepo)
# dnf –repofrompath=local,file:///root/localrepo update
Closing Summary
Dependency resolution failures are often caused by repository inconsistencies rather than broken packages themselves. Trying work arounds without providing for the package manager the missing package will certainly lead to issues so try to abstain it at all costs.
If the missing RPM exists elsewhere, YUM and DNF can usually be guided to it by using the good old direct RPM install, using a temporary repository containing the package by enabling additional repo, using –repofrompath or taking a minute to prepare yourself a local repository and placing the missing package/s that should be enough to fix it.




