Problem With DB_File Installation On Red-Hat Linux 7.1
I'm trying to install DB_File on our Red-Hat Linux. 7.1 box and am getting an error about having 2 versions of BerkeleyDB installed. The log of the installation follows. Any help would be appreciated. James CPAN.pm: Going to build P/PM/PMQS/DB_File-1.803.tar.gz Parsing config.in... Looks Good. Checking if your kit is complete... Looks good Writing Makefile for DB_File cp DB_File.pm blib/lib/DB_File.pm AutoSplitting blib/lib/DB_File.pm (blib/lib/auto/DB_File) cc -c -I/usr/local/BerkeleyDB/include -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -DVERSION=\"1.803\" -DXS_VERSION=\"1.803\" -fpic -I/usr/local/lib/perl5/5.6.1/i686-linux/CORE -D_NOT_CORE -DmDB_Prefix_t=size_t -DmDB_Hash_t=u_int32_t version.c /usr/local/bin/perl -I/usr/local/lib/perl5/5.6.1/i686-linux -I/usr/local/lib/perl5/5.6.1 /usr/local/lib/perl5/5.6.1/ExtUtils/xsubpp -noprototypes -typemap /usr/local/lib/perl5/5.6.1/ExtUtils/typemap -typemap typemap DB_File.xs > DB_File.xsc && mv DB_File.xsc DB_File.c cc -c -I/usr/local/BerkeleyDB/include -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -DVERSION=\"1.803\" -DXS_VERSION=\"1.803\" -fpic -I/usr/local/lib/perl5/5.6.1/i686-linux/CORE -D_NOT_CORE -DmDB_Prefix_t=size_t -DmDB_Hash_t=u_int32_t DB_File.c Running Mkbootstrap for DB_File () chmod 644 DB_File.bs rm -f blib/arch/auto/DB_File/DB_File.so LD_RUN_PATH="/usr/lib" cc -shared -L/usr/local/lib version.o DB_File.o -o blib/arch/auto/DB_File/DB_File.so -ldb chmod 755 blib/arch/auto/DB_File/DB_File.so cp DB_File.bs blib/arch/auto/DB_File/DB_File.bs chmod 644 blib/arch/auto/DB_File/DB_File.bs /usr/bin/make -- OK Running make test PERL_DL_NONLAZY=1 /usr/local/bin/perl -Iblib/arch -Iblib/lib -I/usr/local/lib/perl5/5.6.1/i686-linux -I/usr/local/lib/perl5/5.6.1 -e 'use Test::Harness qw(&runtests $verbose); $verbose=0; runtests @ARGV;' t/*.t t/db-btree..Can't load 'blib/arch/auto/DB_File/DB_File.so' for module DB_File: blib/arch/auto/DB_File/DB_File.so: undefined symbol: db_version at /usr/local/lib/perl5/5.6.1/i686-linux/DynaLoader.pm line 206. at t/db-btree.t line 23 Compilation failed in require at t/db-btree.t line 23. BEGIN failed--compilation aborted at t/db-btree.t line 23. t/db-btree..dubious Test returned status 255 (wstat 65280, 0xff00) t/db-hash...Can't load 'blib/arch/auto/DB_File/DB_File.so' for module DB_File: blib/arch/auto/DB_File/DB_File.so: undefined symbol: db_version at /usr/local/lib/perl5/5.6.1/i686-linux/DynaLoader.pm line 206. at t/db-hash.t line 23 Compilation failed in require at t/db-hash.t line 23. BEGIN failed--compilation aborted at t/db-hash.t line 23. t/db-hash...dubious Test returned status 255 (wstat 65280, 0xff00) t/db-recno..Can't load 'blib/arch/auto/DB_File/DB_File.so' for module DB_File: blib/arch/auto/DB_File/DB_File.so: undefined symbol: db_version at /usr/local/lib/perl5/5.6.1/i686-linux/DynaLoader.pm line 206. at t/db-recno.t line 23 Compilation failed in require at t/db-recno.t line 23. BEGIN failed--compilation aborted at t/db-recno.t line 23. t/db-recno..dubious Test returned status 255 (wstat 65280, 0xff00) FAILED--3 test scripts could be run, alas--no output ever seen make: *** [test_dynamic] Error 2 /usr/bin/make test -- NOT OK Running make install make test had returned bad status, won't install without force -- James McKim, President ISRG, Inc. V: (603) 497-3015 F: (603) 497-2599 http://www.isrginc.com Strategic use of information and human capital to improve your bottom line is our bottom line.
Re: Problem Locating DB_File.PM at startup of perl script
Ken, Thanks for your reply. It does makes sense, eventhough I'm new to perl modules and their implementation. BTW, do you know what that file would be named? I installed it under perl 5.6.0, but when I try to install it under 5.6.1 I get the error (which seems to be a linker error) "/usr/bin/ld: cannot find -ldb". A bit of research lead me to some mention of needing a libdb2 version, but I haven't gotten to deep into it yet and am hoping that I can use my previous installation of DB_File (under 5.6.0) for now. Cheers, James Ken Williams wrote: > Hi James, > > The "loadable object" is not the .pm file, it's the binary compiled > object file that DB_File.pm needs to bootstrap. Sounds like you need to > reinstall the module. > > [EMAIL PROTECTED] (James McKim) wrote: > >Hi all, > > > >I've run into a very frustrating problem. I'm getting the old "Can't > >locate loadable object for module..." error, yet the file does exist in > >the @INC path. Here's some system output: > > > >--- > > > >[Wed Jul 18 12:18:04 2001] pickcity.cgi: Can't locate loadable object > >for module DB_File in @INC (@INC contains: > >/usr/local/lib/perl5/5.6.1/i686-linux /usr/local/lib/perl5/5.6.1 > >/usr/local/lib/perl5/site_perl/5.6.1/i686-linux > >/usr/local/lib/perl5/site_perl/5.6.1 /usr/local/lib/perl5/site_perl .) > >at /var/pickcity/htdocs/pickcity.cgi line 12 > >[Wed Jul 18 12:18:04 2001] pickcity.cgi: Compilation failed in require > >at /var/pickcity/htdocs/pickcity.cgi line 12. > >[Wed Jul 18 12:18:04 2001] pickcity.cgi: BEGIN failed--compilation > >aborted at /var/pickcity/htdocs/pickcity.cgi line 12. > >[root@localhost DB_File]# ls > >/usr/local/lib/perl5/5.6.1/i686-linux/DB_File.pm > >/usr/local/lib/perl5/5.6.1/i686-linux/DB_File.pm > >[root@localhost DB_File]# > >>-- > > > >Anyone have any ideas as to why perl can't seem to find the file > >eventhough the system, clearly, can? > > > >James > > > > > > ------ > Ken Williams Last Bastion of Euclidity > [EMAIL PROTECTED]The Math Forum
Re: Problem Locating DB_File.PM at startup of perl script
BTW, executing the script seemed to be able to locate CGI, DBI, and POSIX just fine. James darren chamberlain wrote: > James McKim <[EMAIL PROTECTED]> said something to this effect on 07/18/2001: > > Hi all, > > > > I've run into a very frustrating problem. I'm getting the old "Can't > > locate loadable object for module..." error, yet the file does exist in > > the @INC path. Here's some system output: > > > > --- > > > > [Wed Jul 18 12:18:04 2001] pickcity.cgi: Can't locate loadable object > > for module DB_File in @INC (@INC contains: > > /usr/local/lib/perl5/5.6.1/i686-linux /usr/local/lib/perl5/5.6.1 > > /usr/local/lib/perl5/site_perl/5.6.1/i686-linux > > /usr/local/lib/perl5/site_perl/5.6.1 /usr/local/lib/perl5/site_perl .) > > at /var/pickcity/htdocs/pickcity.cgi line 12 > > [Wed Jul 18 12:18:04 2001] pickcity.cgi: Compilation failed in require > > at /var/pickcity/htdocs/pickcity.cgi line 12. > > [Wed Jul 18 12:18:04 2001] pickcity.cgi: BEGIN failed--compilation > > aborted at /var/pickcity/htdocs/pickcity.cgi line 12. > > [root@localhost DB_File]# ls > > /usr/local/lib/perl5/5.6.1/i686-linux/DB_File.pm > > /usr/local/lib/perl5/5.6.1/i686-linux/DB_File.pm > > [root@localhost DB_File]# > > >-- > > > > Anyone have any ideas as to why perl can't seem to find the file > > eventhough the system, clearly, can? > > What are the permissions on > /usr/local/lib/perl5/5.6.1/i686-linux/DB_File.pm? Can the owner > of the httpd process read the file? > > (darren) > > -- > Real computer scientists don't program in assembler. They don't write > in anything less portable than a number two pencil.
Re: Problem Locating DB_File.PM at startup of perl script
Interesting question. The file owner is root. However, I actually launched the perl cgi from the shell as root and got the error message, so I'm not sure that matching the file owner with the owner of the httpd process would make much difference (yet). James darren chamberlain wrote: > James McKim <[EMAIL PROTECTED]> said something to this effect on 07/18/2001: > > Hi all, > > > > I've run into a very frustrating problem. I'm getting the old "Can't > > locate loadable object for module..." error, yet the file does exist in > > the @INC path. Here's some system output: > > > > --- > > > > [Wed Jul 18 12:18:04 2001] pickcity.cgi: Can't locate loadable object > > for module DB_File in @INC (@INC contains: > > /usr/local/lib/perl5/5.6.1/i686-linux /usr/local/lib/perl5/5.6.1 > > /usr/local/lib/perl5/site_perl/5.6.1/i686-linux > > /usr/local/lib/perl5/site_perl/5.6.1 /usr/local/lib/perl5/site_perl .) > > at /var/pickcity/htdocs/pickcity.cgi line 12 > > [Wed Jul 18 12:18:04 2001] pickcity.cgi: Compilation failed in require > > at /var/pickcity/htdocs/pickcity.cgi line 12. > > [Wed Jul 18 12:18:04 2001] pickcity.cgi: BEGIN failed--compilation > > aborted at /var/pickcity/htdocs/pickcity.cgi line 12. > > [root@localhost DB_File]# ls > > /usr/local/lib/perl5/5.6.1/i686-linux/DB_File.pm > > /usr/local/lib/perl5/5.6.1/i686-linux/DB_File.pm > > [root@localhost DB_File]# > > >-- > > > > Anyone have any ideas as to why perl can't seem to find the file > > eventhough the system, clearly, can? > > What are the permissions on > /usr/local/lib/perl5/5.6.1/i686-linux/DB_File.pm? Can the owner > of the httpd process read the file? > > (darren) > > -- > Real computer scientists don't program in assembler. They don't write > in anything less portable than a number two pencil.
Problem Locating DB_File.PM at startup of perl script
Hi all, I've run into a very frustrating problem. I'm getting the old "Can't locate loadable object for module..." error, yet the file does exist in the @INC path. Here's some system output: --- [Wed Jul 18 12:18:04 2001] pickcity.cgi: Can't locate loadable object for module DB_File in @INC (@INC contains: /usr/local/lib/perl5/5.6.1/i686-linux /usr/local/lib/perl5/5.6.1 /usr/local/lib/perl5/site_perl/5.6.1/i686-linux /usr/local/lib/perl5/site_perl/5.6.1 /usr/local/lib/perl5/site_perl .) at /var/pickcity/htdocs/pickcity.cgi line 12 [Wed Jul 18 12:18:04 2001] pickcity.cgi: Compilation failed in require at /var/pickcity/htdocs/pickcity.cgi line 12. [Wed Jul 18 12:18:04 2001] pickcity.cgi: BEGIN failed--compilation aborted at /var/pickcity/htdocs/pickcity.cgi line 12. [root@localhost DB_File]# ls /usr/local/lib/perl5/5.6.1/i686-linux/DB_File.pm /usr/local/lib/perl5/5.6.1/i686-linux/DB_File.pm [root@localhost DB_File]# -- Anyone have any ideas as to why perl can't seem to find the file eventhough the system, clearly, can? James
Re: Problem With Perl Versions
Thanks for the suggestion. It seems odd since libperl.so and libperl.a are in the 5.6.0 directories and seem to have been created when I installed the 5.6.0 version, but I don't know where the binary is it thinks it should be using, so recompiling may help. James Aaron Patterson wrote: > You probably have mod_perl compiled with perl 5.00503. Try recompiling > mod_perl. That may help. > > --Aaron > > On Fri, 13 Jul 2001, James McKim wrote: > > > Hello all, > > > > In trying to upgrade a RedHat Linux7.0 system I inherited to Perl5.6.0 > > There are several versions of perl installed on the system and I've run > > into a problem restarting the server. To set a context for you all, I'm > > not a perl or apache expert, so I may be (OK probably) missing something > > here. > > > > I got the following message when trying to start the server. > > >--- > > > > [Fri Jul 13 10:37:24 2001] [error] Perl 5.00564 required--this is only > > version 5.00503, stopped at /etc/httpd//lib.pm line 3. > > BEGIN failed--compilation aborted at /etc/httpd//lib.pm line 3. > > BEGIN failed--compilation aborted at /var/pickcity/htdocs/init.pl line > > 1. > > > > Syntax error on line 1029 of /etc/httpd/conf/httpd.conf: > > Perl 5.00564 required--this is only version 5.00503, stopped at > > /etc/httpd//lib.pm line 3. > > BEGIN failed--compilation aborted at /etc/httpd//lib.pm line 3. > > BEGIN failed--compilation aborted at /var/pickcity/htdocs/init.pl line > > 1. > > > > > > > This didn't make sense because, as I said above, I installed perl5.6.0. > > So, just to double check, I invoked perl from the command line (from > > /usr/bin) to ask it what version it is, I got the following: > > > > > > > > [root@localhost pickcity]# perl -v > > > > This is perl, v5.6.0 built for i386-linux > > > > Copyright 1987-2000, Larry Wall > > > > Perl may be copied only under the terms of either the Artistic License > > or the > > GNU General Public License, which may be found in the Perl 5.0 source > > kit. > > > > Complete documentation for Perl, including FAQ lists, should be found on > > > > this system using `man perl' or `perldoc perl'. If you have access to > > the > > Internet, point your browser at http://www.perl.com/, the Perl Home > > Page. > > >- > > > > This is the only perl executable on the system that I can tell. > > > > Note that I'm trying to use the "use lib" syntax in init.pl to point > > Apache and Perl to the set of perl5.6.0 directories where the perl > > modules live as they doesn't seem to be pointing to the right > > directories. So, this seems to be sort of a "catch 22" . It's telling me > > that I don't have the right version, yet when I invoke perl, it tells me > > that I have a totally different version. > > > > It appears that somehow, Apache is trying to use a version of perl other > > than that currently on the system. I don't know if this means its > > pointing to modules that are old or even how thinks it knows what the > > current version is. Any help would be appreciated. > > > > Thanks, > > > > James > > > >
Problem With Perl Versions
Hello all, In trying to upgrade a RedHat Linux7.0 system I inherited to Perl5.6.0 There are several versions of perl installed on the system and I've run into a problem restarting the server. To set a context for you all, I'm not a perl or apache expert, so I may be (OK probably) missing something here. I got the following message when trying to start the server. --- [Fri Jul 13 10:37:24 2001] [error] Perl 5.00564 required--this is only version 5.00503, stopped at /etc/httpd//lib.pm line 3. BEGIN failed--compilation aborted at /etc/httpd//lib.pm line 3. BEGIN failed--compilation aborted at /var/pickcity/htdocs/init.pl line 1. Syntax error on line 1029 of /etc/httpd/conf/httpd.conf: Perl 5.00564 required--this is only version 5.00503, stopped at /etc/httpd//lib.pm line 3. BEGIN failed--compilation aborted at /etc/httpd//lib.pm line 3. BEGIN failed--compilation aborted at /var/pickcity/htdocs/init.pl line 1. This didn't make sense because, as I said above, I installed perl5.6.0. So, just to double check, I invoked perl from the command line (from /usr/bin) to ask it what version it is, I got the following: [root@localhost pickcity]# perl -v This is perl, v5.6.0 built for i386-linux Copyright 1987-2000, Larry Wall Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5.0 source kit. Complete documentation for Perl, including FAQ lists, should be found on this system using `man perl' or `perldoc perl'. If you have access to the Internet, point your browser at http://www.perl.com/, the Perl Home Page. - This is the only perl executable on the system that I can tell. Note that I'm trying to use the "use lib" syntax in init.pl to point Apache and Perl to the set of perl5.6.0 directories where the perl modules live as they doesn't seem to be pointing to the right directories. So, this seems to be sort of a "catch 22" . It's telling me that I don't have the right version, yet when I invoke perl, it tells me that I have a totally different version. It appears that somehow, Apache is trying to use a version of perl other than that currently on the system. I don't know if this means its pointing to modules that are old or even how thinks it knows what the current version is. Any help would be appreciated. Thanks, James