MacOSX Lion に DBD::mysql をインストール
いつものように $ cpanm DBD::mysql でインストールしようとするがエラーで止まってしまい。 DBD::mysqlがインストール出来ません。~/.cpanm/build.log を見てみると
Library not loaded: libmysqlclient.18.dylib
と書かれておりライブラリが見つからないと言っている。
~/.cpanm/build.log
PERL_DL_NONLAZY=1 /Users/username/perl5/perlbrew/perls/perl-5.10.1/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/00base.t .................. 1/6 Bailout called. Further testing stopped: Unable to load DBD::mysql # Failed test 'use DBD::mysql;' # at t/00base.t line 21. # Tried to use 'DBD::mysql'. # Error: Can't load '/Users/username/.cpanm/work/1340698521.67318/DBD-mysql-4.021/blib/arch/auto/DBD/mysql/mysql.bundle' for module DBD::mysql: dlopen(/Users/username/.cpanm/work/1340698521.67318/DBD-mysql-4.021/blib/arch/auto/DBD/mysql/mysql.bundle, 2): Library not loaded: libmysqlclient.18.dylib # Referenced from: /Users/username/.cpanm/work/1340698521.67318/DBD-mysql-4.021/blib/arch/auto/DBD/mysql/mysql.bundle # Reason: image not found at /Users/username/perl5/perlbrew/perls/perl-5.10.1/lib/5.10.1/darwin-2level/DynaLoader.pm line 204. # at (eval 7) line 2
エラーの対処(DYLD_LIBRARY_PATH を設定します)
環境変数 DYLD_LIBRARY_PATH に libmysqlclient.18.dylib が存在するpathを指定する事でコンパイラがライブラリを見つけられるようにする。
$ export DYLD_LIBRARY_PATH=/usr/local/mysql/lib
path を設定後改めて make test
$ make test PERL_DL_NONLAZY=1 /Users/username/perl5/perlbrew/perls/perl-5.10.1/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/00base.t .................. ok t/10connect.t ............... ok t/20createdrop.t ............ ok t/25lockunlock.t ............ ok t/29warnings.t .............. ok t/30insertfetch.t ........... ok t/31insertid.t .............. ok t/32insert_error.t .......... ok t/35limit.t ................. ok t/35prepare.t ............... ok t/40bindparam.t ............. ok t/40bindparam2.t ............ ok t/40blobs.t ................. ok t/40catalog.t ............... ok t/40keyinfo.t ............... ok t/40listfields.t ............ ok t/40nulls.t ................. ok t/40nulls_prepare.t ......... ok t/40numrows.t ............... ok t/40server_prepare.t ........ ok t/40server_prepare_error.t .. ok t/40types.t ................. ok t/41bindparam.t ............. ok t/41blobs_prepare.t ......... ok t/42bindparam.t ............. ok t/50chopblanks.t ............ ok t/50commit.t ................ ok t/51bind_type_guessing.t .... ok t/52comment.t ............... ok t/53comment.t ............... ok t/55utf8.t .................. ok t/60leaks.t ................. skipped: Skip $ENV{SLOW_TESTS} is not set t/65types.t ................. ok t/70takeimp.t ............... ok t/71impdata.t ............... ok t/75supported_sql.t ......... ok t/76multi_statement.t ....... 1/25 # Testing multicall against SQL_DBMS_VER: 5.5.21 t/76multi_statement.t ....... ok t/80procs.t ................. ok t/85init_command.t .......... ok t/86_bug_36972.t ............ ok All tests successful. Files=40, Tests=890, 24 wallclock secs ( 0.45 usr 0.22 sys + 4.10 cusr 0.92 csys = 5.69 CPU) Result: PASS
make test が通ったので make install して終了です。
created: