Scientific LinuxにMySQL5.5をインストール
今までは普通にCentOSを使ってたんだけど、
RHEL6のクローンはScientific Linuxが良いらしいので
試しに環境を作ってみる。
なんだけど5.5で行きたいので
http://www-jp.mysql.com/downloads/mysql/
からrpmを持ってきてインストール。
ところが
としようとするとずらずら〜っと
準備中... ########################################### [100%]
ファイル /usr/share/mysql/charsets/README (パッケージ MySQL-server-5.5.19-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.52-1.el6_0.1.x86_64 からのファイルと競合しています。
ファイル /usr/share/mysql/charsets/Index.xml (パッケージ MySQL-server-5.5.19-1.linux2.6.x86_64 から) は、パッケージ mysql-libs-5.1.52-1.el6_0.1.x86_64 からのファイルと競合しています。
・
・
と怒られる。
素の状態のOSにはmysqlはいれていない筈なんだけど・・・と思いきや、
がいるので削除しようと・・・
========================================================================================================================
Package Arch Version Repository Size
========================================================================================================================
Removing:
mysql-libs x86_64 5.1.52-1.el6_0.1 @anaconda-ScientificLinux-201107271550.x86_64 4.0 M
Removing for dependencies:
cronie x86_64 1.4.4-7.el6 @anaconda-ScientificLinux-201107271550.x86_64 166 k
cronie-anacron x86_64 1.4.4-7.el6 @anaconda-ScientificLinux-201107271550.x86_64 43 k
crontabs noarch 1.10-32.1.el6 @anaconda-ScientificLinux-201107271550.x86_64 2.4 k
postfix x86_64 2:2.6.6-2.1.el6_0 @anaconda-ScientificLinux-201107271550.x86_64 9.7 M
postfix x86_64 2:2.6.6-2.2.el6_1 installed 9.7 M
sysstat x86_64 9.0.4-18.el6 @anaconda-ScientificLinux-201107271550.x86_64 805 kTransaction Summary
========================================================================================================================
Remove 7 Package(s)Installed size: 24 M
Is this ok [y/N]:
いやいや、そりゃないでしょ
cronとかMTAとか消しちゃうなんて・・・
sysstatが無いのも困る。
で、いろいろ調べてみるんだけどあまりグッとくる解決策がない。
- mysqlは5.1であきらめる
- remi ェ・・・
(なんとなくremi使うのって負けな気がする)
id:sh2 さんの
http://d.hatena.ne.jp/sh2/20110720
はとても参考になったけど、今回は外部リポジトリに頼らず、
CentOSにもubuntuにも行かずにMySQL5.5にこだわって頑張る。
(CentOSではこんな苦労せずに、すんなり入りますよね?)
で、もうちょっと掘ってみる。
# yum deplist postfix | grep mysql
dependency: libmysqlclient.so.16()(64bit)
provider: mysql-libs.x86_64 5.1.52-1.el6_0.1
dependency: libmysqlclient.so.16(libmysqlclient_16)(64bit)
provider: mysql-libs.x86_64 5.1.52-1.el6_0.1
dependency: mysql-libs
provider: mysql-libs.i686 5.1.52-1.el6_0.1
provider: mysql-libs.x86_64 5.1.52-1.el6_0.1
dependency: libmysqlclient.so.16()(64bit)
provider: mysql-libs.x86_64 5.1.52-1.el6_0.1
dependency: libmysqlclient.so.16(libmysqlclient_16)(64bit)
provider: mysql-libs.x86_64 5.1.52-1.el6_0.1
dependency: mysql-libs
provider: mysql-libs.i686 5.1.52-1.el6_0.1
こんな感じでmysql-libsに直接依存してるのはpostfix(え
で、依存関係は
という感じで想像。
mysql-libsの中身はというと、
# rpm -ql mysql-libs
/etc/ld.so.conf.d/mysql-x86_64.conf
/etc/my.cnf
/usr/lib64/mysql
/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
以下、コピーライトと各種言語(i18n)関係
なので、my.cnfはともかく
libmysqlclient.so.16
があれば良し、と踏む。
なので、
- mysql-libsを削除
- 依存してるライブラリもとりあえずサヨナラ
- libmysqllient.soはMySQL-sharedのrpmで入るのでおk
- libmysqllientのバージョン違いはシンボリックリンクで試してみる
- その後、サヨナラしたライブラリを再インストール
という方針。
# yum remove mysql-libs
(mysql-libs,cronie,cronie-anacron,crontabs,postfix,sysstatを削除)
(/etc/postfix/main.cf は退避されるのであとで復帰する)
# rpm -ivh MySQL-server-5.5.19-1.linux2.6.x86_64.rpm
# rpm -ivh MySQL-devel-5.5.19-1.linux2.6.x86_64.rpm
# rpm -ivh MySQL-client-5.5.19-1.linux2.6.x86_64.rpm
# rpm -ivh MySQL-shared-5.5.19-1.linux2.6.x86_64.rpm
# rpm -ivh MySQL-test-5.5.19-1.linux2.6.x86_64.rpm
で、
# yum install cronie
(cronie,cronie-anacron,crontabsがインストールされる)
# yum install sysstat
ここまでやって、
はやっぱりmysql-libs欲しいと言われるので、
ちょっと気持ち悪くて嫌だけど強引に
# yumdownloader postfix
# rpm -ivh --nodeps postfix-2.6.6-2.2.el6_1.x86_64.rpm
libmysqlclientは
# ls -la /usr/lib64/libmysqlclient*
lrwxrwxrwx. 1 root root 20 12月 20 19:32 2011 /usr/lib64/libmysqlclient.so -> libmysqlclient.so.18
lrwxrwxrwx. 1 root root 24 12月 20 19:32 2011 /usr/lib64/libmysqlclient.so.18 -> libmysqlclient.so.18.0.0
rwxr-xr-x. 1 root root 6856547 11月 24 00:14 2011 /usr/lib64/libmysqlclient.so.18.0.0
lrwxrwxrwx. 1 root root 17 12月 20 19:32 2011 /usr/lib64/libmysqlclient_r.so -> libmysqlclient.so
lrwxrwxrwx. 1 root root 17 12月 20 19:32 2011 /usr/lib64/libmysqlclient_r.so.18 -> libmysqlclient.so
lrwxrwxrwx. 1 root root 17 12月 20 19:32 2011 /usr/lib64/libmysqlclient_r.so.18.0.0 -> libmysqlclient.so
な感じで、
- libmysqlclient.so.18 は入っている
- 欲しいのはlibmysqlclient.so.16
とりあえずシンボリックリンクで。
# ln -s /usr/lib64/libmysqlclient.so /usr/lib64/libmysqlclient.so.16
とするとpostfixも動く。
MySQLのダウンロードサイトにある
Connector/C 6.0.2
でもlibmysqlclientは入手できるんで展開して見てみたんだけど
libmysqlclientのバージョンが解らないんだよね・・・
(ひょっとしたらこれも16ではないかと思うんだけど)
# ls -la mysql-connector-c-6.0.2-linux-glibc2.3-x86-64bit/lib/
合計 12756
drwxr-xr-x. 2 root root 4096 12月 20 19:28 2011 .
drwxr-xr-x. 5 root root 4096 12月 20 19:28 2011 ..
lrwxrwxrwx. 1 7158 wheel 14 12月 20 19:28 2011 libmysql.so -> libmysql.so.16
lrwxrwxrwx. 1 7158 wheel 18 12月 20 19:28 2011 libmysql.so.16 -> libmysql.so.16.0.0
-rwxr-xr-x. 1 7158 wheel 4851331 8月 8 01:48 2009 libmysql.so.16.0.0
-rw-r--r--. 1 7158 wheel 8199192 8月 8 01:49 2009 libmysqlclient.a
lrwxrwxrwx. 1 7158 wheel 11 12月 20 19:28 2011 libmysqlclient.so -> libmysql.so
lrwxrwxrwx. 1 7158 wheel 11 12月 20 19:28 2011 libmysqlclient_r.so -> libmysql.so
また他にmysql-libsに依存したライブラリが出てきたらどうしようかなぁ・・・
追記。
やっぱり気持ち悪いので
http://pkgs.org/download/libmysqlclient.so.16(libmysqlclient_16)(64bit)
この辺りからmysqlclientのrpmを落として入れました。
追記その2。(2012/04/24)
MySQLのrpmが更新されて、5.5.23からはこんなことしなくて良くなったようです。
@nakashii_ さんがブログに書かれています。
http://oopsops.hatenablog.com/entry/2012/04/24/214759