So installieren Sie MariaDB-RPMs in CentOS 6.4 mit RPM (nicht Yum-Cmd) + Behandeln von MySQL-Bibliothekskonflikten

So installieren Sie MariaDB-RPMs in CentOS 6.4 mit RPM (nicht Yum-Cmd) + Behandeln von MySQL-Bibliothekskonflikten

Ich muss die Installation von MariaDB mit dem RPM-Befehl in CentOS 6.4 skripten. Ich kann Yum nicht verwenden, da es eine Offline-Installation sein wird und ich daher keinen Zugriff auf das Repository habe.

Das einzige installierte MySQL-Paket ist mysql-libs, da verschiedene andere Pakete in CentOS davon abhängen. Als ich eine Testinstallation von MariaDB mit yum durchführte, wurden mysql-libs korrekt berücksichtigt und am Ende deinstalliert, da MariaDB die Abhängigkeiten nach der Installation verarbeiten konnte:

[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!

Meine Frage lautet: Was ist die entsprechende Methode zum Installieren der MariaDB-Pakete nur mit dem RPM-Befehl statt mit Yum?

Wenn ich „rpm -ivh MariaDB*.rpm“ ausführe, erhalte ich jede Menge Nachrichten wie die folgende über Konflikte mit MySQL-Bibliotheken:

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

Ich habe dann die Option --force verwendet, um die MariaDB-RPMs zu installieren und mysql-lib zu deinstallieren. Ich habe keine seltsamen Meldungen erhalten, bin mir aber nicht sicher, ob das die sauberste Methode ist, um die Konflikte zu behandeln und die Installation durchzuführen.

Kann also jemand bestätigen, dass die Installation von MariaDB mit den folgenden RPM-Befehlen dasselbe ist, wie die Verwendung von Yum zum Installieren der Pakete und Behandeln von MySQL-Bibliothekskonflikten/-Entfernungen:

rpm -ivh --force MariaDB*.rpm

rpm -e mysql-libs

Danke für alle Beiträge!

Antwort1

Das müssen Sie nicht. Sie verwenden, yumdamit diese Situation sauber gehandhabt wird. Es funktioniert offline perfekt, indem es RPM-Pakete direkt verwendet, vorausgesetzt, dassalledie notwendigen Abhängigkeiten sind vorhanden oder bereits installiert.

  1. Laden Sie die entsprechenden MariaDB-RPMs auf Ihren USB-Stick oder Ihre DVD-ROM herunter.

    yumdownloader MariaDB-client MariaDB-common MariaDB-compat MariaDB-devel MariaDB-server MariaDB-shared
    
  2. Nehmen Sie Ihren USB-Stick oder Ihre DVD-ROM mit auf den Zielcomputer und kopieren Sie sie hinein.

  3. Installieren Sie sie:

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

Antwort2

Statt "rpm -ivh..." hättest du "rpm -Uvh..." eingeben müssen.

Außer vielleicht Kernel, -Uvh sollteSTETSverwendet werden.

Die Obsoletes:-Tags werden bei der Verwendung von --install,-i nicht ausgeführt.

Antwort3

Ich verwende folgendes Repo (als /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

Für Anwendungen ist binäre Kompatibilität wichtig. Dies wird durch die Installation des im selben Repo verfügbaren MariaDB-kompatiblen Pakets erreicht (aus irgendeinem Grund sehe ich es nicht in Ihrer Liste):

[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

Sie können also die MySQL-Bibliotheken deinstallieren und dann das MariaDB-Serverpaket installieren, das alle Anforderungen und auch das MariaDB-Kompatibilitätspaket installiert, das die MySQL-Bibliotheken obsolet macht, sodass Abhängigkeiten nicht unterbrochen werden:

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

Danach also keine Probleme, RPM meldet keine Inkompatibilitäten (stellt mysql-libs = 5.3.5 bereit):

[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 ~]#

Antwort: Ja, Sie können einfach MySQL-Bibliotheken deinstallieren und diese Pakete installieren, aber laden Sie sie aus diesem Repo herunter.

(yumdownloader MariaDB-client.x86_64 MariaDB-common.x86_64 MariaDB-compat.x86_64 usw.)

verwandte Informationen