oracle / oracle-linux

Scripts, examples, and tutorials to get started with Oracle Linux
Universal Permissive License v1.0
125 stars 47 forks source link

OL8: nagios-plugins-ssl_validity broken dependency on package update #141

Open ku4eto opened 1 month ago

ku4eto commented 1 month ago

Hey folks.

Using OL8.9. Installing nagios-plugins-all with all of its dependencies goes just fine. But upon dnf update, it will fail with the following:

Error: 
 Problem: cannot install both nagios-plugins-2.3.3-3.el8.x86_64 from ol8_developer_EPEL and nagios-plugins-2.3.3-6.el8.x86_64 from @System
  - cannot install the best update candidate for package nagios-plugins-ssl_validity-2.3.3-6.el8.x86_64
  - cannot install the best update candidate for package nagios-plugins-2.3.3-6.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)

Looking around the interwebz, seems like the issue was introduced in 8.2 from the upstream (also present in CentOS 8.2, but got fixed).

A workaround is to exclude the generic package dnf config-manager --save --setopt ol8_developer_EPEL.exclude=nagios-plugins-2.3.3, but... its not really a proper workaround either. Does not work to exclude the SSL package. Another one is to install nagios-plugins-all, then remove the nagios-plugins-ssl_validity with --noautoremove option. But you still end up with a missing package.

YoderExMachina commented 1 month ago

How are you installing nagios-plugins-all to begin with? Seems it was part of the image?

ku4eto commented 1 month ago

How are you installing nagios-plugins-all to begin with? Seems it was part of the image?

Simply dnf install nagios-plugins-all, from @ol8_developer_EPEL. The "image" is a VM template, configured with bunch of packages and configs. Otherwise is absolutely normal OL8.9, installed from ISO.

YoderExMachina commented 1 month ago

Thanks. We have opened an internal ticket for this issue.

elbie1 commented 1 month ago

I was able tro reproduce this. It seems like dnf may still be picking up the "osboletes: nagios-plugins-ssl_validity" which is only present in nagios-plugins-2.3.3-3. A workaround could be to explicitely exclude that version for dnf by adding "excludepkgs=nagios-plugins-2.3.3-3.el8" in /etc/dnf/dnf.conf. After that you should still be able to update nagios-plugins, it's only that specific -3 version that's being excluded from consideration.

ku4eto commented 1 month ago

I was able tro reproduce this. It seems like dnf may still be picking up the "osboletes: nagios-plugins-ssl_validity" which is only present in nagios-plugins-2.3.3-3. A workaround could be to explicitely exclude that version for dnf by adding "excludepkgs=nagios-plugins-2.3.3-3.el8" in /etc/dnf/dnf.conf. After that you should still be able to update nagios-plugins, it's only that specific -3 version that's being excluded from consideration.

Yes, thats the work around to get dnf update to work. but in this case, ALL nagios-plugins-* packages will not be updated. Furthermore, if you try doing dnf install nagios-plugins-XXXX or reinstall, you will hit an error due to the conflicting exclude and explicitly wanting to re/install that package.

elbie1 commented 1 month ago

Note that I'm excluding nagios-plugins-2.3.3-3 instead of just nagios-plugins-2.3.3 With that I can downgrade, update again and install additional plugins.

YoderExMachina commented 3 weeks ago

This should be addressed now. Please check.

ku4eto commented 3 weeks ago

Sorry to be a mood killer, but the issue persists. Did dnf clean all, removed nagios-plugins-all , which includes the broken package. Did dnf update - works ok. Installed nagios-plugins-all again, which went through. Doing dnf update complains again with:

[root@localhost ~]# dnf update
Last metadata expiration check: 0:11:54 ago on 11.06.2024 (вт) 22:42:40 EEST.
Error: 
 Problem: cannot install both nagios-plugins-2.3.3-3.el8.x86_64 from ol8_developer_EPEL and nagios-plugins-2.3.3-6.el8.x86_64 from @System
  - cannot install the best update candidate for package nagios-plugins-ssl_validity-2.3.3-6.el8.x86_64
  - cannot install the best update candidate for package nagios-plugins-2.3.3-6.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)

dnf.log containing the section of the error:

2024-06-11T22:54:30+0300 DDEBUG Plugins were unloaded.
2024-06-11T22:54:33+0300 INFO --- logging initialized ---
2024-06-11T22:54:33+0300 DDEBUG timer: config: 3 ms
2024-06-11T22:54:33+0300 DEBUG Loaded plugins: builddep, changelog, config-manager, copr, debug, debuginfo-install, download, generate_completion_cache, groups-manager, needs-restarting, playground, repoclosure, repodiff, repograph, repomanage, reposync, system-upgrade, ulninfo
2024-06-11T22:54:33+0300 DEBUG DNF version: 4.7.0
2024-06-11T22:54:33+0300 DDEBUG Command: dnf update 
2024-06-11T22:54:33+0300 DDEBUG Installroot: /
2024-06-11T22:54:33+0300 DDEBUG Releasever: 8
2024-06-11T22:54:33+0300 DEBUG cachedir: /var/cache/dnf
2024-06-11T22:54:33+0300 DDEBUG Base command: update
2024-06-11T22:54:33+0300 DDEBUG Extra commands: ['update']
2024-06-11T22:54:33+0300 DEBUG User-Agent: constructed: 'libdnf (Oracle Linux Server 8.10; server; Linux.x86_64)'
2024-06-11T22:54:33+0300 DEBUG repo: using cache for: ol8_developer_EPEL
2024-06-11T22:54:33+0300 DEBUG ol8_developer_EPEL: using metadata from 11.06.2024 (вт) 12:23:08 EEST.
2024-06-11T22:54:33+0300 DEBUG repo: using cache for: ol8_developer_EPEL_modular
2024-06-11T22:54:33+0300 DEBUG ol8_developer_EPEL_modular: using metadata from 19.10.2022 (ср)  3:25:33 EEST.
2024-06-11T22:54:33+0300 DEBUG repo: using cache for: ol8_baseos_latest
2024-06-11T22:54:33+0300 DEBUG ol8_baseos_latest: using metadata from 11.06.2024 (вт) 20:56:48 EEST.
2024-06-11T22:54:33+0300 DEBUG repo: using cache for: ol8_appstream
2024-06-11T22:54:34+0300 DEBUG ol8_appstream: using metadata from 11.06.2024 (вт) 21:08:19 EEST.
2024-06-11T22:54:34+0300 DEBUG repo: using cache for: ol8_codeready_builder
2024-06-11T22:54:34+0300 DEBUG ol8_codeready_builder: using metadata from 11.06.2024 (вт) 21:09:12 EEST.
2024-06-11T22:54:34+0300 DEBUG repo: using cache for: ol8_UEKR7
2024-06-11T22:54:34+0300 DEBUG ol8_UEKR7: using metadata from 11.06.2024 (вт) 14:09:01 EEST.
2024-06-11T22:54:34+0300 INFO Last metadata expiration check: 0:11:54 ago on 11.06.2024 (вт) 22:42:40 EEST.
2024-06-11T22:54:37+0300 DDEBUG timer: sack setup: 4073 ms
2024-06-11T22:54:37+0300 DEBUG --> Starting dependency resolution
2024-06-11T22:54:38+0300 DEBUG --> Finished dependency resolution
2024-06-11T22:54:38+0300 DDEBUG timer: depsolve: 374 ms
2024-06-11T22:54:38+0300 SUBDEBUG 
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/dnf/cli/main.py", line 130, in cli_run
    ret = resolving(cli, base)
  File "/usr/lib/python3.6/site-packages/dnf/cli/main.py", line 166, in resolving
    base.resolve(cli.demands.allow_erasing)
  File "/usr/lib/python3.6/site-packages/dnf/base.py", line 906, in resolve
    raise exc
dnf.exceptions.DepsolveError: 
 Problem: cannot install both nagios-plugins-2.3.3-3.el8.x86_64 from ol8_developer_EPEL and nagios-plugins-2.3.3-6.el8.x86_64 from @System
  - cannot install the best update candidate for package nagios-plugins-ssl_validity-2.3.3-6.el8.x86_64
  - cannot install the best update candidate for package nagios-plugins-2.3.3-6.el8.x86_64
2024-06-11T22:54:38+0300 CRITICAL Error: 
 Problem: cannot install both nagios-plugins-2.3.3-3.el8.x86_64 from ol8_developer_EPEL and nagios-plugins-2.3.3-6.el8.x86_64 from @System
  - cannot install the best update candidate for package nagios-plugins-ssl_validity-2.3.3-6.el8.x86_64
  - cannot install the best update candidate for package nagios-plugins-2.3.3-6.el8.x86_64
2024-06-11T22:54:38+0300 INFO (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)
2024-06-11T22:54:38+0300 DDEBUG Cleaning up.
2024-06-11T22:54:38+0300 DDEBUG Plugins were unloaded.