備忘録のため,内容の正当性については責任を持ちません。

先日 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 が動作しなくなってしまうので,この辺は要調査だ。

コメント

コメントする




CAPTCHA