noob

底辺オペレーターのメモ

CentOS 6.3にMySQL 5.6インストールでmysql-libs-5.1.61-4.el6.x86_64と競合する問題

CentOS 6.3にMySQL 5.6のLinux GenericなRPMをインストールしようとすると,

# rpm -ivh MySQL-server-5.6.12-1.linux_glibc2.5.x86_64.rpm
準備中...                ########################################### [100%]
        ファイル /usr/share/mysql/charsets/README (パッケージ MySQL-server-5.6.12-1.linux_glibc2.5.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
        ファイル /usr/share/mysql/czech/errmsg.sys (パッケージ MySQL-server-5.6.12-1.linux_glibc2.5.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
        ※※※ 中略 ※※※
        ファイル /usr/share/mysql/charsets/macroman.xml (パッケージ MySQL-server-5.6.12-1.linux_glibc2.5.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。
        ファイル /usr/share/mysql/charsets/swe7.xml (パッケージ MySQL-server-5.6.12-1.linux_glibc2.5.x86_64 から) は、パッケージ mysql-libs-5.1.61-4.el6.x86_64 からのファイルと競合しています。

のような感じで元から入っているMySQL 5.1の共有ライブラリと競合してしまう.

この共有ライブラリを一旦消して入れなおそうにも

# rpm -e mysql-libs-5.1.61-4.el6.x86_64                                     
エラー: 依存性の欠如:
        libmysqlclient.so.16()(64bit) は (インストール済み)postfix-2:2.6.6-2.2.el6_1.x86_64 に必要とされています
        libmysqlclient.so.16(libmysqlclient_16)(64bit) は (インストール済み)postfix-2:2.6.6-2.2.el6_1.x86_64 に必要とされています
        mysql-libs は (インストール済み)postfix-2:2.6.6-2.2.el6_1.x86_64 に必要とされています
# rpm -e postfix-2.6.6-2.2.el6_1.x86_64
エラー: 依存性の欠如:
        /usr/sbin/sendmail は (インストール済み)cronie-1.4.4-7.el6.x86_64 に必要とされています
        /usr/sbin/sendmail は (インストール済み)redhat-lsb-4.0-3.el6.centos.x86_64 に必要とされています

依存性にはばまれて中々めんどくさい.

この問題を以下のようにして解決できたのでメモ.

MySQL 5.6の互換共有ライブラリをインストール

# rpm -ivh MySQL-shared-compat-5.6.12-1.linux_glibc2.5.x86_64.rpm 
準備中...                ########################################### [100%]
   1:MySQL-shared-compat    ########################################### [100%]

「互換」がポイント. rpm -qiしてみると

This package includes the shared client libraries for previous MySQL versions.
Install this package, if you have applications that are dynamically linked
against older versions of the MySQL client library and you want to upgrade
to MySQL 5.6.12 without breaking the library dependencies.

と書かれていて,まさにって感じ.

MySQL 5.1の共有ライブラリを削除

# rpm -e mysql-libs-5.1.61-4.el6.x86_64
#

MySQLクライアント向けの共有ライブラリをMySQL 5.6の互換共有ライブラリに置き換えたことで,元から入っていたMySQL 5.1の共有ライブラリに対する依存性が解消されている.

MySQL 5.6 Serverのインストール

競合していたパッケージを削除できたので,あとはインストールするだけ

# rpm -ivh MySQL-server-5.6.12-1.linux_glibc2.5.x86_64.rpm 
準備中...                ########################################### [100%]
   1:MySQL-server           ########################################### [100%]
※※※ 後略 ※※※