Missing Informix Links

The fabulous Informix install scripts don't put links to the dynamic libraries into the /usr/lib directory. Nor do they update /etc/ld.so.conf with a list of the Informix directories or add a file containing a list of the Informix directories to /etc/ld.so.conf.d. If you'll be building 4GL programs or trying to run certain Informix utilities, you'll need to fix this problem.

On earlier systems that don't use /etc/ld.so.conf (or on any system that you wish to have all dynamic libraries in /usr/lib), you may install links to the Informix dynamic libraries yourself to get them to work. The following command will list the files needing links:

     find /usr/share/informix -name \*.so -print

If you are happy with what you see (i.e. it makes sense that the libraries listed should be included in the dynamic libraries load path), the following command will actually make the links in /usr/lib:

     find /usr/share/informix -name \*.so -exec ln -s \{\} /usr/lib \;

On modern Linux systems including the latest CentOS/RedHat and Ubuntu, the preferred method for fixing this problem is to add a file to /etc/ld.so.conf.d that contains a list of all of the dynamic library directories. You can determine all of the directories that contain dynamic libraries in the Informix install path with the same command as shown above:

     find /usr/share/informix -name \*.so -print

We did so on our system and came up with this file:

/etc/ld.so.conf.d/informix-i386.conf:

     /usr/share/informix/lib/c++
     /usr/share/informix/lib/cli
     /usr/share/informix/lib/client/csm
     /usr/share/informix/lib/dmi
     /usr/share/informix/lib/esql
     /usr/share/informix/lib/icc/icclib
     /usr/share/informix/lib

After you've added the file to /etc/ld.so.conf.d, you'll need to rebuild the loader's cache of dynamic libraries with these commands:

     su
     ldconfig

You can check that the cache has been updated with:

     ldconfig -p | grep /usr/share/informix