web-dev-qa-db-fra.com

Installation de MariaDB - Dépendances non résolues, mariadb-server-5.5

J'essaie d'installer MariaDB sur Ubuntu 12.04 LTS.

J'ai suivi les instructions fournies à l'adresse https://askubuntu.com/questions/64772/how-to-install-mariadb et de MariaDB.org qui apparaissent lorsque vous choisissez le téléchargement.

La dernière étape est Sudo apt-get install mariadb-server qui renvoie:

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.

Le problème de dépendance est un problème d'accusé de réception ( https://mariadb.atlassian.net/browse/MDEV-3882 ) mais je pense que le paquetage endommagé m'empêche de travailler sur ce problème.

Si j'essaie d'installer libmariadbclient18, j'obtiens les informations suivantes:

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.

J'ai essayé de corriger le paquet cassé en utilisant Sudo apt-get install -f, mais je ne peux toujours pas installer mariadb-server ou libmariadbclient18.

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

Le premier rétablit les deux librairies mysql qui ont été déplacées du côté ubuntu aux anciennes versions de mariadb. Le second peut alors procéder normalement.

Les paquets ont été supprimés car quelque chose comme apt-get dist-upgrade a été exécuté. L'interface graphique vous avertit en réalité que quelque chose ne va pas.

Pour éviter que ce problème ne se reproduise, indiquez apt à favorisez le dépôt MariaDB via pinning en créant un fichier dans /etc/apt/preferences.d:

$ cat /etc/apt/preferences.d/MariaDB.pref
Package: *
Pin: Origin <mirror-domain>
Pin-Priority: 1000

Veillez également à installer libmariadbclient-dev si vous devez compiler quelque chose (comme des gemmes Ruby).

34
Lloeki

J'ai fait quelque chose de similaire à @ Loeki

$ Sudo apt-get purge libmariadbclient18 mariadb-server mariadb-client-5.5 libmysqlclient18 mysql-common```

Puis a recherché le candidat à installer et l'a réinstallé:

$ 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.

J'ai reçu l'avertissement Plugin Disabled, mais après avoir redémarré mysql avec Sudo service mysql restart et installé mon sql, innodb semblait aller bien et show create table mytable affichait ENGINE=InnoDB DEFAULT CHARSET=utf8 comme prévu.

9
yuvilio

@yuvilio a raison avec:

$ Sudo apt-get install libmysqlclient18=5.5.30-mariadb1~quantal mysql-common=5.5.30-mariadb1~quantal mariadb-server mariadb-client

Cela fonctionne dans 12.04, 12.10 et 13.04 (également LinuxMint 14).

Apparemment, MariaDB est "sensible" à n'importe quel endroit où le noyau a été mis à jour, quelque chose comme 3.5.0-25, ce qui semble affecter l'installation de MariaDB avec un simple script "Sudo apt-get install mariadb-server".

@yuvilio mentionne que les plug-ins 'InnoDB' et 'FEEDBACK' sont désactivés mais qu'InnoDB fonctionne après cette installation.

Cela est parfaitement logique car MariaDB utilise XTRA-DB en remplacement direct de InnoDB. Vraisemblablement, MariaDB a également un nouveau module de commentaires (ils souhaitent que les commentaires de MariaDB soient envoyés à mariadb.org et NON à Oracle/mySQL).

4
Felix Bachofner

La réponse de @Lloeki ne fonctionne plus pour moi, car les versions mentionnées ne sont pas disponibles pour moi, ce qui entraîne l'erreur suivante:

E: Version '5.5.30-mariadb1~precise' for 'libmysqlclient18' was not found

Pour contourner ce problème, vous devez trouver une version correcte:

Vous pouvez obtenir une liste des versions disponibles avec aptitude versions libmysqlclient18. Pour mon système, cela ressemblait à:

Package libmysqlclient18:
[...]
p   5.5.31+maria-1~precise                                         <NULL>                                      1000
i   1:5.5.32-rel31.0-549.precise                                   <NULL>                                      500
[...]    

(Il y a plusieurs autres lignes, mais seules les lignes pertinentes sont affichées).

La ligne avec i est la version actuellement installée et il n'y avait aucune ligne pour le 5.5.30-mariadb1~precise suggéré. Il y avait cependant un autre candidat qui semble prometteur. Soyez avisé que cela, tout comme moi, ne doit pas être identique pour vous (change avec le temps).

Dans cet exemple, vous pouvez continuer comme suit:

Sudo apt-get install libmysqlclient18=5.5.31+maria-1~precise

et après cela l’installation sélectionnera à la fois le client et mariadb-common, et vous pourrez continuer avec:

 Sudo apt-get install mariadb-server

sans erreur de l'OP.

4
Nanne

Je ne sais pas si cela aide quelqu'un, mais j'ai eu du mal à installer mariadb 10 et une erreur m'a amené à cette page, mais rien de ce que j'ai essayé n'a aidé.

J'ai finalement réalisé que mon répertoire/tmp était la propriété de root et que les autres utilisateurs ne pouvaient pas y écrire. J'ai résolu ce problème et ensuite:

apt-get remove mariadb-server

pour essayer de l'installer à nouveau, mais la suppression a échoué, alors j'ai supprimé /var/lib/mysql.__, puis essayé:

apt-get remove mariadb-server

encore une fois et il a effectivement installé mariadb-server et l'a mis en place ...

Ça fonctionne maintenant.

2
Chris Seline

Laissez-moi vous raconter comment j'ai résolu le problème (Ubuntu 14.04).

J'ai eu 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.

Solution:

Étape 1: Sudo apt-get install libmysqlclient18

Étape 2: Sudo apt-get install mariadb-server

Remarques:

  • J'installais selon ces instructions instructions
  • Je n'avais pas déjà installé MySQL
2
Askar

Essayer

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

J'ai pu installer mariadb en supprimant tous les paquets mysql puis en exécutant:


 Sudo apt-get installez mariadb-server-5.5 mariadb-client-5.5\
 mariadb-server-core-5.5 mariadb-common mariadb-server\
 libmariadbclient18 libdbd-mysql-Perl mariadb-client-core-5.5\
 libmysqlclient18 = 5.5.30-mariadb1 ~ quantal\
 mysql-common = 5.5.30-mariadb1 ~ quantal 

Je ne suis pas sûr qu'il soit nécessaire de supprimer mysql en premier.

0
dropslowly