先日 Mac に Catalyst 環境を構築したが,MAMP 1.9.6 の MySQL にアクセスしたいので DBD::mysql をインストールする。
まずは普通に CPAN でインストールしようとしてみる。
$ perl -MCPAN -e "install DBI::DBD"
$ perl -MCPAN -e "install DBD::mysql"
Going to read '/Users/*****/.cpan/Metadata'
Database was generated on Sun, 01 May 2011 13:34:55 GMT
Running install for module 'DBD::mysql'
Running make for C/CA/CAPTTOFU/DBD-mysql-4.018.tar.gz
Fetching with LWP:
ftp://mirror.internode.on.net/pub/cpan/authors/id/C/CA/CAPTTOFU/DBD-mysql-4.018.tar.gz
Fetching with LWP:
ftp://mirror.internode.on.net/pub/cpan/authors/id/C/CA/CAPTTOFU/CHECKSUMS
Checksum for /Users/*****/.cpan/sources/authors/id/C/CA/CAPTTOFU/DBD-mysql-4.018.tar.gz ok
CPAN.pm: Going to build C/CA/CAPTTOFU/DBD-mysql-4.018.tar.gz
Can't locate DBI/DBD.pm in @INC (@INC contains: /Users/*****/perl5/perlbrew/perls/perl-5.12.3/lib/site_perl/5.12.3/darwin-2level /Users/*****/perl5/perlbrew/perls/perl-5.12.3/lib/site_perl/5.12.3 /Users/*****/perl5/perlbrew/perls/perl-5.12.3/lib/5.12.3/darwin-2level /Users/*****/perl5/perlbrew/perls/perl-5.12.3/lib/5.12.3 .) at Makefile.PL line 24.
Warning: No success on command[/Users/*****/perl5/perlbrew/perls/current/bin/perl Makefile.PL]
'YAML' not installed, will not store persistent state
CAPTTOFU/DBD-mysql-4.018.tar.gz
/Users/*****/perl5/perlbrew/perls/current/bin/perl Makefile.PL -- NOT OK
Running make test
Make had some problems, won't test
Running make install
Make had some problems, won't install
だめだったので,自力で make しようとしてみる。
$ cd ~/.cpan/sources/authors/id/C/CA/CAPTTOFU/
$ tar xzf DBD-mysql-4.018.tar.gz
$ cd DBD-mysql-4.018
perl Makefile.PL \
--cflags=-I/Applications/MAMP/Library/include/mysql \
--mysql_config=/Applications/MAMP/Library/bin/mysql_config \
--testdb=test --testhost=localhost:8889 -testuser=root -testpassword=root
$ make
$ make test
色々エラーが出た。
MacPorts と cmake のインストール
cmake コマンドを使えるようにするために,MacPorts をインストールする。
MacPorts で cmake コマンドをインストールする。
$ sudo port install cmake
不足しているライブラリのコピー
DBD::mysql のインストールに必要なライブラリが MAMP の MySQL に不足しているようなので,ソースから持ってくる。
MySQL のバージョンを確認する。
$ /Applications/MAMP/Library/bin/mysql --version
/Applications/MAMP/Library/bin/mysql Ver 14.14 Distrib 5.5.9, for osx10.4 (i386) using EditLine wrapper
ソースを落としてくる。
$ sudo mkdir -p /usr/local/src
$ sudo chown <Mac のユーザ名> /usr/local/src
$ cd /usr/local/src
$ curl -O http://downloads.mysql.com/archives/mysql-5.5/mysql-5.5.9.tar.gz
$ tar xzf mysql-5.5.9.tar.gz
$ cd mysql-5.5.9
必要なライブラリを MAMP にコピーする。
$ cmake . -DMYSQL_UNIX_ADDR=/Applications/MAMP/tmp/mysql/mysql.sock -DCMAKE_INSTALL_PREFIX=/Applications/MAMP/Library
$ make -j 3
$ cp libmysql/*.dylib /Applications/MAMP/Library/lib/
$ mkdir -p /Applications/MAMP/Library/include/mysql/
$ cp -R include/* /Applications/MAMP/Library/include/mysql
再チャレンジ
再度インストールする。
$ cd ~/.cpan/sources/authors/id/C/CA/CAPTTOFU/
$ tar xzf DBD-mysql-4.018.tar.gz
$ cd DBD-mysql-4.018/
$ perl Makefile.PL \
--libs="-L/Applications/MAMP/Library/lib -lmysqlclient -lz -lm" \
--cflags=-I/Applications/MAMP/Library/include/mysql \
--mysql_config=/Applications/MAMP/Library/bin/mysql_config \
--testdb=test --testhost=localhost:8889 -testuser=root -testpassword=root
$ make
$ make test
$ sudo make install
これでやっとこさ使えるようになった。
ただし,ダウンロードした MySQL のソース (/usr/local/src/mysql-5.5.9/*) を削除すると,なぜか DBD::mysql が動作しなくなってしまうので,この辺は要調査だ。
コメント