ubuntu - digitalocean - Instalación de MariaDB-Dependencias no satisfechas, mariadb-server-5.5
sudo apt install mariadb-server (8)
Estoy intentando instalar MariaDB en Ubuntu 12.04 LTS.
He seguido las instrucciones proporcionadas en https://askubuntu.com/questions/64772/how-to-install-mariadb y en MariaDB.org que aparecen cuando eliges la descarga.
El último paso es sudo apt-get install mariadb-server
que devuelve:
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.
El problema de la dependencia es un problema de reconocimiento ( https://mariadb.atlassian.net/browse/MDEV-3882 ) pero creo que el paquete roto me impide trabajar en esto.
Si intento instalar libmariadbclient18 obtengo lo siguiente:
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.
Intenté corregir el paquete roto con sudo apt-get install -f
, pero todavía no puedo instalar mariadb-server o libmariadbclient18.
Tratar
sudo dpkg --remove --force-remove-reinstreq BROKEN_PACKAGE
Pude instalar mariadb al eliminar todos los paquetes de MySQL que se estaban ejecutando:
sudo apt-get install 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
No estoy seguro si fue necesario eliminar mysql primero.
Hice algo similar a @Lloeki
$ sudo apt-get purge libmariadbclient18 mariadb-server mariadb-client-5.5 libmysqlclient18 mysql-common```
Luego busqué al candidato para instalarlo y reinstalarlo:
$ 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.
Recibí esa advertencia de complemento desactivado pero al reiniciar mysql con el sudo service mysql restart
e instalar mi sql, innodb parecía estar bien y show create table mytable
mostraba ENGINE=InnoDB DEFAULT CHARSET=utf8
como se esperaba.
@yuvilio tiene razón con:
$ sudo apt-get install libmysqlclient18=5.5.30-mariadb1~quantal mysql-common=5.5.30-mariadb1~quantal mariadb-server mariadb-client
Esto funciona en 12.04, 12.10 y 13.04 (también LinuxMint 14).
Aparentemente MariaDB es "sensible" a cualquier lugar donde el kernel haya sido actualizado después de algo como 3.5.0-25 que parece afectar la instalación de MariaDB usando un simple vainilla "sudo apt-get install mariadb-server"
@yuvilio menciona que los complementos ''InnoDB'' y ''FEEDBACK'' están desactivados, pero que InnoDB funciona después de esta instalación.
Esto tiene mucho sentido porque MariaDB usa XTRA-DB como reemplazo en reemplazo de InnoDB. Es de suponer que MariaDB también tiene un nuevo módulo de comentarios (quieren que los comentarios de MariaDB vayan a mariadb.org y NO a Oracle / mySQL)
La respuesta de @Lloeki ya no funciona, porque las versiones mencionadas no están disponibles para mí, lo que da como resultado este error:
E: Version ''5.5.30-mariadb1~precise'' for ''libmysqlclient18'' was not found
Para solucionar esto, debes encontrar una versión correcta:
Puede obtener una lista de versiones disponibles con las versiones de aptitude versions libmysqlclient18
. Para mi sistema esto se veía así:
Package libmysqlclient18:
[...]
p 5.5.31+maria-1~precise <NULL> 1000
i 1:5.5.32-rel31.0-549.precise <NULL> 500
[...]
(hay varias líneas más, pero solo se muestran las líneas relevantes).
La línea con i
es la versión actualmente instalada, y no había línea para la sugerencia 5.5.30-mariadb1~precise
. Sin embargo, hubo otro candidato que parece prometedor. Tenga en cuenta que esto, al igual que yo, no tiene que ser el mismo para usted (cambios a lo largo del tiempo).
En este ejemplo puedes continuar así:
sudo apt-get install libmysqlclient18=5.5.31+maria-1~precise
y después de esto, la instalación seleccionará tanto el cliente como mariadb-common
, y puede continuar con:
sudo apt-get install mariadb-server
sin el error de OP.
sudo apt-get install libmysqlclient18=5.5.30-mariadb1~precise mysql-common=5.5.30-mariadb1~precise
sudo apt-get install mariadb-server
El primero revierte las dos libs de mysql que se superpusieron al lado de ubuntu a las antiguas mariadb. El segundo puede luego proceder normalmente.
Los paquetes se eliminaron porque se ejecutó algo como apt-get dist-upgrade
. La GUI en realidad te advierte que algo anda mal.
Para evitar que vuelva a surgir este problema, indique apt para favorecer el repositorio de MariaDB mediante la creación de un archivo en /etc/apt/preferences.d
:
$ cat /etc/apt/preferences.d/MariaDB.pref
Package: *
Pin: origin <mirror-domain>
Pin-Priority: 1000
Además, asegúrese de instalar libmariadbclient-dev
si necesita compilar algo (como gemas Ruby).
Permítanme compartir con cómo resolví en mi caso ( Ubuntu 14.04 ).
Tuve un 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.
Solución:
Paso 1: sudo apt-get install libmysqlclient18
Paso 2: sudo apt-get install mariadb-server
Notas:
- Estaba instalando de acuerdo con estas instrucciones
- No había instalado previamente MySQL
No sé si esto ayuda a alguien, pero tuve problemas para instalar mariadb 10 y obtuve un error que me llevó a esta página, pero nada de lo que intenté ayudó.
Finalmente me di cuenta de que my / tmp dir era propiedad de root y que otros usuarios no podían escribir en él. Solucioné ese problema y luego lo hice:
apt-get remove mariadb-server
para intentar instalarlo de nuevo, pero la eliminación falló, así que eliminé /var/lib/mysql
y luego intenté:
apt-get remove mariadb-server
de nuevo y en realidad instaló el servidor mariadb y lo puso en funcionamiento ...
Ahora funciona.