On Tue, Apr 27, 2010 at 11:17 AM, Royce Miller <royce...@pacbell.net> wrote:
> I am taking over the Perl stuff for someone that was laid off. The > previous guy built Perl with CGI, DBI and DBD modules for use with a > Informix database and IBM IHS web server. He then tar'd it all up and > copied it to a different server and where thing do not all working. I know, > sounds obvious. There are some scripts that are interactive or run by Unix > CRON scheduler on the system and others that are web pages used for > reporting. The interactive stuff works fine on the new system, but the web > pages fail. > > The error is: > Software error: > install_driver(Informix) failed: Can't load > '/home/users/polling/perl/lib/site_perl/5.8.8/sun4-solaris-64/auto/DBD/Informix/Informix.so' > for module DBD::Informix: ld.so.1: SdtQuery.pl: fatal: libifsql.so: open > failed: No such file or directory at > /home/users/polling/perl/lib/5.8.8/sun4-solaris-64/DynaLoader.pm line 230. > at (eval 32) line 3 Compilation failed in require at (eval 32) line 3. > Perhaps a required shared library or dll isn't installed where expected > at /home/users/polling/SDT-2.0/SDT/SDTDB.pm line 443 > This is Perl 5.8.8 running on Solaris 2.8 on V490 Hardware. All is 64 bit. > I am considering rebuilding these modules. I have the source for DBI and > DBD but don't seem to have the source for CGI. I figured I would check with > the pros before I start doing things. > Any ideas or suggestions? > Thank you for your time! > Royce Dear Royce, This is all about Informix and nothing to do with CGI per se - as others have said. In future, please include DBD::Informix in the subject line - it helps me spot that the question is about Informix. Or copy the email address dbd.infor...@gmail.com with the request too. This information is in the README file for DBD::Informix. You should find under one of the DBD/Informix directories (probably /home/users/polling/perl/lib/site_perl/5.10.1/sun4-solaris-64/DBD/Informix) you should a file Defaults.pm. In there, you should find a value for INFORMIXDIR. sub default_INFORMIXDIR { return '/usr/informix/11.50.FC3'; } sub default_INFORMIXSERVER { return 'black_19'; } This is from my machine (Solaris 10, Perl 5.10.1). You need to ensure that the LD_LIBRARY_PATH (or LD_LIBRARY_PATH_64) includes the directories: $INFORMIXDIR/lib $INFORMIXDIR/lib/esql If the specified directory does not exist, then you need to review what to do next. Options include (1) creating a symlink at the official location pointing to the current in-service $INFORMIXDIR, (2) poking around the ld.so.1 configuration with crle (intuitive name!) to add Informix directories to the system list of directories, or (3) rebuilding DBD::Informix to use the new location of $INFORMIXDIR. Option (3) may be the 'best' solution. You can also build DBD::Informix with the environment variable DBD_INFORMIX_RELOCATABLE_INFORMIXDIR set to 1 or yes or anything else that Perl will evaluate as 'true' (so not empty, nor 0). This means that the libraries will be linked solely via the LD_LIBRARY_PATH or crle settings - rather than having a path built in. This is more typically a nuisance (especially in contexts such as web servers - because web servers reset their environment completely and zap the inherited value for LD_LIBRARY_PATH) and is not the default behaviour. -- Jonathan Leffler <jonathan.leff...@gmail.com> #include <disclaimer.h> Guardian of DBD::Informix - v2008.0513 - http://dbi.perl.org "Blessed are we who can laugh at ourselves, for we shall never cease to be amused."