Как установить RPM-пакеты MariaDB в CentOS 6.4 с помощью RPM (не yum cmd) + разрешение конфликтов mysql-libs

Как установить RPM-пакеты MariaDB в CentOS 6.4 с помощью RPM (не yum cmd) + разрешение конфликтов mysql-libs

Мне нужно написать скрипт установки MariaDB с помощью команды rpm в CentOS 6.4. Я не могу использовать yum, так как это будет офлайн-установка, и доступа к репозиторию не будет.

Единственный установленный пакет MySQL — это mysql-libs, поскольку от него зависят различные другие пакеты в CentOS. Когда я сделал тестовую установку MariaDB с помощью yum, он правильно учёл mysql-libs и удалил его в конце, поскольку MariaDB могла обрабатывать зависимости после установки:

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

Мой вопрос: какой существует эквивалентный способ установки пакетов MariaDB с использованием только команды rpm, а не yum?

Если я выполню команду rpm -ivh MariaDB*.rpm, я получу массу сообщений о конфликтах с 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

Затем я использовал опцию --force для установки RPM-пакетов MariaDB и удалил mysql-lib. Я не получил никаких странных сообщений, но я не уверен, что это самый чистый метод разрешения конфликтов и выполнения установки.

Может ли кто-нибудь подтвердить, что установка MariaDB с помощью следующих команд rpm будет такой же, как использование yum для установки пакетов и обработки конфликтов/удаления mysql-libs:

об/мин -ivh --force MariaDB*.об/мин

rpm -e mysql-libs

Спасибо за любой вклад!

решение1

Вы не делаете этого. Вы используете yum, чтобы он обрабатывал эту ситуацию чисто. Он прекрасно работает в автономном режиме, используя пакеты RPM напрямую, при условии, чтовсенеобходимые зависимости доступны или уже установлены.

  1. Загрузите соответствующие RPM-пакеты MariaDB на USB-накопитель или DVD-диск.

    yumdownloader MariaDB-client MariaDB-common MariaDB-compat MariaDB-devel MariaDB-server MariaDB-shared
    
  2. Подключите USB-накопитель или DVD-диск к целевому компьютеру и скопируйте их.

  3. Установите их:

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

решение2

Вместо «rpm -ivh ...» нужно было написать «rpm -Uvh ...».

За исключением, возможно, ядра, -Uvh долженВСЕГДАиспользоваться.

Устаревшие теги: не выполняются при использовании --install,-i.

решение3

Я использую следующий репозиторий (как /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

Для приложений важна бинарная совместимость, которая достигается путем установки пакета MariaDB-compat, доступного из того же репозитория (по какой-то причине я не вижу его в вашем списке):

[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

Итак, вы можете удалить mysql-libs, а затем установить пакет MariaDB-server, который установит все необходимые компоненты, а также пакет MariaDB-compat, который делает mysql-libs устаревшими, поэтому зависимости не будут нарушены:

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

Итак, никаких проблем после этого не возникнет, rpm не будет сообщать о каких-либо несовместимостях (предоставляет 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 ~]#

Ответ: да, вы можете просто удалить mysql-libs и установить эти пакеты, но скачанные из этого репозитория.

(yumdownloader MariaDB-client.x86_64 MariaDB-common.x86_64 MariaDB-compat.x86_64 и т.д.)

Связанный контент