XAMPP の MySQL を利用して Perl の DBD::mysql をインストールできるか
結論としては、インストールできないといわざるを得ないと考える。理由としては、DBD::mysql をインストールするのに必要なファイルが、XAMPP の MySQL では不足しているからだ。
% cpanm DBD::mysql
でインストールをすると、mysql_config のパスがわからないというエラーが返ってくるので、XAMPP の mysql_config を指定する。
% cd ~/.cpanm/latest-build/DBD-mysql-4.020 % perl ./Makefile.PL --mysql_config=/Applications/XAMPP/xamppfiles/bin/mysql_config % make && make test
を実行すると、
cp lib/DBD/mysql.pm blib/lib/DBD/mysql.pm cp lib/DBD/mysql/GetInfo.pm blib/lib/DBD/mysql/GetInfo.pm cp lib/DBD/mysql/INSTALL.pod blib/lib/DBD/mysql/INSTALL.pod cp lib/Bundle/DBD/mysql.pm blib/lib/Bundle/DBD/mysql.pm cc -c -I/Users/littlebuddha/perl5/perlbrew/perls/perl-5.14.2/lib/site_perl/5.14.2/darwin-2level/auto/DBI -I/Applications/XAMPP/xamppfiles/include/mysql -I/Applications/XAMPP/xamppfiles/include -L/Applications/XAMPP/xamppfiles/lib -mmacosx-version-min=10.4 -arch i386 -arch ppc -D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ -DIGNORE_SIGHUP_SIGQUIT -DDONT_DECLARE_CXA_PURE_VIRTUAL -DDBD_MYSQL_INSERT_ID_IS_GOOD -g -fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -O3 -DVERSION=\"4.020\" -DXS_VERSION=\"4.020\" "-I/Users/littlebuddha/perl5/perlbrew/perls/perl-5.14.2/lib/5.14.2/darwin-2level/CORE" dbdimp.c (中略) llvm-gcc-4.2: error trying to exec '/usr/bin/../llvm-gcc-4.2/bin/powerpc-apple-darwin11-llvm-gcc-4.2': execvp: No such file or directory lipo: can't open input file: /var/folders/48/nk0cd4md1zd5gqfffjl9m6l80000gn/T//cc2bjwAe.out (No such file or directory) make: *** [dbdimp.o] Error 255
というエラーが返ってくる。
いろいろと調べてみて、
にあるような
/*using_322=is_prefix(mysql_get_server_info(imp_dbh->pmysql),"3.22");*/ using_322 = ((strncmp(mysql_get_server_info(imp_dbh->pmysql),"3.22",4) == 0) ? 1 : 0 );
問題もあるようだが、今回のエラーでは関係ない。
ふと思い、
% /Applications/XAMPP/xamppfiles/bin/mysql_config Usage: ./mysql_config [OPTIONS] Options: --cflags [-I/Applications/XAMPP/xamppfiles/include/mysql -I/Applications/XAMPP/xamppfiles/include -L/Applications/XAMPP/xamppfiles/lib -mmacosx-version-min=10.4 -arch i386 -arch ppc -D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ -DIGNORE_SIGHUP_SIGQUIT -DDONT_DECLARE_CXA_PURE_VIRTUAL] --include [-I/Applications/XAMPP/xamppfiles/include/mysql] --libs [-L/Applications/XAMPP/xamppfiles/lib -I/Applications/XAMPP/xamppfiles/include -mmacosx-version-min=10.4 -L/Applications/XAMPP/xamppfiles/lib/mysql -lmysqlclient -lz -lm] --libs_r [-L/Applications/XAMPP/xamppfiles/lib -I/Applications/XAMPP/xamppfiles/include -mmacosx-version-min=10.4 -L/Applications/XAMPP/xamppfiles/lib/mysql -lmysqlclient_r -lz -lm] --plugindir [/Applications/XAMPP/xamppfiles/lib/mysql/plugin] --socket [/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock] --port [0] --version [5.1.44] --libmysqld-libs [-L/Applications/XAMPP/xamppfiles/lib -I/Applications/XAMPP/xamppfiles/include -mmacosx-version-min=10.4 -L/Applications/XAMPP/xamppfiles/lib/mysql -lmysqld -ldl -lz -lm]
という設定されている値にあるべきファイルが存在しなかったり、XAMPP が i386 向けにビルドされているのに、いま使っている Perl は
% perl -V Summary of my perl5 (revision 5 version 14 subversion 2) configuration: Platform: osname=darwin, osvers=11.2.0, archname=darwin-2level uname='darwin macbook-air 11.2.0 darwin kernel version 11.2.0: tue aug 9 20:54:00 pdt 2011; root:xnu-1699.24.8~1release_x86_64 x86_64 '
と x86 版としてビルドされているために、エラーが発生していると思われる。32 bit か 64 bit のどちらかに揃えてビルドしないといけないことを考えると、64 bit 版が用意されていないXAMPP を使う選択肢がなくなる。