Bug #49083 Installation error when using RPM's on SLES11 (libmysqlclient_r.so.15.0.0)
Submitted: 25 Nov 2009 2:36 Modified: 20 Apr 2010 8:24
Reporter: Roel Van de Paar Email Updates:
Status: Not a Bug Impact on me:
None 
Category:MySQL Server: Installing Severity:S2 (Serious)
Version:5.1.41 OS:Linux (SLES11)
Assigned to: CPU Architecture:Any

[25 Nov 2009 2:36] Roel Van de Paar
Description:
On SLES11, installing MySQL-shared-compat-gpl-5.1.41-0.sles11.i586.rpm results in this error:

file /usr/lib/libmysqlclient_r.so.15.0.0 from install of MySQL-shared-compat-enterprise-gpl-5.1.51-0.sles11.i586 conflicts with file form package libmysqlclient_r15-5.0.67-13.15.i586.

It looks like libmysqlclient is by default there on SLES.

How to repeat:
rpm -i MySQL-server-enterprise-gpl-5.1.41-0.sles11.i586.rpm
rpm -i MySQL-client-enterprise-gpl-5.1.41-0.sles11.i586.rpm
rpm -i MySQL-shared-compat-gpl-5.1.41-0.sles11.i586.rpm

Suggested fix:
Workaround: 

Install as follows:

rpm -e --nodeps libmysqlclient_r15-5.0.67-13.15
rpm -i MySQL-server-enterprise-gpl-5.1.41-0.sles11.i586.rpm
rpm -i MySQL-client-enterprise-gpl-5.1.41-0.sles11.i586.rpm
rpm -i MySQL-shared-compat-gpl-5.1.41-0.sles11.i586.rpm
[25 Nov 2009 2:37] Roel Van de Paar
Also see bug #22081
[30 Nov 2009 18:11] Sveta Smirnova
Thank you for the report.

Verified as described examining RPM's content. List of packages in SLES 11 DVD which includes libmysqlclient_r15-5.0.67-13.15.i586.rpm located at http://ls-lr.lafox.net/?iso_id=5592
[5 Dec 2009 2:38] Omer Barnir
Note: this is how all of our shared-compat RPMs (not specific to SLES11) and have always behaved. The shared-compat RPM *replaces* the shared RPM; the shared RPM must be removed before installing shared-compat. this is not ideal, but to avoid a change in behavior which could break installations, it will not be changed until a future MySQL version
[19 Apr 2010 18:10] Joerg Bruehe
Omer's comment is correct, but it doesn't fully meet the report:

There is no "shared" MySQL RPM installed but rather one we do not control, named "libmysqlclient_r15-5.0.67-13.15".
According to Sveta's comment, this came with SuSE 11.

The reporter's "Suggested Fix" should help, but it may happen that this leads to trouble when upgrading system components.

I don't yet see what we (MySQL) could change in change in our packages to avoid this situation. Suggestions are welcome.
[20 Apr 2010 8:24] Daniel Fischer
They don't seem to be installed on our SLES11 boxes, so they are optional, but perhaps suggested by the SLES11 installer or pulled in by something that is likely installed in certain circumstances (e.g. certain desktop applications that use MySQL, or a scripting language that is often used with MySQL)?

Anyway, the shared-compat RPMs are supposed to provide older versions of libmysqlclient for compatibility with existing applications when an upgrade of MySQL results in replacing an existing client library from the previous installation with a newer version.

They are NOT supposed to be installed everywhere, especially not on systems that by default include a specific version of the client library. In that case, there should be no existing application that needs a version different from the one that ships with the system.

We do have the necessary provides lines in our packages to make the system recognize them as replacements when other packages that are installed later depend on them, but IIRC we opted against adding obsoletes lines because that would break automatic updates of the library that ships with the system. In the case of shared-compat, we specifically can't allow such updates too, because they would remove the other versions of the library that are presumably the reason for even installing the shared-compat package in the first place.

So it is a very much deliberate choice that installing our shared-compat RPMs fails early rather than later. The decision to replace a system package with them has to be explicit and there has to be a reason for doing it.

Hence, I'm setting this to "not a bug". It's not perfect, but I believe it's the best choice.