This is a read-only copy of the MariaDB Knowledgebase generated on 2024-11-17. For the latest, interactive version please visit https://mariadb.com/kb/.

Drop-in replacement on Debian

Is there a way to make MariaDB install over MySQL on a Debian machine? I have my puppet master, which is running Debian/sid. It has puppet-dashboard, which utilizes MySQL 5.5.28. Much to my dismay, I am unable to install MariaDB over it:

The following packages have unmet dependencies:
 libmariadbclient18 : Depends: libmysqlclient18 (= 5.5.28-mariadb1~wheezy) but 5.5.28+dfsg-1 is to be installed
E: Unable to correct problems, you have held broken packages.

But if I try to uninstall the parts of MySQL, then apt wishes to uninstall everything, up to and including puppet-dashboard:

The following packages were automatically installed and are no longer required:
  dbconfig-common libaio1 libhttpclient-ruby1.8 mysql-server-core-5.5 rake
  ruby-dbi ruby-deprecated unzip zip
Use 'apt-get autoremove' to remove them.
The following packages will be REMOVED:
  libdbd-mysql-perl libdbd-mysql-ruby libmysqlclient18 mysql-client
  mysql-client-5.5 mysql-server mysql-server-5.5 puppet-dashboard ruby-dbd-mysql
  ruby-mysql

This is unacceptable for a live box... Is there something else I can do to make the install less painful?

Answer Answered by Sergei Golubchik in this comment.

Quoting a reply in the mailing list:

From: Jean Weisbuch
To: maria-discuss@lists.launchpad.net
Subject: Re: [Maria-discuss] KB Question: Drop-in replacement on Debian
Date: Sat, 17 Nov 2012 13:39:31 +0100
List-Archive: <http://lists.launchpad.net/maria-discuss>

It's due to the fact that the libmysqlclient18 package from the Wheezy
MySQL package set is conflicting with the one from the Mariadb set.
While the Maria package should have an higher "priority" if both are
to be choosen it doesnt, so it falls back on the wrong one, this can
be verified this way :

   root@servor:~# apt-cache policy libmysqlclient18
   libmysqlclient18:
      Installed: 5.5.24+dfsg-9
      Candidate: 5.5.24+dfsg-9
      Version table:
         5.5.28+dfsg-1 0
            996 http://ftp2.fr.debian.org/debian/ sid/main amd64 Packages
         5.5.28-mariadb1~wheezy 0
            500 http://mirror2.hs-esslingen.de/mariadb/repo/5.5/debian/
   wheezy/main amd64 Packages
     *** 5.5.24+dfsg-9 0
            999 http://cdn.debian.net/debian/ wheezy/main amd64 Packages
            100 /var/lib/dpkg/status


Candidate should be 5.5.28-mariadb1~wheezy in that case, you can
manually pin the Mariadb package with an higher priority but it should
be fixed upstream so there is no need to force packages priorities.

Here is a quick fix (don't forget to ajust to the Maria mirror you are
using) :

   echo -e "Package: libmysqlclient18\nPin: origin
   mirror2.hs-esslingen.de\nPin-Priority: 1000" >
   /etc/apt/preferences.d/mariadb-mysqlclient18


Then you can verify with "apt-cache policy libmysqlclient18" that the
candidate package is the right one this time and the package
installation should now work well.

ps: same kind of conflict (on the same package) happens when you have
both Percona and Maria5.5 repositories on a Squeeze, it tries to
install the Percona libmysqlclient18 package rather then the Maria
one.
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.