2013-04-25 2 views
25

Я пытаюсь установить MariaDB на Ubuntu 12.04 LTS.Установка MariaDB - Неудовлетворительные зависимости, mariadb-server-5.5

Я следил за инструкциями, приведенными в https://askubuntu.com/questions/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-сервер или libmariadbclient18.

+1

Связанные: [? Как решить неудовлетворенные зависимости] (http://askubuntu.com/questions/140246/how-do-i-resolve-unmet-dependencies) –

ответ

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

Первый возвращается два MySQL LIBS, которые врезались сторону Ubuntu для старых MariaDB из них. Второй может продолжить нормально.

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

Чтобы предотвратить эту проблему вновь появляющегося, скажите склонны favor the MariaDB repo via pinning путем создания файла в /etc/apt/preferences.d:

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

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

+0

Спасибо, это разрешило. У меня был только CLI, поэтому я не мог использовать GUI. – user2045006

+0

CLI (apt-get) в какой-то момент также должен был предупредить об обновлении 'apt-get ', при этом * следующие пакеты были сохранены' * list. Aptitude, с другой стороны, я не знаю , но иногда я чувствую, что он слишком много пытается выполнить ваши пожелания. – Lloeki

+0

Для 'Ubuntu 13.10' (Saucy Salamander) используйте' sudo apt-get install libmysqlclient18 = 5.5.33a + maria-1 ~ saucy mysql-common = 5.5.33a + maria-1 ~ saucy mariadb-server mariadb-client'. – absynce

3

Попробуйте

sudo dpkg --remove --force-remove-reinstreq BROKEN_PACKAGE 
+0

Я пробовал это, заменив BROKEN_PACKAGE на libmysqlclient18, но он говорит, что он не установлен. Как определить, что такое сломанный пакет? – user2045006

+0

Попробуйте «dpkg --get-selection | less» и пройдите и запишите любой пакет mysql, удалите их все и повторите попытку. – dezza

+1

Спасибо. Я встретил maria, mysql, sql, db, но ничего не нашел. Я хотел бы знать, как это исправить, но, к сожалению, быстрее просто сдуть сервер и начать все заново. – user2045006

0

Я был в состоянии получить 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 первым было необходимо.

+0

Вы вопрос-плакат? Если это так, вы должны связать свои учетные записи. –

+0

К сожалению, у меня нет пакетов mysql, установленных для удаления :(И ваша команда не будет работать из-за разбитого пакета, который я не могу идентифицировать. – user2045006

9

я сделал что-то похожее на @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. 

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

+0

Я использовал то же состояние для решения той же проблемы на ubuntu 13.04. Благодарю. –

4

@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-получить установку MariaDB-сервер»

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

2

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

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

apt-get remove mariadb-server 

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

apt-get remove mariadb-server 

снова, и это на самом деле УСТАНОВЛЕНО mariadb- сервер и запустил его ...

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

2

Позвольте поделиться с тем, как я решил в моем случае (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

Примечания:

  • я устанавливал в соответствии с этими instructions
  • Я не ранее установленного MySQL
+0

Это не сработало для меня. Я установил первый, но второй вызов все еще не срабатывает. Ubuntu 14.04. – Deleet

Смежные вопросы