%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%20MariaDB%20rpm%20%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%20%2B%20mysql-libs%20%E3%81%AE%E7%AB%B6%E5%90%88%E3%82%92%E5%87%A6%E7%90%86%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95.png)
CentOS 6.4 で rpm コマンドを使用して MariaDB のインストールをスクリプト化する必要があります。オフライン インストールになるため、リポジトリにアクセスできず、yum は使用できません。
インストールされる唯一の MySQL パッケージは mysql-libs です。これは CentOS 内の他のさまざまなパッケージがこれに依存しているためです。yum を使用して MariaDB のテスト インストールを実行したところ、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!
私の質問は、yum ではなく rpm コマンドのみを使用して MariaDB パッケージをインストールする同等の方法は何ですか?
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 オプションを使用して MariaDB rpm をインストールし、mysql-lib をアンインストールしました。奇妙なメッセージは表示されませんでしたが、これが競合を処理してインストールを実行する最もクリーンな方法であるかどうかはわかりません。
したがって、次の rpm コマンドを使用して MariaDB をインストールすることは、yum を使用してパッケージをインストールし、mysql-libs の競合/削除を処理することと同じであることを誰かが確認できますか。
rpm -ivh --force MariaDB*.rpm
rpm -e mysql-libs
ご意見をお待ちしております!
答え1
必要ありません。yum
この状況を適切に処理するために使用します。RPMパッケージを直接使用してオフラインで完全に動作しますが、全て必要な依存関係が利用可能であるか、すでにインストールされています。
適切な MariaDB RPM を USB スティックまたは DVD-ROM にダウンロードします。
yumdownloader MariaDB-client MariaDB-common MariaDB-compat MariaDB-devel MariaDB-server MariaDB-shared
USB スティックまたは DVD-ROM をターゲット マシンに持って行き、コピーします。
インストール:
yum --disablerepo=* -y install MariaDB-*.rpm
答え2
「rpm -ivh ...」の代わりに「rpm -Uvh ...」を実行する必要があります。
おそらくカーネルを除いて、-Uvhはいつも利用される。
--install,-i を使用する場合、Obsoletes: タグは実行されません。
答え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 など)