Mac OS X/DBD::mysqlを入れる
(あ、これも先週のですー。公開ボタン押し忘れ。)
いやー、参りました!perlモジュールのDBD::mysqlをインストールしたいのにできないー、という泥沼にはまってました。しかし〜、下記URLを参考にしたら入りましたー(入ったのか?)。以下に、私のしたことも書いておきますー。
参考URLはここ↓
MySQL :: MySQL 5.6 リファレンスマニュアル :: 2.13.1 Unix に Perl をインストールする
まず、cpanコマンドにいきます。
shell> sudo perl -MCPAN -e shell
もしくは、
shell> sudo cpan
次に、依存モジュールのDBIをインストールし、次に目的のブツであるDBD::mysqlをインストール。
※Data::Dumperも依存モジュールらしいので、入ってるかどうか確認してから進んで下さい。
cpan> install DBI cpan> install DBD::mysql
しかし、ほぼ確実に以下のようなエラーが出ると思います。
[test_dynamic] Error 255 CAPTTOFU/DBD-mysql-4.012.tar.gz /usr/bin/make test -- NOT OK //hint// to see the cpan-testers results for installing this module, try: reports CAPTTOFU/DBD-mysql-4.012.tar.gz Running make install make test had returned bad status, won't install without force Failed during this command: CAPTTOFU/DBD-mysql-4.012.tar.gz : make_test NO
そんなときは、forceを付け加えてDBD::mysqlをインストール。
cpan> force install DBD::mysql
このforce、「エラーを無視してねー」っていう命令らしい。参考URLによると、DBI::mysqlのインストール中には様々なテストが行われているらしく、このテストに失敗するとエラーになってインストールできなくなっちゃうそう。そこで、forceの出番らしい。
でもね、これでインストールした私は、「perldoc DBD::mysql」とコマンドを打ったときにこんなエラーがでる。
<standard input>:448: warning [p 5, 3.7i]: can't break line <standard input>:472: warning [p 5, 8.0i]: can't break line <standard input>:485: warning [p 5, 10.3i]: can't break line
そして、DBD::mysqlを使用したcgiをperlコマンドで回すと、こんなになる。
dyld: lazy symbol binding failed: Symbol not found: _mysql_init Referenced from: /Library/Perl/5.8.8/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle Expected in: dynamic lookup dyld: Symbol not found: _mysql_init Referenced from: /Library/Perl/5.8.8/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle Expected in: dynamic lookup Trace/BPT trap
なんだこれ。
こちらも参考になりました。
http://aeolus.jp/higuma/2008/10/d-16.html