I am working with the Informix DBA. The original DBA also got laid off so he didn't install. But he is comparing this environment with the other environment that is working. He is also going to create a "stores" database so I can rebuild DBD on the newer system. Meanwhile, I have confirmed the Defaults.pm is correct.
I will provide more information or the solution once I have it.
Thank you to all that have responded for your assistance!
From: Jonathan Leffler <firstname.lastname@example.org>
To: Royce Miller <email@example.com>
Cc: firstname.lastname@example.org; Guardian of DBD::Informix <email@example.com>
Sent: Wed, April 28, 2010 6:54:34 AM
Subject: Re: DBI/DBD question
On Tue, Apr 27, 2010 at 11:17 AM, Royce Miller 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:
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!
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 firstname.lastname@example.org 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.
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:
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 <email@example.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."