Site


My Projects


Notes


Perl

Make Debian Packages From CPAN

apt-get install dh-make-perl ; dh-make-perl --cpan Your::CPAN::Package --install

List Subroutines In A Package

perl -le '$module = shift; print for (grep { defined &{"$module\::$_"} } keys %{"$module\::"})' <module>

DBD::Informix

How to get DBD::Informix up and running quicktly

Getting DBD::Informix to compile is irritating and was nonintuitive at first, but now makes sense. Here is how to get it to compile against the Informix CSDK and connect to the demo database.

$ source /opt/IBM/informix/demo/server/profile_settings

Set these environment variables to connect to the correct database. This assumes you have an local informix user with password informix

export DBI_DBNAME=stores_demo@demo_on export DBD_INFORMIX_USERNAME=informix export DBD_INFORMIX_PASSWORD=informix

Start cpan/cpanp and install DBD::Informix

$ cpanp CPAN Terminal> i DBD::Informix

cpanp should dump out something similiar to:

Testing whether your Informix test environment will work... ESQLTEST Program Running: @(#)$Id: esqltest.ec,v 2008.1 2008/05/13 23:13:10 jleffler Exp $ $INFORMIXDIR is set to '/opt/IBM/informix'. $INFORMIXSERVER is set to 'demo_on'. $DBI_DBNAME set to 'stores_demo@demo_on'. $DBD_INFORMIX_DATABASE unset - defaulting to 'stores_demo@demo_on'. $DBD_INFORMIX_DATABASE2 unset - defaulting to 'stores_demo@demo_on'. $DBD_INFORMIX_USERNAME is set to 'informix'. $DBD_INFORMIX_USERNAME2 is unset - defaulting to 'informix'. $DBD_INFORMIX_PASSWORD is set. $DBD_INFORMIX_PASSWORD2 is unset - defaulting to $DBD_INFORMIX_PASSWORD. Testing connection to stores_demo@demo_on CONNECT TO 'stores_demo@demo_on' with user info Testing concurrent connection to stores_demo@demo_on CONNECT TO 'stores_demo@demo_on' with user info Your Informix environment is (probably) OK

You will most likely get:

./esqltest: error while loading shared libraries: libifsql.so: cannot open shared object file: No such file or directory

Then

$ cat /etc/ld.so.conf.d/informix.conf /opt/IBM/informix/lib/ /opt/IBM/informix/lib/esql/

And run ldconfig as root

Setup the demo database via:

$ dbaccessdemo

If this error:

$ ./isql DBI connect('stores_demo@demo_on','informix',...) failed: SQL: -256: Transaction not available. at ./isql line 271 ... at ./isql line 271.

Then run:

ontape -s -U stores_demo

Tracy: Doctor Spaceman, when they check my DNA, will they tell me what diseases I might get, or help me to remember my ATM pin code? Dr. Spaceman: Absolutely. Science is whatever we want it to be. I'l let you know as soon as we have the results. Tracy: I already know the results, the kid is not mine! Dr. Spaceman: Boy, it' crazy to think we used to settle questions of paternity by dunking a woman in water until she admitted she made it all up. Different time, the '60s .