What I would like to understand is why on two very similar machines ExtUtils::Liblist knows where to find the libs on one but not on the other. And Glib builds fine on one but not on the other.
Really?
UTSL :)
Same version of liblist? Same ENV vars (like LIB... and what not)?
Do you have any idea on how to attack this systematically?
I linked to it, but here you go
each process comes with cwd/%ENV/@ARGV/STDIN/STDOUT/STDERR ... so compare all paths, all %ENV, all pkg-config/ldconfig ... permissions, etc
What I'm trying to figure is what element of that would cause the script to fail in cron on one server but not the other. My feeling is that it's the database client.
The error message is supposed to tell you that :)
No error message? Adjust cron error reporting, check your mail, ...
Still no error message? Increase verbosity (maybe use Carp::Always; or twiddle some logging levels or $DEBUG++/$VERBOSE++, whatever you're using
Still no error message? Maybe redirect errors to a logfile ?
Once you have an error message, you can check the usual (everything, sanity check), $PATH/$LD_LIBRARY_PATH..., chroot jail,selinux, permissions and password typos, shebang ... its a checklist, error message usually tells you what to check
Like the deep links from Re: Cron revisited/Re^2: Perl Module Not Working In Crontab explain, and here they are: