Isso foi como eu suspeitei de um bug de empacotamento, já que fixo, já que o mesmo problema não surge com versão 5.5.38 . A solução, portanto, não é usar a versão quebrada do pacote.
Esta manhã, notei que havia uma atualização disponível para o MariaDB, de 5.5.35 para 5.5.36. Então eu decidi atualizar um dos três nós em nosso cluster MariaDB. No entanto, a atualização falhou:
root@${hostname}:~# apt-get install -y mariadb-galera-server
Reading package lists...
Building dependency tree...
Reading state information...
The following extra packages will be installed:
mariadb-galera-server-5.5 mariadb-server-core-5.5
Suggested packages:
tinyca mariadb-test
Recommended packages:
libhtml-template-perl
The following NEW packages will be installed:
mariadb-server-core-5.5
The following packages will be upgraded:
mariadb-galera-server mariadb-galera-server-5.5
2 upgraded, 1 newly installed, 0 to remove and 3 not upgraded.
Need to get 29.4 MB of archives.
After this operation, 16.0 MB of additional disk space will be used.
Get:1 http://${ubuntu_mirror_here}/pub/MariaDB/repo/5.5/ubuntu/ precise/main mariadb-galera-server all 5.5.36+maria-1~precise [2994 B]
Get:2 http://${ubuntu_mirror_here}/pub/MariaDB/repo/5.5/ubuntu/ precise/main mariadb-galera-server-5.5 amd64 5.5.36+maria-1~precise [24.0 MB]
Get:3 http://${ubuntu_mirror_here}/pub/MariaDB/repo/5.5/ubuntu/ precise/main mariadb-server-core-5.5 amd64 5.5.36+maria-1~precise [5366 kB]
Fetched 29.4 MB in 3s (8357 kB/s)
(Reading database ... 72891 files and directories currently installed.)
Preparing to replace mariadb-galera-server 5.5.35+maria-1~precise (using .../mariadb-galera-server_5.5.36+maria-1~precise_all.deb) ...
Unpacking replacement mariadb-galera-server ...
Preparing to replace mariadb-galera-server-5.5 5.5.35+maria-1~precise (using .../mariadb-galera-server-5.5_5.5.36+maria-1~precise_amd64.deb) ...
Unpacking replacement mariadb-galera-server-5.5 ...
Selecting previously unselected package mariadb-server-core-5.5.
Unpacking mariadb-server-core-5.5 (from .../mariadb-server-core-5.5_5.5.36+maria-1~precise_amd64.deb) ...
Processing triggers for ureadahead ...
Processing triggers for man-db ...
* Stopping MariaDB database server mysqld
...done.
* Stopping MariaDB database server mysqld
...done.
dpkg: error processing /var/cache/apt/archives/mariadb-server-core-5.5_5.5.36+maria-1~precise_amd64.deb (--unpack):
trying to overwrite '/usr/sbin/mysqld', which is also in package mariadb-galera-server-5.5 5.5.36+maria-1~precise
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
/var/cache/apt/archives/mariadb-server-core-5.5_5.5.36+maria-1~precise_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
A remoção e a reinstalação dos pacotes geraram a mesma falha.
Instalar o mariadb-server-core-5.5 e o mariadb-galera-server-5.5 manualmente, um por vez usando o dpkg -i foo.deb, produziu a mesma falha, independentemente da ordem em que tentei instalá-los.
Os pacotes parecem conter duas versões diferentes do binário do daemon do MySQL:
root@${hostname}:~# dpkg -c mariadb-server-core-5.5_5.5.36+maria-1~precise_amd64.deb|fgrep /usr/sbin/mysqld
-rwxr-xr-x root/root 14461408 2014-02-24 14:06 ./usr/sbin/mysqld
root@${hostname}:~# dpkg -c mariadb-galera-server-5.5_5.5.36+maria-1~precise_amd64.deb|fgrep /usr/sbin/mysqld
-rwxr-xr-x root/root 14680016 2014-03-10 05:39 ./usr/sbin/mysqld
root@${hostname}:~#
Isso é (como suspeito) um erro de empacotamento?
Quais são minhas opções para contornar esse problema? Devo apenas reinstalar a versão anterior, 5.5.35?
Suponho que, eventualmente, novos pacotes MariaDB serão lançados sem esse problema. Qual é a melhor maneira de testar se os pacotes disponíveis ainda têm o problema?
Tudo o que posso pensar é baixar o .debs toda vez e repetir o experimento dpkg -c
acima.
Atualização: A instalação como sugerido no link falha da mesma maneira:
apt-get install mariadb-galera-server galera
Reading package lists... Done
Building dependency tree
Reading state information... Done
galera is already the newest version.
The following extra packages will be installed:
mariadb-galera-server-5.5 mariadb-server-core-5.5
Suggested packages:
tinyca mariadb-test
Recommended packages:
libhtml-template-perl
The following NEW packages will be installed:
mariadb-galera-server mariadb-galera-server-5.5 mariadb-server-core-5.5
0 upgraded, 3 newly installed, 0 to remove and 3 not upgraded.
Need to get 29.4 MB of archives.
After this operation, 97.6 MB of additional disk space will be used.
Do you want to continue [Y/n]?
Get:1 http://${ubuntu_mirror_here}/pub/MariaDB/repo/5.5/ubuntu/ precise/main mariadb-server-core-5.5 amd64 5.5.36+maria-1~precise [5,366 kB]
Get:2 http://${ubuntu_mirror_here}/pub/MariaDB/repo/5.5/ubuntu/ precise/main mariadb-galera-server-5.5 amd64 5.5.36+maria-1~precise [24.0 MB]
Get:3 http://${ubuntu_mirror_here}/pub/MariaDB/repo/5.5/ubuntu/ precise/main mariadb-galera-server all 5.5.36+maria-1~precise [2,994 B]
Fetched 29.4 MB in 2s (9,949 kB/s)
Preconfiguring packages ...
Selecting previously unselected package mariadb-server-core-5.5.
(Reading database ... 72716 files and directories currently installed.)
Unpacking mariadb-server-core-5.5 (from .../mariadb-server-core-5.5_5.5.36+maria-1~precise_amd64.deb) ...
Unpacking mariadb-galera-server-5.5 (from .../mariadb-galera-server-5.5_5.5.36+maria-1~precise_amd64.deb) ...
dpkg: error processing /var/cache/apt/archives/mariadb-galera-server-5.5_5.5.36+maria-1~precise_amd64.deb (--unpack):
trying to overwrite '/usr/sbin/mysqld', which is also in package mariadb-server-core-5.5 5.5.36+maria-1~precise
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Selecting previously unselected package mariadb-galera-server.
Unpacking mariadb-galera-server (from .../mariadb-galera-server_5.5.36+maria-1~precise_all.deb) ...
Processing triggers for man-db ...
Processing triggers for ureadahead ...
Errors were encountered while processing:
/var/cache/apt/archives/mariadb-galera-server-5.5_5.5.36+maria-1~precise_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Atualização 2: Fazer downgrade para a versão anterior, 5.5.35 + maria-1 ~ precision, já resolveu o problema. Mas esta não é uma solução verdadeira nem uma boa resposta para essa pergunta.
Isso foi como eu suspeitei de um bug de empacotamento, já que fixo, já que o mesmo problema não surge com versão 5.5.38 . A solução, portanto, não é usar a versão quebrada do pacote.
Aparentemente, os pacotes foram mesclados. Aqui está o aviso no site da MariaDB que faz referência precisamente ao que você está falando: link
Aparentemente, um é agora um meta-pacote que inclui o outro.