Painful Yum dependencies on CentOS6.3

Bug #1031427 reported by Ryan Lowe
40
This bug affects 8 people
Affects Status Importance Assigned to Milestone
Percona Server moved to https://jira.percona.com/projects/PS
Invalid
High
Ignacio Nin
5.1
Fix Released
High
Ignacio Nin
5.5
Fix Released
High
Ignacio Nin
5.6
Invalid
High
Ignacio Nin
Percona Toolkit moved to https://jira.percona.com/projects/PT
Fix Released
High
Daniel Nichter
Percona XtraDB Cluster moved to https://jira.percona.com/projects/PXC
Fix Released
High
Ignacio Nin

Bug Description

(Probably a Percona-Server packaging issue, but reporting it here because it manifests in a percona-toolkit install)

I have a stock CentOS6.3 install

%> cat /etc/centos-release
CentOS release 6.3 (Final)

%> uname -r
2.6.32-220.el6.x86_64

With the Percona Yum repository package:

%> yum info percona-release
Loaded plugins: fastestmirror, priorities, security
Loading mirror speeds from cached hostfile
 * base: mirror.stanford.edu
 * extras: mirrors.kernel.org
 * updates: mirrors.kernel.org
68 packages excluded due to repository priority protections
Installed Packages
Name : percona-release
Arch : x86_64
Version : 0.0
Release : 1
Size : 3.6 k
Repo : installed
Summary : Percona RPM repository
URL : http://www.percona.com/percona-lab.html
License : GPL version 2
Description : Percona release file. This package contains yum
            : configuration for the Percona RPM Repository, as well as the public
            : GPG keys used to sign them.

I have the following packages installed:

%> rpm -qa |grep -i percona
Percona-Server-client-55-5.5.25a-rel27.1.277.rhel6.x86_64
percona-release-0.0-1.x86_64
Percona-Server-shared-55-5.5.25a-rel27.1.277.rhel6.x86_64
Percona-Server-server-55-5.5.25a-rel27.1.277.rhel6.x86_64

(installed via: `yum install Percona-Server-client-55 Percona-Server-server-55`)

Trying to install percona-toolkit, I get the following:

%> yum install percona-toolkit
...
Transaction Check Error:
  file /usr/lib64/libmysqlclient.so from install of Percona-Server-shared-51-5.1.63-rel13.4.443.rhel6.x86_64 conflicts with file from package Percona-Server-shared-55-5.5.25a-rel27.1.277.rhel6.x86_64
  file /usr/lib64/libmysqlclient_r.so from install of Percona-Server-shared-51-5.1.63-rel13.4.443.rhel6.x86_64 conflicts with file from package Percona-Server-shared-55-5.5.25a-rel27.1.277.rhel6.x86_64

Error Summary
-------------

If I look at:

%> yum deplist perl-DBD-MySQL
...
  dependency: libmysqlclient.so.16(libmysqlclient_16)(64bit)
   provider: mysql-libs.x86_64 5.1.61-4.el6
   provider: Percona-Server-shared-51.x86_64 5.1.63-rel13.4.443.rhel6
   provider: Percona-Server-shared-compat.x86_64 5.5.25a-rel27.1.277.rhel6
...

We see that perl-DBD-MySQL requires libmysqlclient.so.16, which is available via Percona-Server-shared-51 but NOT Percona-Server-shared-55.

I can get around this by installing packages in the following order:

%> rpm -qa |grep -i percona
percona-release-0.0-1.x86_64

%> yum install Percona-Server-shared-compat
...
%> yum install Percona-Server-client-55 Percona-Server-server-55 percona-toolkit
...

But it's a pain to have to do this every time, I'd rather have the dependencies *just work*

Tags: pkg release repo

Related branches

Revision history for this message
Jaime Crespo (jynus) wrote :

I can confirm this "bug" (annoyance, more than anything) on a fresh install of CentOS 6.3. Trying to install the whole package set (5.5 version) (Percona Server, XtraBackup and percona-toolkit) have undesired lateral effects by default: It tries to delete (ana)cron - because it depends on Postfix, which depends on what 5.1 server provides and also creates a conflict between Percona-Server-shared-51 and Percona-Server-shared-55, as this bug reports.

I can also confirm that the workaround solves the dependency problem.

Revision history for this message
Raghavendra D Prabhu (raghavendra-prabhu) wrote :

I do the following generally and it works fine:

rpm --nodeps -e mysql-libs
yum install 'Percona-Server-*55' percona-toolkit xtrabackup
yum install Percona-Server-55-debuginfo

The issue I see in the description is that percona-toolkit requires mysql client libs but ends up pulling Percona-Server-51 which introduces conflict. I usually end up installing shared-compat with others.

Problems being:

1. RPM lacks anything like package A replaces package B kind of thing (or is there something similar?), so 'rpm -e --nodeps mysql-libs' required.

2. We can have groups like the ones already present -- 'MySQL Database server' and 'MySQL Database client' so that install hackery can be avoided.

Revision history for this message
Daniel Nichter (daniel-nichter) wrote :

Hi Ryan. :-) We recently had a long internal email thread about this. You know I don't know much about packaging, which is why I've asked Brian to work with Ignacio to take over our packaging. So, the hope is to have that done by next release, and whatever these problems are be solved (I don't know much about package dependencies and how one pkg can substitute for another, etc., so I'm trusting other experts know).

Changed in percona-toolkit:
status: New → Confirmed
importance: Undecided → High
assignee: nobody → Brian Fraser (fraserbn)
tags: added: release
Changed in percona-toolkit:
milestone: none → 2.1.4
Brian Fraser (fraserbn)
Changed in percona-toolkit:
assignee: Brian Fraser (fraserbn) → Ignacio Nin (ignacio-nin)
Revision history for this message
Raghavendra D Prabhu (raghavendra-prabhu) wrote :
Download full text (3.8 KiB)

This is a bug with Percona-Server and not percona-toolkit actually.

sudo repoquery --provides Percona-Server-shared-55
    Percona-Server-shared-55 = 5.5.27-rel28.1.296.rhel6
    Percona-Server-shared-55(x86-64) = 5.5.27-rel28.1.296.rhel6
    libmysqlclient.so.18()(64bit)
    libtool(/usr/lib64/mysql/plugin/libfnv1a_udf.la)
    libtool(/usr/lib64/mysql/plugin/libfnv_udf.la)
    libtool(/usr/lib64/mysql/plugin/libmurmur_udf.la)
    mysql-shared

raghu archie:~ [77]% sudo repoquery --provides Percona-Server-shared-51
    MySQL-shared
    Percona-Server-shared-51 = 5.1.65-rel14.0.475.rhel6
    Percona-Server-shared-51(x86-64) = 5.1.65-rel14.0.475.rhel6
    Percona-XtraDB-shared
    libmysqlclient.so.16()(64bit)
    libmysqlclient.so.16(libmysqlclient_16)(64bit)
    libmysqlclient_r.so.16()(64bit)
    libmysqlclient_r.so.16(libmysqlclient_16)(64bit)
    mysql-libs
    mysql-shared

raghu archie:~ [78]% sudo repoquery --provides Percona-Server-shared-compat
    MySQL-shared
    Percona-Server-shared-compat = 5.5.27-rel28.1.296.rhel6
    Percona-Server-shared-compat(x86-64) = 5.5.27-rel28.1.296.rhel6
    libmysqlclient.so.12()(64bit)
    libmysqlclient.so.14()(64bit)
    libmysqlclient.so.14(libmysqlclient_14)(64bit)
    libmysqlclient.so.15()(64bit)
    libmysqlclient.so.15(libmysqlclient_15)(64bit)
    libmysqlclient.so.16()(64bit)
    libmysqlclient.so.16(libmysqlclient_16)(64bit)
    libmysqlclient_r.so.12()(64bit)
    libmysqlclient_r.so.14()(64bit)
    libmysqlclient_r.so.14(libmysqlclient_14)(64bit)
    libmysqlclient_r.so.15()(64bit)
    libmysqlclient_r.so.15(libmysqlclient_15)(64bit)
    libmysqlclient_r.so.16()(64bit)
    libmysqlclient_r.so.16(libmysqlclient_16)(64bit)
    mysql-libs

sudo repoquery --disablerepo=percona --provides mysql-libs
    config(mysql-libs) = 5.1.61-4.el6
    libmysqlclient.so.16
    libmysqlclient.so.16(libmysqlclient_16)
    libmysqlclient_r.so.16
    libmysqlclient_r.so.16(libmysqlclient_16)
    mysql-libs = 5.1.61-4.el6
    mysql-libs(x86-32) = 5.1.61-4.el6
    config(mysql-libs) = 5.1.61-4.el6
    libmysqlclient.so.16()(64bit)
    libmysqlclient.so.16(libmysqlclient_16)(64bit)
    libmysqlclient_r.so.16()(64bit)
    libmysqlclient_r.so.16(libmysqlclient_16)(64bit)
    mysql-libs = 5.1.61-4.el6
    mysql-libs(x86-64) = 5.1.61-4.el6

sudo repoquery --requires perl-DBD-MySQL
    libc.so.6()(64bit)
    libc.so.6(GLIBC_2.2.5)(64bit)
    libc.so.6(GLIBC_2.3)(64bit)
    libc.so.6(GLIBC_2.3.4)(64bit)
    libc.so.6(GLIBC_2.4)(64bit)
    libcrypt.so.1()(64bit)
    libcrypto.so.10()(64bit)
    libm.so.6()(64bit)
    libmysqlclient.so.16()(64bit)
    libmysqlclient.so.16(libmysqlclient_16)(64bit)
    libnsl.so.1()(64bit)
    libssl.so.10()(64bit)
    libz.so.1()(64bit)
    perl(:MODULE_COMPAT_5.10.1)
    perl(Carp)
    perl(DBI)
    perl(DBI::Const::GetInfoType)
    perl(DynaLoader)
    perl(strict)
    perl(vars)
    rtld(GNU_HASH)

So, perl-DBD-MySQL requires libmysqlclient.so.16 which is provided by mysql-libs, Percona-Server-shared-compat and Percona-Server-shared-55.

Now, mysql-libs is out of picture if Percona is installed since it is obsoleted.

That leaves, Percona-Server-shared-55 and Percona-Server-share...

Read more...

tags: added: pkg
Brian Fraser (fraserbn)
no longer affects: percona-toolkit/2.1
Changed in percona-toolkit:
milestone: 2.1.4 → 2.1.5
milestone: 2.1.5 → 2.1.4
Revision history for this message
Brian Fraser (fraserbn) wrote :

After talking to Ignacio, I'm untargetting this for 2.1.4, and retargetting it in 2.1.5 instead.

tags: added: repo
removed: pkg
Alexey Bychko (abychko)
tags: added: pkg
Revision history for this message
Alexey Bychko (abychko) wrote :

see http://yum.baseurl.org/wiki/CompareProviders

When yum is depsolving and it finds that a requirement is provided for by more than one pkg it has to make a choice about which pkg to install. At one point in time it decided by choosing the 'first' one.

Revision history for this message
Alexey Bychko (abychko) wrote :

according to link above, this is not a bug, but just documented yum behavior. thinking on solution

no longer affects: percona-toolkit/2.1
Changed in percona-toolkit:
milestone: 2.2.1 → none
status: Confirmed → In Progress
assignee: Ignacio Nin (ignacio-nin) → Daniel Nichter (daniel-nichter)
Alexey Bychko (abychko)
Changed in percona-toolkit:
status: In Progress → Fix Committed
Alexey Bychko (abychko)
Changed in percona-toolkit:
status: Fix Committed → In Progress
Changed in percona-xtradb-cluster:
importance: Undecided → High
status: New → Fix Committed
assignee: nobody → Ignacio Nin (ignacio-nin)
Revision history for this message
Ignacio Nin (ignacio-nin) wrote :

I've submitted a patch (linked branches) to each of the 5.0, 5.1, 5.5 and PXC branches that changes our shared packages to only include versioned libraries, following the model of the CentOS packages. This effectively makes the shared packages not conflict at the file level when installed in different combinations, allowing percona-toolkit to depend on any of them while at the same time permitting an installation of any suite of PS/PXC. Note that in debian we follow this same model. Refer to the commit messages for details.

The packages are currently up in the percona-testing repo. I've tested each suite in rhel6 and rhel5 with percona-toolkit (including PXC) and this bug seems to be fixed.

Changed in percona-server:
milestone: none → 5.5.30-30.2
Changed in percona-xtradb-cluster:
milestone: none → 5.5.30-23.7.3
Revision history for this message
Daniel Nichter (daniel-nichter) wrote :

As for Percona Toolkit, the fix was done indirectly via the Percona Server packages being fixed. So this was basically fixed in PT 2.2.

Changed in percona-toolkit:
status: In Progress → Fix Released
Changed in percona-xtradb-cluster:
status: Fix Committed → Fix Released
Revision history for this message
Antoni Baranski (sauraus) wrote :

Sorry for waking up this old thread but it looks like 5.6 XtraDB Cluster package once again introduced this nasty dependency problem.

Revision history for this message
Raghavendra D Prabhu (raghavendra-prabhu) wrote : Re: [Bug 1031427] Re: Painful Yum dependencies on CentOS6.3
Download full text (4.0 KiB)

@Antoni

Can you provide more details on this? Yum logs etc.
On 23 Oct 2014 10:15, "Antoni Baranski" <email address hidden> wrote:

> Sorry for waking up this old thread but it looks like 5.6 XtraDB Cluster
> package once again introduced this nasty dependency problem.
>
> --
> You received this bug notification because you are a member of Percona
> core, which is subscribed to Percona Server.
> Matching subscriptions: percona-server, percona-toolkit, percona-toolkit,
> percona-xtradb-cluster
> https://bugs.launchpad.net/bugs/1031427
>
> Title:
> Painful Yum dependencies on CentOS6.3
>
> Status in Percona Server with XtraDB:
> Invalid
> Status in Percona Server 5.1 series:
> Fix Released
> Status in Percona Server 5.5 series:
> Fix Released
> Status in Percona Server 5.6 series:
> Invalid
> Status in Percona Toolkit:
> Fix Released
> Status in Percona XtraDB Cluster - HA scalable solution for MySQL:
> Fix Released
>
> Bug description:
> (Probably a Percona-Server packaging issue, but reporting it here
> because it manifests in a percona-toolkit install)
>
> I have a stock CentOS6.3 install
>
> %> cat /etc/centos-release
> CentOS release 6.3 (Final)
>
> %> uname -r
> 2.6.32-220.el6.x86_64
>
> With the Percona Yum repository package:
>
> %> yum info percona-release
> Loaded plugins: fastestmirror, priorities, security
> Loading mirror speeds from cached hostfile
> * base: mirror.stanford.edu
> * extras: mirrors.kernel.org
> * updates: mirrors.kernel.org
> 68 packages excluded due to repository priority protections
> Installed Packages
> Name : percona-release
> Arch : x86_64
> Version : 0.0
> Release : 1
> Size : 3.6 k
> Repo : installed
> Summary : Percona RPM repository
> URL : http://www.percona.com/percona-lab.html
> License : GPL version 2
> Description : Percona release file. This package contains yum
> : configuration for the Percona RPM Repository, as well as
> the public
> : GPG keys used to sign them.
>
> I have the following packages installed:
>
> %> rpm -qa |grep -i percona
> Percona-Server-client-55-5.5.25a-rel27.1.277.rhel6.x86_64
> percona-release-0.0-1.x86_64
> Percona-Server-shared-55-5.5.25a-rel27.1.277.rhel6.x86_64
> Percona-Server-server-55-5.5.25a-rel27.1.277.rhel6.x86_64
>
> (installed via: `yum install Percona-Server-client-55 Percona-Server-
> server-55`)
>
> Trying to install percona-toolkit, I get the following:
>
> %> yum install percona-toolkit
> ...
> Transaction Check Error:
> file /usr/lib64/libmysqlclient.so from install of
> Percona-Server-shared-51-5.1.63-rel13.4.443.rhel6.x86_64 conflicts with
> file from package Percona-Server-shared-55-5.5.25a-rel27.1.277.rhel6.x86_64
> file /usr/lib64/libmysqlclient_r.so from install of
> Percona-Server-shared-51-5.1.63-rel13.4.443.rhel6.x86_64 conflicts with
> file from package Percona-Server-shared-55-5.5.25a-rel27.1.277.rhel6.x86_64
>
> Error Summary
> -------------
>
> If I look at:
>
> %> yum deplist perl-DBD-MySQL
> ...
> dependency: libmysqlclient.so.16(libmysqlclient_1...

Read more...

Revision history for this message
Shahriyar Rzayev (rzayev-sehriyar) wrote :

Percona now uses JIRA for bug reports so this bug report is migrated to: https://jira.percona.com/browse/PXC-945

Revision history for this message
Shahriyar Rzayev (rzayev-sehriyar) wrote :

Percona now uses JIRA for bug reports so this bug report is migrated to: https://jira.percona.com/browse/PT-323

Revision history for this message
Shahriyar Rzayev (rzayev-sehriyar) wrote :

Percona now uses JIRA for bug reports so this bug report is migrated to: https://jira.percona.com/browse/PS-574

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.