it-swarm.com.de

Installation von MariaDB - Nicht erfüllte Abhängigkeiten, Mariadb-Server-5.5

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.

27
Courtney Miles
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).

34
Lloeki

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.

9
yuvilio

@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)

4
Felix Bachofner

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.

4
Nanne

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.

2
Chris Seline

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:

2
Askar

Versuchen

Sudo dpkg --remove --force-remove-reinstreq BROKEN_PACKAGE
2
dezza

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.

0
dropslowly