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: email@example.com 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.