Подтвердить что ты не робот

Установка MariaDB - Неудовлетворительные зависимости, mariadb-server-5.5

Я пытаюсь установить MariaDB на Ubuntu 12.04 LTS.

Я выполнил инструкции, приведенные в https://askubuntu.com/info/64772/how-to-install-mariadb, и от MariaDB.org, которые появляются при выборе загрузки.

Последний шаг sudo apt-get install mariadb-server, который возвращает:

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.

Проблема зависимости является проблемой подтверждения (https://mariadb.atlassian.net/browse/MDEV-3882), но я считаю, что сломанный пакет мешает мне обойти это.

Если я пытаюсь установить libmariadbclient18, я получаю следующее:

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.

Я попытался исправить разбитый пакет с помощью sudo apt-get install -f, но я все еще не могу установить mariadb-server или libmariadbclient18.

4b9b3361

Ответ 1

sudo apt-get install libmysqlclient18=5.5.30-mariadb1~precise mysql-common=5.5.30-mariadb1~precise
sudo apt-get install mariadb-server

Первый возвращает две библиотеки mysql, которые были связаны с узлом ubuntu с более старыми mariadb. Затем второй может нормально работать.

Пакеты удалены, потому что было выполнено что-то вроде apt-get dist-upgrade. GUI на самом деле предупреждает вас, что что-то не так.

Чтобы эта проблема не возникала снова, скажите apt использовать репо MariaDB через привязку, создав файл в /etc/apt/preferences.d:

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

Кроме того, не забудьте установить libmariadbclient-dev, если вам нужно скомпилировать что-нибудь (например, Ruby gems).

Ответ 2

Я сделал что-то похожее на @Lloeki

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

Затем посмотрел на кандидата, чтобы установить и переустановить его:

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

У меня появилось предупреждение о отключении плагина, но после перезапуска mysql с помощью sudo service mysql restart и установки моего sql innodb выглядел нормально, а show create table mytable показывал ENGINE=InnoDB DEFAULT CHARSET=utf8, как ожидалось.

Ответ 3

@yuvilio имеет право:

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

Это работает в 12.04, 12.10 и 13.04 (также LinuxMint 14).

Очевидно, что MariaDB является "чувствительным" в любом месте, где ядро ​​обновлено, прошло что-то вроде 3.5.0-25, что, похоже, влияет на установку MariaDB, используя простой ванильный "sudo apt-get install mariadb-server"

@yuvilio упоминает, что плагины InnoDB и FEEDBACK отключены, но InnoDB работает после этой установки.

Это имеет прекрасный смысл, потому что MariaDB использует XTRA-DB как замену для InnoDB. Предположительно MariaDB также имеет новый модуль обратной связи (они хотят, чтобы обратная связь MariaDB переходила на mariadb.org, а не в Oracle/mySQL).

Ответ 4

Ответ от @Lloeki больше не работает для меня, потому что упомянутые версии недоступны для меня, что приводит к этой ошибке:

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

Чтобы обойти это, вам нужно найти правильную версию:

Вы можете получить список доступных версий с aptitude versions libmysqlclient18. Для моей системы это выглядело так:

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

(имеется еще несколько строк, но показаны только соответствующие строки).

Строка с i - это установленная в настоящий момент версия, и для предлагаемого 5.5.30-mariadb1~precise не было строки. Был, однако, еще один кандидат, который выглядит многообещающим. Имейте в виду, что это, как и я, не обязательно должно быть одинаковым для вас (меняется со временем).

В этом примере вы можете продолжить так:

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

после чего установка выберет как клиента, так и mariadb-common, и вы сможете продолжить:

 sudo apt-get install mariadb-server

без ошибки OP.

Ответ 5

Try

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

Ответ 6

Я не знаю, помогло ли это кому-либо, но у меня возникли проблемы с установкой mariadb 10 и возникла ошибка, которая привела меня к этой странице, но ничто из того, что я пытался, помогло.

Наконец я понял, что my/tmp dir принадлежит root, а другие пользователи не могут писать на него. Я исправил эту проблему, а затем сделал:

apt-get remove mariadb-server

чтобы попытаться установить его снова, но удаление не удалось, поэтому я удалил /var/lib/mysql и затем попытался:

apt-get remove mariadb-server

снова, и на самом деле он установил mariadb-сервер и запустил его...

Теперь он работает.

Ответ 7

Позвольте мне поделиться с тем, как я решил в моем случае (Ubuntu 14.04).

У меня была ошибка:

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

Решение:

Шаг 1: sudo apt-get install libmysqlclient18

Шаг 2: sudo apt-get install mariadb-server

Примечания:

  • Я устанавливал в соответствии с этими инструкциями
  • Я еще не установил MySQL

Ответ 8

Мне удалось установить mariadb, удалив все последующие пакеты mysql:

    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

Я не уверен, что сначала необходимо удалить mysql.