Cómo instalar MariaDB rpms en CentOS 6.4 usando rpm (no yum cmd) + manejo de conflictos mysql-libs

Cómo instalar MariaDB rpms en CentOS 6.4 usando rpm (no yum cmd) + manejo de conflictos mysql-libs

Necesito programar la instalación de MariaDB usando el comando rpm en CentOS 6.4. No puedo usar yum porque será una instalación sin conexión, por lo que no habrá acceso al repositorio.

El único paquete MySQL instalado es mysql-libs, ya que otros paquetes en CentOS dependen de él. Cuando hice una instalación de prueba de MariaDB con yum, tuvo en cuenta correctamente mysql-libs y lo desinstalé al final, ya que MariaDB podía manejar las dependencias después de instalarlo:

[root@new-host-6 ~]# yum install MariaDB-client MariaDB-common MariaDB-compat MariaDB-devel MariaDB-server MariaDB-shared
Loaded plugins: downloadonly, fastestmirror, refresh-packagekit, security, verify
Loading mirror speeds from cached hostfile
 * base: mirrors.kernel.org
 * extras: mirror.keystealth.org
 * updates: mirror.umd.edu
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package MariaDB-client.x86_64 0:5.5.32-1 will be installed
---> Package MariaDB-common.x86_64 0:5.5.32-1 will be installed
---> Package MariaDB-compat.x86_64 0:5.5.32-1 will be obsoleting
---> Package MariaDB-devel.x86_64 0:5.5.32-1 will be installed
---> Package MariaDB-server.x86_64 0:5.5.32-1 will be installed
---> Package MariaDB-shared.x86_64 0:5.5.32-1 will be obsoleting
---> Package mysql-libs.x86_64 0:5.1.66-2.el6_3 will be obsoleted
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================================================================
 Package                                     Arch                                Version                                 Repository                            Size
====================================================================================================================================================================
Installing:
 MariaDB-client                              x86_64                              5.5.32-1                                mariadb                               10 M
 MariaDB-common                              x86_64                              5.5.32-1                                mariadb                               23 k
 MariaDB-compat                              x86_64                              5.5.32-1                                mariadb                              2.7 M
     replacing  mysql-libs.x86_64 5.1.66-2.el6_3
 MariaDB-devel                               x86_64                              5.5.32-1                                mariadb                              5.6 M
 MariaDB-server                              x86_64                              5.5.32-1                                mariadb                               34 M
 MariaDB-shared                              x86_64                              5.5.32-1                                mariadb                              1.1 M
     replacing  mysql-libs.x86_64 5.1.66-2.el6_3

Transaction Summary
====================================================================================================================================================================
Install       6 Package(s)

Total download size: 53 M
Is this ok [y/N]: y
Downloading Packages:
(1/6): MariaDB-5.5.32-centos6-x86_64-client.rpm                                                                                              |  10 MB     00:06     
(2/6): MariaDB-5.5.32-centos6-x86_64-common.rpm                                                                                              |  23 kB     00:00     
(3/6): MariaDB-5.5.32-centos6-x86_64-compat.rpm                                                                                              | 2.7 MB     00:02     
(4/6): MariaDB-5.5.32-centos6-x86_64-devel.rpm                                                                                               | 5.6 MB     00:06     
(5/6): MariaDB-5.5.32-centos6-x86_64-server.rpm                                                                                              |  34 MB     00:23     
(6/6): MariaDB-5.5.32-centos6-x86_64-shared.rpm                                                                                              | 1.1 MB     00:00     
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                               1.3 MB/s |  53 MB     00:40     
warning: rpmts_HdrFromFdno: Header V4 DSA/SHA1 Signature, key ID 1bb943db: NOKEY
Retrieving key from https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
Importing GPG key 0x1BB943DB:
 Userid: "Daniel Bartholomew (Monty Program signing key) <[email protected]>"
 From  : https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
  Installing : MariaDB-compat-5.5.32-1.x86_64                                                                                                                   1/7 
  Installing : MariaDB-common-5.5.32-1.x86_64                                                                                                                   2/7 
  Installing : MariaDB-server-5.5.32-1.x86_64                                                                                                                   3/7 
chown: cannot access `/var/lib/mysql': No such file or directory

PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !
To do so, start the server, then issue the following commands:

'/usr/bin/mysqladmin' -u root password 'new-password'
'/usr/bin/mysqladmin' -u root -h new-host-6 password 'new-password'

Alternatively you can run:
'/usr/bin/mysql_secure_installation'

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the MariaDB Knowledgebase at http://kb.askmonty.org or the
MySQL manual for more instructions.

Please report any problems with the '/usr/bin/mysqlbug' script!

The latest information about MariaDB is available at http://mariadb.org/.
You can find additional information about the MySQL part at:
http://dev.mysql.com
Support MariaDB development by buying support/new features from
Monty Program Ab. You can contact us about this at [email protected].
Alternatively consider joining our community based development effort:
http://kb.askmonty.org/en/contributing-to-the-mariadb-project/

  Installing : MariaDB-devel-5.5.32-1.x86_64                                                                                                                    4/7 
  Installing : MariaDB-client-5.5.32-1.x86_64                                                                                                                   5/7 
  Installing : MariaDB-shared-5.5.32-1.x86_64                                                                                                                   6/7 
  Erasing    : mysql-libs-5.1.66-2.el6_3.x86_64                                                                                                                 7/7 
  Verifying  : MariaDB-common-5.5.32-1.x86_64                                                                                                                   1/7 
  Verifying  : MariaDB-server-5.5.32-1.x86_64                                                                                                                   2/7 
  Verifying  : MariaDB-devel-5.5.32-1.x86_64                                                                                                                    3/7 
  Verifying  : MariaDB-client-5.5.32-1.x86_64                                                                                                                   4/7 
  Verifying  : MariaDB-compat-5.5.32-1.x86_64                                                                                                                   5/7 
  Verifying  : MariaDB-shared-5.5.32-1.x86_64                                                                                                                   6/7 
  Verifying  : mysql-libs-5.1.66-2.el6_3.x86_64                                                                                                                 7/7 

Installed:
  MariaDB-client.x86_64 0:5.5.32-1         MariaDB-common.x86_64 0:5.5.32-1         MariaDB-compat.x86_64 0:5.5.32-1         MariaDB-devel.x86_64 0:5.5.32-1        
  MariaDB-server.x86_64 0:5.5.32-1         MariaDB-shared.x86_64 0:5.5.32-1        

Replaced:
  mysql-libs.x86_64 0:5.1.66-2.el6_3                                                                                                                                

Complete!

Mi pregunta es, ¿cuál es la forma equivalente de instalar los paquetes MariaDB usando solo el comando rpm en lugar de yum?

Si hago rpm -ivh MariaDB*.rpm, recibiré un montón de mensajes como el siguiente sobre conflictos con mysql-libs:

file /etc/my.cnf from install of MariaDB-common-5.5.32-1.x86_64 conflicts with file from package mysql-libs-5.1.66-2.el6_3.x86_64
file /usr/share/mysql/charsets/Index.xml from install of MariaDB-common-5.5.32-1.x86_64 conflicts with file from package mysql-libs-5.1.66-2.el6_3.x86_64

Luego utilicé la opción --force para instalar los rpms de MariaDB y desinstalé mysql-lib. No recibí ningún mensaje extraño, pero no estoy seguro de que sea el método más limpio para manejar los conflictos y realizar la instalación.

Entonces, ¿alguien puede confirmar que instalar MariaDB con los siguientes comandos rpm sería lo mismo que usar yum para instalar los paquetes y manejar los conflictos/eliminación de mysql-libs:

rpm -ivh --force MariaDB*.rpm

rpm -e mysql-libs

¡Gracias por cualquier aporte!

Respuesta1

No lo haces. Lo utilizas yumpara que maneje esta situación limpiamente. Funciona perfectamente sin conexión utilizando paquetes RPM directamente, siempre quetodolas dependencias necesarias están disponibles o ya instaladas.

  1. Descargue los RPM de MariaDB adecuados a su memoria USB o DVD-ROM.

    yumdownloader MariaDB-client MariaDB-common MariaDB-compat MariaDB-devel MariaDB-server MariaDB-shared
    
  2. Lleve su memoria USB o DVD-ROM a la máquina de destino y cópielos.

  3. Instálalos:

    yum --disablerepo=* -y install MariaDB-*.rpm
    

Respuesta2

En lugar de "rpm -ivh..." deberías haber hecho "rpm -Uvh...".

Excepto quizás por el kernel, -Uvh deberíaSIEMPREser usado.

Las etiquetas Obsoletos: no se ejecutan cuando se usa --install,-i.

Respuesta3

Utilizo el siguiente repositorio (como /etc/yum.repos.d/mariadb.repo):

# MariaDB 5.5 CentOS repository list - created 2013-09-14 02:06 UTC
# http://mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/5.5/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Para las aplicaciones es importante tener compatibilidad binaria, lo cual se logra instalando el paquete MariaDB-compat disponible en el mismo repositorio (por alguna razón, no lo veo en su lista):

[root@backup ~]# rpm -qlp mysql-libs-5.1.69-1.el6_4.x86_64.rpm |grep so
/etc/ld.so.conf.d/mysql-x86_64.conf
/usr/lib64/mysql/libmysqlclient.so.16
/usr/lib64/mysql/libmysqlclient.so.16.0.0
/usr/lib64/mysql/libmysqlclient_r.so.16
/usr/lib64/mysql/libmysqlclient_r.so.16.0.0
[root@backup ~]# rpm -qlp MariaDB-5.5.32-centos6-x86_64-compat.rpm
/usr/lib64/libmysqlclient.so.15
/usr/lib64/libmysqlclient.so.15.0.0
/usr/lib64/libmysqlclient.so.16
/usr/lib64/libmysqlclient.so.16.0.0
/usr/lib64/libmysqlclient_r.so.15
/usr/lib64/libmysqlclient_r.so.15.0.0
/usr/lib64/libmysqlclient_r.so.16
/usr/lib64/libmysqlclient_r.so.16.0.0

Entonces, puede desinstalar mysql-libs y luego instalar el paquete MariaDB-server, que instalará todos los requisitos y también el paquete MariaDB-compat, que deja obsoleto mysql-libs, para que las dependencias no se rompan:

[root@backup ~]# rpm -qp --obsoletes MariaDB-5.5.32-centos6-x86_64-compat.rpm 
mysql-libs < 5.3.5
[root@backup ~]# 

Entonces, no habrá problemas después de eso, rpm no informará ninguna incompatibilidad (proporciona mysql-libs = 5.3.5):

[root@backup ~]# rpm -qlp --provides MariaDB-5.5.32-centos6-x86_64-compat.rpm 
libmysqlclient.so.15()(64bit)  
libmysqlclient.so.15(libmysqlclient_15)(64bit)  
libmysqlclient.so.16()(64bit)  
libmysqlclient.so.16(libmysqlclient_16)(64bit)  
libmysqlclient_r.so.15()(64bit)  
libmysqlclient_r.so.15(libmysqlclient_15)(64bit)  
libmysqlclient_r.so.16()(64bit)  
libmysqlclient_r.so.16(libmysqlclient_16)(64bit)  
mysql-libs = 5.3.5
MariaDB-compat = 5.5.32-1
MariaDB-compat(x86-64) = 5.5.32-1
/usr/lib64/libmysqlclient.so.15
/usr/lib64/libmysqlclient.so.15.0.0
/usr/lib64/libmysqlclient.so.16
/usr/lib64/libmysqlclient.so.16.0.0
/usr/lib64/libmysqlclient_r.so.15
/usr/lib64/libmysqlclient_r.so.15.0.0
/usr/lib64/libmysqlclient_r.so.16
/usr/lib64/libmysqlclient_r.so.16.0.0
[root@backup ~]#

Respuesta: sí, puede simplemente desinstalar mysql-libs e instalar estos paquetes, pero descargándolos de este repositorio.

(yumdownloader MariaDB-client.x86_64 MariaDB-common.x86_64 MariaDB-compat.x86_64, etc.)

información relacionada