Details
Description
On Debian wheezy upgrade from mysql->mariadb fails like this:
# apt-get install mariadb-server-5.5
The following packages have unmet dependencies:
mariadb-server-5.5 : Depends: mariadb-client-5.5 (>= 5.5.28-mariadb1~wheezy) but it is not going to be installed
Depends: mariadb-server-core-5.5 (>= 5.5.28-mariadb1~wheezy) but it is not going to be installed
The root cause is this:
# apt-get install libmariadbclient18 ~ libmariadbclient18 : Depends: libmysqlclient18 (= 5.5.28-mariadb1~wheezy) but 5.5.28+dfsg-1 is to be instahlled
I believe the problem is that apt-get considers 5.5.28+dfsg-1 a newer version
than 5.5.28-mariadb1~wheezy, and it will by default not do a downgrade to
satisfy a dependency.
A work-around is to ask for the "downgrade" explicitly:
# apt-get install mariadb-server-5.5 libmysqlclient18=5.5.28-mariadb1~wheezy
This problem becomes more of an issue due to Oracle keeping security patches
secrect. This forces distros to upgrade to latest upstream version in released
distros, which means we will more often get a newer mysql version on top of an
earlier mariadb version, causing this issue.
One fix may be to re-write the -mariadb1~wheezy suffix to something that
apt-get considers newer than +dfsg-1, then apt-get will automatically install
the replacement package as it does not consider it a downgrade.
This however does not help if the distro introduces eg. mysql 5.5.30 while the
mariadb repositories still have only 5.5.29 - then it will still be considered
a downgrade.
Gliffy Diagrams
Attachments
Issue Links
Activity
- All
- Comments
- Work Log
- History
- Activity
- Transitions
It appears this problem is even worse.
There was a report that issuing a general upgrade can cause apt-get to want to
remove mariadb-server-5.5 so that it can upgrade libmysqlclient.
So a user not being careful to notice this fact could end up accidentally
removing mariadb during a routine upgrade (the data will not be removed, but
it is still a rather serious issue).