Installer MariaDB – Dépendances non satisfaites, mariadb-server-5.5

Je tente d’installer MariaDB sur Ubuntu 12.04 LTS.

J’ai suivi les instructions fournies sur https://askubuntu.com/questions/64772/how-to-install-mariadb et sur 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 dissortingbution 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 de reconnaissance ( https://mariadb.atlassian.net/browse/MDEV-3882 ), mais je pense que le paquet défectueux m’empêche de contourner ce problème.

Si j’essaie d’installer libmariadbclient18, j’obtiens les éléments suivants:

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

 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 se trouvaient du côté d’ubuntu avec les anciennes librairies mariadb. Le second peut alors procéder normalement.

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

Pour éviter que ce problème ne se reproduise, indiquez à apt pour favoriser le repository MariaDB en épinglant en créant un fichier dans /etc/apt/preferences.d :

 $ cat /etc/apt/preferences.d/MariaDB.pref Package: * Pin: origin  Pin-Priority: 1000 

Veillez également à installer libmariadbclient-dev si vous avez besoin de comstackr quoi que ce soit (comme Ruby gems).

J’ai fait quelque chose de similaire à @Lloeki

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

Puis regarda le candidat pour l’installer et le réinstaller:

 $ 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 eu cet avertissement Plugin désactivé mais au redémarrage de mysql avec sudo service mysql restart et l’installation de sql, innodb semblait bien et show create table mytable montrait ENGINE=InnoDB DEFAULT CHARSET=utf8 comme prévu.

@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” à tout endroit où le kernel a été mis à jour au-delà de quelque chose comme 3.5.0-25, ce qui semble affecter l’installation de MariaDB avec une simple vanille “sudo apt-get install mariadb-server”

@yuvilio mentionne que les plugins ‘InnoDB’ et ‘FEEDBACK’ sont désactivés mais que InnoDB fonctionne après cette installation.

Cela est parfaitement logique car MariaDB utilise XTRA-DB comme solution de remplacement pour InnoDB. MariaDB a probablement un nouveau module de rétroaction (ils veulent que les commentaires de MariaDB se rendent sur mariadb.org et PAS sur Oracle / mySQL).

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 cette erreur:

 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 les versions d’ aptitude versions libmysqlclient18 . Pour mon système, cela ressemblait à ceci:

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

(il y a plusieurs lignes supplémentaires, mais seules les lignes pertinentes sont affichées).

La ligne avec i est la version actuellement installée, et il n’y avait pas de ligne pour le 5.5.30-mariadb1~precise suggéré. Il y avait cependant un autre candidat qui semble prometteur. Sachez que cela n’a pas à être le même pour vous (au fil du temps).

Dans cet exemple, vous pouvez continuer ainsi:

 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.

Essayer

 sudo dpkg --remove --force-remove-reinstreq BROKEN_PACKAGE 

Laissez-moi partager avec comment j’ai résolu dans mon cas ( Ubuntu 14.04 ).

J’ai eu une erreur :

 $ 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 dissortingbution 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:

Etape 1: sudo apt-get install libmysqlclient18

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

Remarques:

  • J’étais en train d’installer selon ces instructions
  • Je n’avais pas déjà installé MySQL

Je ne sais pas si cela aide quelqu’un, mais j’ai eu du mal à installer mariadb 10 et j’ai eu une erreur qui m’a conduit à cette page, mais rien n’a essayé.

J’ai finalement réalisé que mon répertoire / tmp appartenait à root et que les autres utilisateurs ne pouvaient pas y écrire. J’ai corrigé ce problème et ensuite fait:

 apt-get remove mariadb-server 

pour essayer de l’installer à nouveau, mais la suppression a échoué, j’ai donc supprimé /var/lib/mysql et a ensuite essayé:

 apt-get remove mariadb-server 

encore une fois et il a effectivement installé mariadb-server et l’a mis en marche …

Ça fonctionne maintenant.

J’ai pu installer mariadb en supprimant tous les paquets mysql en cours d’exécution:


     sudo apt-get installer mariadb-server-5.5 mariadb-client-5.5 \
     mariadb-server-core-5.5 mariadb-commun mariadb-serveur \
     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 de devoir d’abord supprimer mysql.