Unable to update mariadb on RockyLinux 8

Hi
I need to run dnf updates on an Rocky Linux 8 server, but it seems that dependencies for mariadb are broken.

# dnf update
Rocky Linux 8 - AppStream                                                                                    21 MB/s |  12 MB     00:00
Rocky Linux 8 - BaseOS                                                                                       19 MB/s | 8.2 MB     00:00
Rocky Linux 8 - Extras                                                                                       64 kB/s |  14 kB     00:00
Extra Packages for Enterprise Linux 8 - x86_64                                                              9.6 MB/s |  14 MB     00:01
MariaDB                                                                                                     1.5 MB/s | 606 kB     00:00
Error:
 Problem 1: package MariaDB-shared-10.5.24-1.el8.x86_64 from mariadb requires MariaDB-common, but none of the providers can be installed
  - cannot install the best update candidate for package mariadb-connector-c-3.1.11-2.el8_3.x86_64
  - package MariaDB-common-10.5.22-1.el8.x86_64 from mariadb is filtered out by modular filtering
  - package MariaDB-common-10.5.23-1.el8.x86_64 from mariadb is filtered out by modular filtering
  - package MariaDB-common-10.5.24-1.el8.x86_64 from mariadb is filtered out by modular filtering
 Problem 2: package MariaDB-shared-10.5.24-1.el8.x86_64 from mariadb requires MariaDB-common, but none of the providers can be installed
  - cannot install the best update candidate for package mariadb-connector-c-config-3.1.11-2.el8_3.noarch
  - package MariaDB-common-10.5.22-1.el8.x86_64 from mariadb is filtered out by modular filtering
  - package MariaDB-common-10.5.23-1.el8.x86_64 from mariadb is filtered out by modular filtering
  - package MariaDB-common-10.5.24-1.el8.x86_64 from mariadb is filtered out by modular filtering
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

This system is configured to use a particular version of mariadb, and not the default version.

# dnf module list mariadb
Last metadata expiration check: 0:00:20 ago on Di 14 Mai 2024 21:18:54 CEST.
Rocky Linux 8 - AppStream
Name                         Stream                        Profiles                                       Summary
mariadb                      10.3 [d]                      client, galera, server [d]                     MariaDB Module
mariadb                      10.5 [e]                      client, galera, server [d]                     MariaDB Module

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

I am also adding the contents of the repo file:

# cat /etc/yum.repos.d/mariaDB.repo
[mariadb]
name = MariaDB
baseurl = https://rpm.mariadb.org/10.5/rhel/$releasever/$basearch
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

I tried uninstalling the mariadb software (using dnf module reset mariadb) and installing the default version of mariadb (10.3), but the database server was unable to start the database, because it didn’t understand the transaction log format.
I have also tried to uninstall/re-install the same version 10.5, but I am always getting the above dependency problems.

How could the dnf issues be resolved?
Presumably, the application would also run with a new version of mariadb >10.5.

Have you tried explicitly disabling the default mariadb modules?

dnf module disable mariadb
dnf module list mariadb
Last metadata expiration check: 0:10:14 ago on Fri 17 May 2024 07:55:20 AM MST.
Rocky Linux 8 - AppStream
Name                             Stream                               Profiles                                            Summary
mariadb                          10.3 [d][x]                          client, galera, server [d]                          MariaDB Module
mariadb                          10.5 [x]                             client, galera, server [d]                          MariaDB Module

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

Yes, I tried it - but how would I then install/update the mariadb software?

Which mariadb packages are you trying to use? Are you trying to use the ones from AppStream or the mariadb repo? When you disable the default modules, you should be able to update/install from the mariadb repo you have configured. The problem is MariaDB-* packages provide mariadb-*, but they are effectively being filtered out by the AppStream repository modules.

If you are trying to use the mariadb repo, you need to explicitly disable the AppStream modules as packages from both repos provide mariadb-* and modularity in AppStream is filtering out everything else.

# dnf install MariaDB
Last metadata expiration check: 0:00:27 ago on Fri 17 May 2024 08:11:15 AM MST.
All matches were filtered out by modular filtering for argument: MariaDB
  * Maybe you meant: mariadb
Error: Unable to find a match: MariaDB
# dnf module disable mariadb -y
# dnf install MariaDB
Last metadata expiration check: 0:01:16 ago on Fri 17 May 2024 08:11:15 AM MST.
Dependencies resolved.
================================================================================================================================================================
 Package                                  Architecture              Version                                                  Repository                    Size
================================================================================================================================================================
Installing:
 MariaDB-server                           x86_64                    10.5.25-1.el8                                            mariadb                       27 M
Installing dependencies:
 MariaDB-client                           x86_64                    10.5.25-1.el8                                            mariadb                       13 M
 MariaDB-common                           x86_64                    10.5.25-1.el8                                            mariadb                       88 k
 MariaDB-shared                           x86_64                    10.5.25-1.el8                                            mariadb                      115 k
 boost-program-options                    x86_64                    1.66.0-13.el8                                            appstream                    140 k
 galera-4                                 x86_64                    26.4.18-1.el8                                            mariadb                       14 M
 perl-DBI                                 x86_64                    1.641-4.module+el8.9.0+1495+f278a004                     appstream                    739 k
 perl-Math-BigInt                         noarch                    1:1.9998.11-7.el8                                        baseos                       194 k
 perl-Math-Complex                        noarch                    1.59-422.el8                                             baseos                       108 k
 socat                                    x86_64                    1.7.4.1-1.el8                                            appstream                    322 k
Enabling module streams:
 perl-DBI                                                           1.641

Transaction Summary
================================================================================================================================================================
Install  10 Packages

Total download size: 56 M
Installed size: 266 M
Is this ok [y/N]:

If you’re trying to use the module version from AppStream (and not from the mariadb repo), you would need to disable the mariadb repo and enable the right module in AppStream.

# dnf config-manager --disable mariadb
# dnf module enable mariadb:10.5
2 Likes