Instalando o MariaDB quando o Apt relata que o MariaDB tem dependências não atendidas ou pacotes quebrados

9

Eu tentei de tudo para instalar o MariaDB nesta instalação limpa do Ubuntu, mas continuo recebendo este erro,

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 (= 5.5.33a+maria-1~saucy) 
but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Eu segui este guia para tentar instalá-lo, link

E eu também segui o guia "oficial" na página de downloads do MariaDB para 13.10 link

Mas nada parece estar funcionando.

Editar 1

Eu tentei tanto Como resolvo dependências não satisfeitas depois de adicionar um PPA? e Como instalar o MariaDB? mas ainda me dá o erro que eu postei acima.

É uma nova instalação do Ubuntu com quase nada instalado.

Editar 2

Todas as caixas de seleção são ticket em Atualizações. Eu corri:

sudo apt-get update && sudo apt-get -f install mariadb-server-5.5"=5.5.33a+maria-1~saucy"

E isso me deu esse erro:

The following packages have unmet dependencies:
mariadb-server-5.5 : Depends: mariadb-client-5.5 (>= 5.5.33a+maria-1~saucy) 
but it is not going to be installed
Depends: mariadb-server-core-5.5 (>= 5.5.33a+maria-1~saucy) 
but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
    
por Andreas 26.10.2013 / 06:52

2 respostas

16

Veja Incompatibilidade de versão entre Mariadb e Repositórios Debian Ubuntu

% bl0ck_qu0te%
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.
% bl0ck_qu0te%
apt-cache show mysql-common | grep Version
apt-cache show libmysqlclient18 | grep Version

Esta é a situação na redação deste texto, já que os números das versões são mostrados como:

Version: 5.5.34-0ubuntu0.13.10.1
Version: 5.5.34+maria-1~saucy

A página MariaDB fornece duas soluções.

Primeira solução: especificando a versão do pacote

% bl0ck_qu0te%
apt-get install mariadb-server-5.5 mariadb-client-5.5 \
libmysqlclient18=<version-number> \
mysql-common=<version-number>

que é

apt-get install mariadb-server-5.5 mariadb-client-5.5 \
 libmysqlclient18=5.5.34+maria-1~saucy \
 mysql-common=5.5.34+maria-1~saucy

NOTA: atualize para 5.5.34 para refletir a versão atual a partir de 2014.01.28 [RealPariah] Após a instalação, você precisa manter os pacotes até que os números da versão voltem em sincronia.

% bl0ck_qu0te%
echo libmysqlclient18 hold | dpkg --set-selections
echo mysql-common hold | dpkg --set-selections
% bl0ck_qu0te%
echo libmysqlclient18 install | dpkg --set-selections
echo mysql-common install | dpkg --set-selections
% bl0ck_qu0te%

Como eu sei quando os números da versão correspondem novamente?

Você pode acompanhar o número da versão do MariaDB inscrevendo-se em um alerta de e-mail sobre novos lançamentos em MariaDB.org . Segundo o site, é um low-traffic announce-only list .

Além disso, quando as versões do pacote estão novamente em sincronia, você deve parar de ver uma mensagem no apt em que apenas os dois pacotes mantidos serão mantidos, mas que todos os pacotes do mariadb serão mantidos:

The following packages have been kept back:
libmariadbclient18 libmysqlclient18 linux-generic linux-headers-generic
linux-image-generic mariadb-client-5.5 mariadb-client-core-5.5
mariadb-server mariadb-server-5.5 mariadb-server-core-5.5 mysql-common

Isso indica que os números dos pacotes estão em sincronia, o que também pode ser verificado em ferramentas sinápticas ou similares.

Segunda solução: Fixação do repositório MariaDB

% bl0ck_qu0te%
Package: *
Pin: origin <mirror-domain>
Pin-Priority: 1000

Substitua <mirror-domain> pelo nome do domínio do espelho MariaDB que você usa. Por exemplo, ftp.osuosl.org . Com o arquivo pin no lugar, os pacotes do seu repositório MariaDB terão prioridade sobre os pacotes dos repositórios do sistema.

Você pode encontrar o nome do espelho que está usando em Configurações do sistema > > Software & amp; Atualizações , ou se você estiver usando outro sabor do Ubuntu, Synaptic > > Configurações > > Repositórios ou cat /etc/apt/sources.list .

O Pin-Priority neste caso precisa ser maior ou igual a 1000, que causes a version to be installed even if this constitutes a downgrade of the package

(Veja man 5 apt_preferences para mais informações sobre opções em outros casos.)

Nomeando o arquivo de preferências de pinagem

Note that the file in the /etc/apt/preferences.d directory are parsed in alphanumeric ascending order and need to obey the following naming convention:

The files have either no or "pref" as filename extension and only contain alphanumeric, hyphen (-), undescore (_), and period (.) characters. Otherwise APT will print a notice that it has ignored a file...

(Fonte: man 5 apt_preferences )

Assim, o nome em si não importa, mas um bom nome seria algo como 50_mariadb . Isso identifica o pacote envolvido e permite que outros arquivos de preferências de fixação sejam colocados facilmente antes e depois desse arquivo na ordem de processamento.

    
por chaskes 27.10.2013 / 03:16
2

Eu tive um problema semelhante no Ubuntu 14.10 atualizando do MySQL para o Maria DB. Ou seja, eu ficaria preso com

 libmysqlclient18:amd64 10.0.16+maria-1~utopic (Multi-Arch: no) is not co-installable with libmysqlclient18 which has multiple installed instances

Depois de seguir estas sugestões sem sucesso, o seguinte me ajudou bastante: Como Substitua o MySQL pelo MariaDB no Ubuntu Server pela JournalXtra.

Editando / var / lib / dpkg / status e removendo as duas instâncias de libmysqlclient18 assim:

Package: libmysqlclient18
Status: deinstall ok config-files
Priority: optional
Section: libs
Installed-Size: 3392
Maintainer: Ubuntu Developers <[email protected]>
Architecture: i386
Multi-Arch: same
Source: mysql-5.5
Version: 5.5.40-0ubuntu1
Config-Version: 5.5.40-0ubuntu1
Depends: mysql-common (>= 5.5.40-0ubuntu1), libc6 (>= 2.4), libgcc1 (>= 1:4.1.1), zlib1g (>= 1:1.1.4)
Pre-Depends: multiarch-support
Description: MySQL database client library

O MySQL é um banco de dados SQL multi-usuário, multi-thread rápido, estável e verdadeiro  servidor. SQL (Structured Query Language) é a consulta de banco de dados mais popular  língua no mundo. Os principais objetivos do MySQL são velocidade, robustez e  fácil de usar.  .     Este pacote inclui a biblioteca do cliente.     Homepage: link     Mantenedor Original: Mantenedores Debian MySQL

Me permitiu instalar o MariaDB sem problemas.

sudo apt-get install mariadb-server

Observação : Eu cheguei aqui depois de várias tentativas de remover o libmariadbclient18 e o libmysqlclient18 antes que essa solução funcionasse. Eu não consegui passar os problemas do apt-get até que esses dois fossem removidos, já que eles foram reportados como pacotes quebrados antes que eu pudesse tentar qualquer outro reparo.

    
por m1st0 09.02.2015 / 08:35