Ich versuche, MariaDB auf Ubuntu 12.04 LTS zu installieren.
Ich habe die Anweisungen unter https://askubuntu.com/questions/64772/how-to-install-mariadb und von MariaDB.org befolgt, die beim Auswählen des Downloads angezeigt werden.
Der letzte Schritt ist Sudo apt-get install mariadb-server
, der Folgendes zurückgibt:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
mariadb-server : Depends: mariadb-server-5.5 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
Das Abhängigkeitsproblem ist ein Anerkennungsproblem ( https://mariadb.atlassian.net/browse/MDEV-3882 ), aber ich glaube, das defekte Paket hindert mich daran, dies zu umgehen.
Wenn ich versuche, libmariadbclient18 zu installieren, bekomme ich Folgendes:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
libmariadbclient18 : Depends: libmysqlclient18 (= 5.5.30-mariadb1~precise) but 5.5.31-0ubuntu0.12.04.1 is to be installed
E: Unable to correct problems, you have held broken packages.
Ich habe versucht, das beschädigte Paket mit Sudo apt-get install -f
zu korrigieren, aber ich kann Mariadb-Server oder Libmariadbclient18 immer noch nicht installieren.
Sudo apt-get install libmysqlclient18=5.5.30-mariadb1~precise mysql-common=5.5.30-mariadb1~precise
Sudo apt-get install mariadb-server
Die erste setzt die beiden MySQL-Bibliotheken, die auf der Ubuntu-Seite vorhanden waren, auf die älteren Mariadb-Bibliotheken zurück. Der zweite kann dann normal weitergehen.
Pakete wurden entfernt, weil etwas wie apt-get dist-upgrade
ausgeführt wurde. Die GUI warnt Sie tatsächlich, dass etwas nicht stimmt.
Um zu verhindern, dass dieses Problem erneut auftritt, weisen Sie apt an, das MariaDB-Repo über Pinning zu bevorzugen , indem Sie eine Datei in /etc/apt/preferences.d
erstellen:
$ cat /etc/apt/preferences.d/MariaDB.pref
Package: *
Pin: Origin <mirror-domain>
Pin-Priority: 1000
Stellen Sie außerdem sicher, dass Sie libmariadbclient-dev
installieren, wenn Sie etwas kompilieren müssen (wie Ruby-Edelsteine).
Ich habe etwas Ähnliches wie @Lloeki gemacht
$ Sudo apt-get purge libmariadbclient18 mariadb-server mariadb-client-5.5 libmysqlclient18 mysql-common```
Dann suchte der Kandidat nach der Installation und installierte ihn neu:
$ apt-cache policy libmysqlclient18 | grep -i quantal
Installed: 5.5.30-mariadb1~quantal
*** 5.5.30-mariadb1~quantal 0
500 http://ftp.osuosl.org/pub/mariadb/repo/5.5/ubuntu/ quantal/main AMD64 Packages
$ apt-cache policy mysql-common | grep -i quantal
Installed: 5.5.30-mariadb1~quantal
*** 5.5.30-mariadb1~quantal 0
500 http://ftp.osuosl.org/pub/mariadb/repo/5.5/ubuntu/ quantal/main AMD64 Packages
$
$ Sudo apt-get install libmysqlclient18=5.5.30-mariadb1~quantal mysql-common=5.5.30-mariadb1~quantal mariadb-server mariadb-client
...
* Stopping MariaDB database server mysqld [ OK ]
130428 13:19:40 [Note] Plugin 'InnoDB' is disabled.
130428 13:19:40 [Note] Plugin 'FEEDBACK' is disabled.
Ich habe diese Plugin-Deaktiviert-Warnung erhalten, aber nach dem Neustart von mysql mit Sudo service mysql restart
und der Installation meiner SQL schien innodb in Ordnung zu sein und show create table mytable
zeigte ENGINE=InnoDB DEFAULT CHARSET=utf8
wie erwartet.
@yuvilio hat es richtig mit:
$ Sudo apt-get install libmysqlclient18=5.5.30-mariadb1~quantal mysql-common=5.5.30-mariadb1~quantal mariadb-server mariadb-client
Dies funktioniert in 12.04, 12.10 und 13.04 (auch LinuxMint 14).
Anscheinend ist MariaDB "empfindlich" für alle Stellen, an denen der Kernel über etwas wie 3.5.0-25 hinaus aktualisiert wurde. Dies scheint die Installation von MariaDB mit einem einfachen Vanilla "Sudo apt-get install mariadb-server" zu beeinflussen
@yuvilio erwähnt, dass die Plugins 'InnoDB' und 'FEEDBACK' deaktiviert sind, InnoDB jedoch nach dieser Installation funktioniert.
Dies ist absolut sinnvoll, da MariaDB XTRA-DB als Ersatz für InnoDB verwendet. Vermutlich hat MariaDB auch ein neues Feedback-Modul (sie möchte, dass MariaDB-Feedback an mariadb.org und NICHT an Oracle/mySQL gesendet wird)
Die Antwort von @Lloeki funktioniert für mich nicht mehr, da die genannten Versionen nicht für mich verfügbar sind und dieser Fehler auftritt:
E: Version '5.5.30-mariadb1~precise' for 'libmysqlclient18' was not found
Um dies zu umgehen, müssen Sie eine korrekte Version finden:
Mit aptitude versions libmysqlclient18
können Sie eine Liste der verfügbaren Versionen erhalten. Für mein System sah das so aus:
Package libmysqlclient18:
[...]
p 5.5.31+maria-1~precise <NULL> 1000
i 1:5.5.32-rel31.0-549.precise <NULL> 500
[...]
(Es gibt einige weitere Zeilen, aber nur die relevanten Zeilen werden angezeigt).
Die Zeile mit i
ist die aktuell installierte Version, und für den vorgeschlagenen 5.5.30-mariadb1~precise
gab es keine Zeile. Es gab jedoch einen weiteren Kandidaten, der vielversprechend aussieht. Beachten Sie, dass dies genauso wie ich es nicht für Sie haben muss (Änderungen im Laufe der Zeit).
In diesem Beispiel können Sie wie folgt fortfahren:
Sudo apt-get install libmysqlclient18=5.5.31+maria-1~precise
und danach wählt die Installation sowohl den Client als auch mariadb-common
aus, und Sie können fortfahren mit:
Sudo apt-get install mariadb-server
ohne den Fehler des OP.
Ich weiß nicht, ob dies jemandem hilft, aber ich hatte Probleme bei der Installation von Mariadb 10 und bekam einen Fehler, der mich zu dieser Seite führte, aber nichts, was ich versuchte, half.
Ich stellte schließlich fest, dass mein/tmp-Verzeichnis root gehörte und andere Benutzer es nicht schreiben konnten. Ich habe dieses Problem behoben und dann gemacht:
apt-get remove mariadb-server
um zu versuchen, es erneut zu installieren, aber das Entfernen schlug fehl, daher entfernte ich /var/lib/mysql
und versuchte es dann:
apt-get remove mariadb-server
wieder und es installiert tatsächlich mariadb-server und hat es in betrieb genommen ...
Es funktioniert jetzt.
Lassen Sie mich sagen, wie ich in meinem Fall gelöst habe (Ubuntu 14.04).
Ich hatte error:
$ Sudo apt-get install mariadb-server-5.5
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
mariadb-server-5.5 : Depends: mariadb-client-5.5 (>= 5.5.41+maria-1~trusty) but it is not going to be installed
Depends: mariadb-server-core-5.5 (>= 5.5.41+maria-1~trusty) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
Lösung:
Schritt 1: Sudo apt-get install libmysqlclient18
Schritt 2: Sudo apt-get install mariadb-server
Anmerkungen:
Versuchen
Sudo dpkg --remove --force-remove-reinstreq BROKEN_PACKAGE
Ich konnte mariadb installiert bekommen, indem ich alle mysql-Pakete entfernte und dann ausführte:
Sudo apt-get install mariadb-server-5.5 mariadb-client-5.5\ mariadb-server-core-5.5 mariadb-allgemeiner mariadb-server\ libmariadbclient18 libdbd-mysql-Perl mariadb-client-core-5.5\ libmysqlclient18 = 5.5.30-mariadb1 ~ quantal\ mysql-common = 5.5.30-mariadb1 ~ quantal
Ich bin nicht sicher, ob das Entfernen von mysql zuerst erforderlich war.