PDA

View Full Version : Error installing Perl / DBD-mysql [Can't find 'boot_DBD__mysql']


rient
03-10-2007, 09:58 AM
Hi,

I spend several days trying to get DBD-mysql installed on a xserve dual xeon 2 ghz running osx 10.4.8. Still to no avail...

MySQL installed without errors
mysql Ver 14.7 Distrib 4.1.22, for apple-darwin8.5.1 (i686) using readline 4.3

Unable to install DBI and DBD through cpan. Manual install for DBI - several versions- all seem to run fine.

But trying to install DBD-mysql gives the following errors at make test:
t/00base.............install_driver(mysql) failed: Can't find 'boot_DBD__mysql' symbol in /Library/Perl/DBD-mysql-4.001/blib/arch/auto/DBD/mysql/mysql.bundle


Hope someone has any idea to get this thing going...


Steps taken:
- Changed my.cnf to read
[mysqld]
socket=/var/mysql/mysql.sock

[client]
socket=/var/mysql/mysql.sock

Makefile.PL
# perl Makefile.PL --cflags "-I/usr/include/mysql -fno-omit-frame-pointer -arch ppc64 -arch x86_64 -pipe" --libs "-L/usr/lib/mysql -lmysqlclient -lz -lm"
I will use the following settings for compiling and testing:

cflags (User's choice) = -I/usr/include/mysql -fno-omit-frame-pointer -arch ppc64 -arch x86_64 -pipe
embedded (mysql_config ) =
libs (User's choice) = -L/usr/lib/mysql -lmysqlclient -lz -lm
mysql_config (guessed ) = mysql_config
nocatchstderr (default ) = 0
nofoundrows (default ) = 0
ssl (guessed ) = 0
testdb (default ) = test
testhost (default ) =
testpassword (default ) =
testsocket (default ) =
testuser (default ) =

To change these settings, see 'perl Makefile.PL --help' and
'perldoc INSTALL'.

Checking if your kit is complete...
Looks good
Using DBI 1.52 (for perl 5.008006 on darwin-thread-multi-2level) installed in /Library/Perl/5.8.6/darwin-thread-multi-2level/auto/DBI/
Writing Makefile for DBD::mysql

make
# make
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/Library/Perl/5.8.6/darwin-thread-multi-2level/auto/DBI -I/usr/include/mysql -fno-omit-frame-pointer -arch ppc64 -arch x86_64 -pipe -DDBD_MYSQL_INSERT_ID_IS_GOOD -g -g -pipe -fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -I/usr/local/include -O3 -DVERSION=\"4.001\" -DXS_VERSION=\"4.001\" "-I/System/Library/Perl/5.8.6/darwin-thread-multi-2level/CORE" dbdimp.c
/usr/bin/perl -p -e "s/~DRIVER~/mysql/g" /Library/Perl/5.8.6/darwin-thread-multi-2level/auto/DBI/Driver.xst > mysql.xsi
/usr/bin/perl /System/Library/Perl/5.8.6/ExtUtils/xsubpp -typemap /System/Library/Perl/5.8.6/ExtUtils/typemap mysql.xs > mysql.xsc && mv mysql.xsc mysql.c
Warning: duplicate function definition 'do' detected in mysql.xs, line 254
Warning: duplicate function definition 'rows' detected in mysql.xs, line 658
cc -c -I/Library/Perl/5.8.6/darwin-thread-multi-2level/auto/DBI -I/usr/include/mysql -fno-omit-frame-pointer -arch ppc64 -arch x86_64 -pipe -DDBD_MYSQL_INSERT_ID_IS_GOOD -g -g -pipe -fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -I/usr/local/include -O3 -DVERSION=\"4.001\" -DXS_VERSION=\"4.001\" "-I/System/Library/Perl/5.8.6/darwin-thread-multi-2level/CORE" mysql.c
mysql.xs: In function 'XS_DBD__mysql__db_do':
mysql.xs:346: warning: comparison is always false due to limited range of data type
mysql.xs:347: warning: comparison is always false due to limited range of data type
mysql.xs: In function 'XS_DBD__mysql__db_do':
mysql.xs:346: warning: comparison is always false due to limited range of data type
mysql.xs:347: warning: comparison is always false due to limited range of data type
Running Mkbootstrap for DBD::mysql ()
chmod 644 mysql.bs
rm -f blib/arch/auto/DBD/mysql/mysql.bundle
LD_RUN_PATH="/usr/lib" /usr/bin/perl myld env MACOSX_DEPLOYMENT_TARGET=10.3 cc -bundle -undefined dynamic_lookup -L/usr/local/lib dbdimp.o mysql.o -o blib/arch/auto/DBD/mysql/mysql.bundle -L/usr/lib/mysql -lmysqlclient -lz -lm
chmod 755 blib/arch/auto/DBD/mysql/mysql.bundle
cp mysql.bs blib/arch/auto/DBD/mysql/mysql.bs
chmod 644 blib/arch/auto/DBD/mysql/mysql.bs
Manifying blib/man3/DBD::mysql.3pm
Manifying blib/man3/DBD::mysql::INSTALL.3pm
Manifying blib/man3/Bundle::DBD::mysql.3pm

make test
# 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/Library/Perl/5.8.6/darwin-thread-multi-2level/auto/DBI -I/usr/include/mysql -fno-omit-frame-pointer -arch ppc64 -arch x86_64 -pipe -DDBD_MYSQL_INSERT_ID_IS_GOOD -g -g -pipe -fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -I/usr/local/include -O3 -DVERSION=\"4.001\" -DXS_VERSION=\"4.001\" "-I/System/Library/Perl/5.8.6/darwin-thread-multi-2level/CORE" dbdimp.c
/usr/bin/perl -p -e "s/~DRIVER~/mysql/g" /Library/Perl/5.8.6/darwin-thread-multi-2level/auto/DBI/Driver.xst > mysql.xsi
/usr/bin/perl /System/Library/Perl/5.8.6/ExtUtils/xsubpp -typemap /System/Library/Perl/5.8.6/ExtUtils/typemap mysql.xs > mysql.xsc && mv mysql.xsc mysql.c
Warning: duplicate function definition 'do' detected in mysql.xs, line 254
Warning: duplicate function definition 'rows' detected in mysql.xs, line 658
cc -c -I/Library/Perl/5.8.6/darwin-thread-multi-2level/auto/DBI -I/usr/include/mysql -fno-omit-frame-pointer -arch ppc64 -arch x86_64 -pipe -DDBD_MYSQL_INSERT_ID_IS_GOOD -g -g -pipe -fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -I/usr/local/include -O3 -DVERSION=\"4.001\" -DXS_VERSION=\"4.001\" "-I/System/Library/Perl/5.8.6/darwin-thread-multi-2level/CORE" mysql.c
mysql.xs: In function 'XS_DBD__mysql__db_do':
mysql.xs:346: warning: comparison is always false due to limited range of data type
mysql.xs:347: warning: comparison is always false due to limited range of data type
mysql.xs: In function 'XS_DBD__mysql__db_do':
mysql.xs:346: warning: comparison is always false due to limited range of data type
mysql.xs:347: warning: comparison is always false due to limited range of data type
Running Mkbootstrap for DBD::mysql ()
chmod 644 mysql.bs
rm -f blib/arch/auto/DBD/mysql/mysql.bundle
LD_RUN_PATH="/usr/lib" /usr/bin/perl myld env MACOSX_DEPLOYMENT_TARGET=10.3 cc -bundle -undefined dynamic_lookup -L/usr/local/lib dbdimp.o mysql.o -o blib/arch/auto/DBD/mysql/mysql.bundle -L/usr/lib/mysql -lmysqlclient -lz -lm
chmod 755 blib/arch/auto/DBD/mysql/mysql.bundle
cp mysql.bs blib/arch/auto/DBD/mysql/mysql.bs
chmod 644 blib/arch/auto/DBD/mysql/mysql.bs
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00base.............install_driver(mysql) failed: Can't find 'boot_DBD__mysql' symbol in /Library/Perl/DBD-mysql-4.001/blib/arch/auto/DBD/mysql/mysql.bundle
at (eval 3) line 3
Compilation failed in require at (eval 3) line 3.

at t/00base.t line 38
t/00base.............dubious
Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 4-5
Failed 2/5 tests, 60.00% okay
t/10dsnlist..........install_driver(mysql) failed: Can't find 'boot_DBD__mysql' symbol in /Library/Perl/DBD-mysql-4.001/blib/arch/auto/DBD/mysql/mysql.bundle
at (eval 3) line 3
Compilation failed in require at (eval 3) line 3.

<snip>
all tests fail the same
</snip>
t/utf8...............install_driver(mysql) failed: Can't find 'boot_DBD__mysql' symbol in /Library/Perl/DBD-mysql-4.001/blib/arch/auto/DBD/mysql/mysql.bundle
at (eval 3) line 3
Compilation failed in require at (eval 3) line 3.

at t/utf8.t line 49
t/utf8...............dubious
Test returned status 255 (wstat 65280, 0xff00)
Failed Test Stat Wstat Total Fail Failed List of Failed
-------------------------------------------------------------------------------
t/00base.t 255 65280 5 4 80.00% 4-5
t/10dsnlist.t 255 65280 9 18 200.00% 1-9
t/20createdrop.t 255 65280 5 10 200.00% 1-5
t/30insertfetch.t 255 65280 11 22 200.00% 1-11
t/35limit.t 255 65280 113 226 200.00% 1-113
t/35prepare.t 255 65280 40 80 200.00% 1-40
t/40bindparam.t 255 65280 ?? ?? % ??
t/40bindparam2.t 255 65280 13 26 200.00% 1-13
t/40blobs.t 255 65280 11 22 200.00% 1-11
t/40listfields.t 255 65280 19 38 200.00% 1-19
t/40nulls.t 255 65280 11 22 200.00% 1-11
t/40numrows.t 255 65280 25 50 200.00% 1-25
t/41bindparam.t 255 65280 11 22 200.00% 1-11
t/41blobs_prepare.t 255 65280 24 48 200.00% 1-24
t/42bindparam.t 255 65280 11 22 200.00% 1-11
t/50chopblanks.t 255 65280 35 70 200.00% 1-35
t/50commit.t 255 65280 30 60 200.00% 1-30
t/75supported_sql.t 255 65280 17 34 200.00% 1-17
t/80procs.t 255 65280 ?? ?? % ??
t/insertid.t 255 65280 12 24 200.00% 1-12
t/param_values.t 255 65280 8 16 200.00% 1-8
t/prepare_noerror.t 255 65280 ?? ?? % ??
t/texecute.t 255 65280 9 18 200.00% 1-9
t/utf8.t 255 65280 ?? ?? % ??
2 tests skipped.
Failed 24/26 test scripts, 7.69% okay. 416/419 subtests failed, 0.72% okay.
make: *** [test_dynamic] Error 2

rient
03-14-2007, 01:14 PM
Problem Solved!

Give stuff like ActivePerl and Fink a go but not at no avail...
I ended up making them modules myself.

Steps taken:

Download the mysql source code and compiled a mysql (without server) to make libraries only available for DBD.

cd /usr/local/src/mysql-4.1.22

./configure --without-server --prefix=/usr/local/src/mysql-4.1.22

make

make install Note: make install generates quite a few errors which can be ignored. We only need them libraries...


Downloaded and created DBI
cd /usr/local/src/DBI-1.51

perl Makefile.PL

make && make test

make install

Downloaded and created DBD using the previously compiled mysql libraries
cd /usr/local/src/DBD-mysql-3.0008

perl Makefile.PL --libs="-L/usr/local/src/mysql-4.1.22/lib/mysql
-lmysqlclient -lz -lm" –cflags="-I/usr/local/src/mysql-4.1.22/include/mysql"

make && make test

make install

Okay, all systems are go!