Percona-xtrabackup-84 cannot be installed on Rocky Linux 9.7 with Percona Server 8.4 (missing libmysqlclient.so.21)

Environment:
OS: Rocky Linux 9.7
Percona Server: 8.4 (ps-84-lts)
ps-84-lts → enabled
pxb-84-lts → enabled
ps-80 → disabled (normal configuration after upgrade)

We have upgraded our database servers from Percona Server 8.0 to Percona Server 8.4.
After the database upgrade, we wanted to install the matching backup tool: percona-xtrabackup-84
However, xtrabackup 8.4 cannot be installed due to an unsatisfied dependency:

In short:

  • percona-xtrabackup-84 requires: perl(DBD::mysql) but on Rocky 9.7, the only provider is: perl-DBD-MySQL (from AppStream) - and it depends on libmysqlclient.so.21

  • Percona Server 8.4 provides only: libmysqlclient.so.22 - and explicitly obsoletes the distro mysql-libs package - As a result, xtrabackup 8.4 cannot be installed with Percona Server 8.4 on Rocky 9.7.

  • If we temporarily enable the Percona 8.0 repository (ps-80) and retry the installation, DNF proposes to downgrade percona-server-shared to 8.0.x in order to get libmysqlclient.so.21.

What is the recommended and supported solution for this on Rocky / RHEL 9? Thanks!

Output for DNF command:
dnf install percona-xtrabackup-84.x86_64

Error:
Problem: package perl-DBD-MySQL-4.053-1.el9.0.1.x86_64 from appstream requires libmysqlclient.so.21()(64bit), but none of the providers can be installed

  • package perl-DBD-MySQL-4.053-1.el9.0.1.x86_64 from appstream requires libmysqlclient.so.21(libmysqlclient_21.0)(64bit), but none of the providers can be installed
  • package percona-server-shared-8.4.0-1.1.el9.x86_64 from ps-84-lts-release-x86_64 obsoletes mysql-libs < 8.4.0-1.1.el9 provided by mysql-libs-8.0.43-1.el9_6.x86_64 from appstream
  • package percona-server-shared-8.4.0-1.1.el9.x86_64 from ps-84-lts-release-x86_64 obsoletes mysql-libs < 8.4.0-1.1.el9 provided by mysql-libs-8.0.44-1.el9_7.x86_64 from appstream
  • problem with installed package percona-server-shared-8.4.7-7.1.el9.x86_64
  • package percona-server-shared-8.4.2-2.1.el9.x86_64 from ps-84-lts-release-x86_64 obsoletes mysql-libs < 8.4.2-2.1.el9 provided by mysql-libs-8.0.43-1.el9_6.x86_64 from appstream
  • package percona-server-shared-8.4.2-2.1.el9.x86_64 from ps-84-lts-release-x86_64 obsoletes mysql-libs < 8.4.2-2.1.el9 provided by mysql-libs-8.0.44-1.el9_7.x86_64 from appstream
  • package percona-xtrabackup-84-8.4.0-5.1.el9.x86_64 from pxb-84-lts-release-x86_64 requires perl(DBD::mysql), but none of the providers can be installed
  • cannot install the best candidate for the job
  • package percona-server-shared-8.4.3-3.1.el9.x86_64 from ps-84-lts-release-x86_64 obsoletes mysql-libs < 8.4.3-3.1.el9 provided by mysql-libs-8.0.43-1.el9_6.x86_64 from appstream
  • package percona-server-shared-8.4.3-3.1.el9.x86_64 from ps-84-lts-release-x86_64 obsoletes mysql-libs < 8.4.3-3.1.el9 provided by mysql-libs-8.0.44-1.el9_7.x86_64 from appstream
  • package percona-server-shared-8.4.4-4.1.el9.x86_64 from ps-84-lts-release-x86_64 obsoletes mysql-libs < 8.4.4-4.1.el9 provided by mysql-libs-8.0.43-1.el9_6.x86_64 from appstream
  • package percona-server-shared-8.4.4-4.1.el9.x86_64 from ps-84-lts-release-x86_64 obsoletes mysql-libs < 8.4.4-4.1.el9 provided by mysql-libs-8.0.44-1.el9_7.x86_64 from appstream
  • package percona-server-shared-8.4.5-5.1.el9.x86_64 from ps-84-lts-release-x86_64 obsoletes mysql-libs < 8.4.5-5.1.el9 provided by mysql-libs-8.0.43-1.el9_6.x86_64 from appstream
  • package percona-server-shared-8.4.5-5.1.el9.x86_64 from ps-84-lts-release-x86_64 obsoletes mysql-libs < 8.4.5-5.1.el9 provided by mysql-libs-8.0.44-1.el9_7.x86_64 from appstream
  • package percona-server-shared-8.4.6-6.1.el9.x86_64 from ps-84-lts-release-x86_64 obsoletes mysql-libs < 8.4.6-6.1.el9 provided by mysql-libs-8.0.43-1.el9_6.x86_64 from appstream
  • package percona-server-shared-8.4.6-6.1.el9.x86_64 from ps-84-lts-release-x86_64 obsoletes mysql-libs < 8.4.6-6.1.el9 provided by mysql-libs-8.0.44-1.el9_7.x86_64 from appstream
  • package percona-server-shared-8.4.7-7.1.el9.x86_64 from ps-84-lts-release-x86_64 obsoletes mysql-libs < 8.4.7-7.1.el9 provided by mysql-libs-8.0.43-1.el9_6.x86_64 from appstream
  • package percona-server-shared-8.4.7-7.1.el9.x86_64 from ps-84-lts-release-x86_64 obsoletes mysql-libs < 8.4.7-7.1.el9 provided by mysql-libs-8.0.44-1.el9_7.x86_64 from appstream
  • installed package percona-server-shared-8.4.7-7.1.el9.x86_64 obsoletes mysql-libs < 8.4.7-7.1.el9 provided by mysql-libs-8.0.43-1.el9_6.x86_64 from appstream
  • installed package percona-server-shared-8.4.7-7.1.el9.x86_64 obsoletes mysql-libs < 8.4.7-7.1.el9 provided by mysql-libs-8.0.44-1.el9_7.x86_64 from appstream
    (try to add ‘–skip-broken’ to skip uninstallable packages or ‘–nobest’ to use not only best candidate packages)

try ln -s libmysqlclient.so.22 libmysqlclient.so.21

In practice, percona-xtrabackup-84 indirectly requires a package that provides
libmysqlclient.so.21 with symbol set libmysqlclient_21.0.

This cannot be satisfied by a filesystem symlink, because the RPM dependency requires a
package that explicitly provides:
libmysqlclient.so.21()(64bit)
libmysqlclient.so.21(libmysqlclient_21.0)(64bit)

Here is an useful repo query i used to visualize the situation:

=====================================
repoquery --requires percona-xtrabackup-84
/bin/sh
/usr/bin/bash
perl(DBD::mysql)

=====================================
repoquery --requires perl-DBD-MySQL
libc.so.6(GLIBC_2.34)(64bit)
libmysqlclient.so.21()(64bit)
libmysqlclient.so.21(libmysqlclient_21.0)(64bit)

perl-DBD-MySQL - this package must be able to work with libmysqlclient.so.24()(64bit)
that the percona-server-shared 8.4.* provides I presume.

please create JIra ticket about this issue as it should be properly investigated and fixed

1 Like

Can you please grant me permission for ticket creation for the following mail?
xXSAPXx@proton.me
Am presuming this is the correct Jira Space:

Thanks!