# Percona Repo Conflicts With Itself

5

On a RHEL 6.3 server, we are running MySQL 5.1 (not MariaDB, not the Percona patched version, plain old regular MySQL):

$rpm -qa | egrep -i "percona|maria|mysql" | sort mysql-5.1.61-4.el6.x86_64 mysql-libs-5.1.61-4.el6.x86_64 mysql-server-5.1.61-4.el6.x86_64 percona-toolkit-2.1.8-1.noarch percona-xtrabackup-2.0.5-499.rhel6.x86_64 perl-DBD-MySQL-4.013-3.el6.x86_64$

We went to do a system update today, and had a problem with dependencies, because the Percona repository wants to replace mysql-libs with Percona’s shared libraries. How rude!

# yum update mysql-libs Loaded plugins: downloadonly, rhnplugin, security Setting up Update Process Resolving Dependencies --> Running transaction check ---> Package Percona-Server-shared-51.x86_64 0:5.1.67-rel14.3.506.rhel6 will be obsoleting ---> Package Percona-Server-shared-55.x86_64 0:5.5.29-rel29.4.401.rhel6 will be obsoleting ---> Package Percona-Server-shared-compat.x86_64 0:5.5.29-rel29.4.401.rhel6 will be obsoleting ---> Package mysql-libs.x86_64 0:5.1.61-4.el6 will be obsoleted --> Finished Dependency Resolution

Dependencies Resolved

============================================================================================================== Package Arch Version Repository Size ============================================================================================================== Installing: Percona-Server-shared-51 x86_64 5.1.67-rel14.3.506.rhel6 percona 2.8 M replacing mysql-libs.x86_64 5.1.61-4.el6 Percona-Server-shared-55 x86_64 5.5.29-rel29.4.401.rhel6 percona 787 k replacing mysql-libs.x86_64 5.1.61-4.el6 Percona-Server-shared-compat x86_64 5.5.29-rel29.4.401.rhel6 percona 3.4 M replacing mysql-libs.x86_64 5.1.61-4.el6

 Transaction Summary ============================================================================================================== Install 3 Package(s) 

Total size: 7.0 M Is this ok [y/N]: N

The reason I say this is rude is because the Percona repository does not have mysql-libs. It’s not for the Percona repository to say that it’s obsolete. If we were running the Percona packages, that’s fine, but we’re not. We are running the MySQL packages, and we want to keep running them. Just because we run the Percona toolkit and Xtrabackup doesn’t mean we want the shared MySQL libraries from Percona as well.

The bizarre part is that the Percona repository recommends installing BOTH Percona-Server-shared-51 AND Percona-Server-shared-55, and those packages conflict with each other. So if I hit “yes” I’d end up getting:

Transaction Check Error: file /usr/lib64/libmysqlclient.so conflicts between attempted installs of Percona-Server-shared-51-5.1.67-rel14.3.506.rhel6.x86_64 and Percona-Server-shared-55-5.5.29-rel29.4.401.rhel6.x86_64 file /usr/lib64/libmysqlclient.so.16.0.0 conflicts between attempted installs of Percona-Server-shared-51-5.1.67-rel14.3.506.rhel6.x86_64 and Percona-Server-shared-compat-5.5.29-rel29.4.401.rhel6.x86_64 file /usr/lib64/libmysqlclient_r.so conflicts between attempted installs of Percona-Server-shared-51-5.1.67-rel14.3.506.rhel6.x86_64 and Percona-Server-shared-55-5.5.29-rel29.4.401.rhel6.x86_64 file /usr/lib64/libmysqlclient_r.so.16.0.0 conflicts between attempted installs of Percona-Server-shared-51-5.1.67-rel14.3.506.rhel6.x86_64 and Percona-Server-shared-compat-5.5.29-rel29.4.401.rhel6.x86_64

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

So in order to upgrade this machine, we had to remove the Percona repository, update the packages so that mysql-libs was properly updated by the right repository, put the Percona repository back, and run update again to see if xtrabackup or percona-toolkit has updates to be run.

And all is happy again:
$rpm -qa | egrep -i "percona|maria|mysql" | sort mysql-5.1.67-1.el6_3.x86_64 mysql-libs-5.1.67-1.el6_3.x86_64 mysql-server-5.1.67-1.el6_3.x86_64 percona-toolkit-2.1.8-1.noarch percona-xtrabackup-2.0.5-499.rhel6.x86_64 perl-DBD-MySQL-4.014-1.el6.rfx.x86_64$

## 5 responses

1. ### Matthew Barrwrote on February 6, 2013 at 8:49 pm:

You can tell yum not to use a repo, btw, on the command line, in a one off run.

On iPad, so not looking up the syntax..

2. ### Sheeri wrote on February 7, 2013 at 2:35 pm:

Matthew – the context of this is in doing regular upgrades to all the packages on a system. So we want to be able to do “yum upgrade”. If we tell it not to use the Percona repo, we won’t get updates for percona-toolkit or percona-xtrabackup. (of course, the latest version of percona-toolkit has a bug in pt-table-checksum that doesn’t actually honor the –max-lag default of 1 second, but that’s a different problem)

3. ### jahor wrote on February 8, 2013 at 6:56 am:

hi, the safe way may be to use “includepkgs=percona-toolkit,percona-xtrabackup” in /etc/yum.repos.d/Percona.repo. this way could have all the update you want, and exclude all the other packages you don’t want. (btw i’m fighting with percona repos too when installing very old mysql versions and dependencies in percona shared-compat change)

1. ### Sheeri wrote on February 8, 2013 at 7:02 am:

That would work too. Of course, if folks want to use Percona’s patched MySQL, they’ll have this same problem, because the repo actually conflicts with itself.

4. ### eRadical wrote on February 14, 2013 at 3:18 am:

I’m a MariaDB user and I was also astonished by this… you can’t install MariaDB from it’s repo if you have Percona repo.

I ended up with a new line in yum.conf: