Bug #70009 Can't install mysql 5.6 on Oracle Linux 6.4
Submitted: 13 Aug 2013 8:09 Modified: 22 Nov 2013 15:17
Reporter: Georgi Kodinov Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Documentation Severity:S2 (Serious)
Version:5.6.12, 5.6.13 OS:Linux (Oracle Linux 6.4)
Assigned to: CPU Architecture:Any

[13 Aug 2013 8:09] Georgi Kodinov
Description:
When trying to install 5.6.12 on an vanilla Oracle Linux 6.4 virtual box image I get : 
[root@localhost mysql enterprise]# rpm -i MySQL-client-advanced-5.6.12-1.el6.x86_64.rpm MySQL-devel-advanced-5.6.12-1.el6.x86_64.rpm MySQL-test-advanced-5.6.12-1.el6.x86_64.rpm MySQL-server-advanced-5.6.12-1.el6.x86_64.rpm 
	file /usr/share/mysql/charsets/Index.xml from install of MySQL-server-advanced-5.6.12-1.el6.x86_64 conflicts with file from package mysql-libs-5.1.66-2.el6_3.x86_64
	file /usr/share/mysql/charsets/latin1.xml from install of MySQL-server-advanced-5.6.12-1.el6.x86_64 conflicts with file from package mysql-libs-5.1.66-2.el6_3.x86_64
...

How to repeat:
Get a clean Oracle Linux 6.4 installation, make sure there's a mysql-libs 5.1 package present, install mysql-shared-compat and then download mysql and try to install it.

Suggested fix:
Make sure the fix for bug #63085 works for 5.6 as well.

Yes, I know I can use "rpm -hi --replacefiles MySQL-server*.rpm". Or even the --force option. But that's not a good solution in long term and just a workaround.
[15 Aug 2013 6:34] MySQL Verification Team
Hello Joro,

Thank you for the bug report. 
Verified as described.

How to repeat:

** make sure there's a mysql-libs 5.1 package present

[root@cluster-repo setups]# rpm -qa|grep -i mysql
mysql-connector-python-1.0.10-1.el6.noarch
mysql-libs-5.1.69-1.el6_4.x86_64

**  install mysql-shared-compat

[root@cluster-repo setups]# ls -l MySQL-shared-compat-5.6.13-1.el6.x86_64.rpm
-rw-r--r-- 1 7155 wheel 3969908 Jul 12 17:36 MySQL-shared-compat-5.6.13-1.el6.x86_64.rpm

[root@cluster-repo setups]# rpm -i MySQL-shared-compat-5.6.13-1.el6.x86_64.rpm   

[root@cluster-repo setups]# rpm -qa|grep -i mysql
MySQL-shared-compat-5.6.13-1.el6.x86_64
mysql-connector-python-1.0.10-1.el6.noarch
mysql-libs-5.1.69-1.el6_4.x86_64
mysql-utilities-1.3.1-1.el6.noarch
php-mysql-5.3.3-22.el6.x86_64
perl-DBD-MySQL-4.013-3.el6.x86_64

** Download rest of the MySQL rpm's and install

[root@cluster-repo setups]# ls -l *-advanced*.rpm
-rw-r--r-- 1 root root 18285500 Jul 12 17:34 MySQL-client-advanced-5.6.13-1.el6.x86_64.rpm
-rw-r--r-- 1 root root  3292172 Jul 12 17:34 MySQL-devel-advanced-5.6.13-1.el6.x86_64.rpm
-rw-r--r-- 1 root root 62342416 Jul 12 17:35 MySQL-server-advanced-5.6.13-1.el6.x86_64.rpm
-rw-r--r-- 1 root root 49463696 Jul 12 17:36 MySQL-test-advanced-5.6.13-1.el6.x86_64.rpm

[root@cluster-repo setups]# rpm -i MySQL-client-advanced-5.6.13-1.el6.x86_64.rpm MySQL-devel-advanced-5.6.13-1.el6.x86_64.rpm MySQL-test-advanced-5.6.13-1.el6.x86_64.rpm MySQL-server-advanced-5.6.13-1.el6.x86_64.rpm
        file /usr/share/mysql/charsets/Index.xml from install of MySQL-server-advanced-5.6.13-1.el6.x86_64 conflicts with file from package mysql-libs-5.1.69-1.el6_4.x86_64
        file /usr/share/mysql/charsets/latin1.xml from install of MySQL-server-advanced-5.6.13-1.el6.x86_64 conflicts with file from package mysql-libs-5.1.69-1.el6_4.x86_64
..
..

^^ This is even reproducible on OL6.0, with MySQL 5.6.13 rpm's( GA)

[ushastry@cluster-repo ~]$ cat /etc/*-release
Oracle Linux Server release 6.0
Red Hat Enterprise Linux Server release 6.0 (Santiago)
Oracle Linux Server release 6.0

Thanks,
Umesh
[5 Sep 2013 14:34] Daniel Fischer
The root cause of this is that the maintainers of the MySQL packages in OL and related distributions have a different idea than we do of which files belong with the server and which ones belong with the client library. The conflict rpm complains about is real; these packages really can't be installed at the same time while keeping files from both packages intact.

We provide a "shared-compat" package with every release of MySQL. This package is meant to replace mysql-libs and will provide a replacement compatible client library for 5.1 (among other versions). It's set up to obsolete mysql-libs, but rpm will explicitly not replace obsoleted packages when invoked with -i (unlike -U), which is why you still get a conflict.

Note that shared-compat can safely be installed alongside mysql-libs, since libraries are installed to different locations. Therefore it is possible to install shared-compat first, and then manually remove mysql-libs before continuing with the installation. Once mysql-libs is removed, the dynamic linker will stop looking for the client library in the location where mysql-libs puts it, and the library provided by the shared-compat package will take over.

Another alternative is using yum to install packages. In a directory with all RPMs for a MySQL release, "yum install MySQL*rpm" will install them in the correct order and remove mysql-libs in one step without conflicts.
[22 Nov 2013 15:17] Paul DuBois
Thank you for your bug report. This issue has been addressed in the documentation. The updated documentation will appear on our website shortly, and will be included in the next release of the relevant products.

Added the text from Danny's final comment to
http://dev.mysql.com/doc/refman/5.7/en/linux-installation-rpm.html
and corresponding section in earlier reference manual versions.