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:

Back to top