The ldconfig Command


Ldconfig determines the runtime links required by shared libraries that are located in /usr/lib and /lib, specified in libs on the command line, and stored in /etc/ld.so.conf. It works in conjunction with ld.so , the dynamic linker/loader, to create and maintain links to the most cur- rent versions of shared libraries available on a system. It has the following syntax: ldconfig [options] [libs] Running ldconfig with no arguments simply updates the cache file, /etc/ld.so·cache.options control ldconfig's behavior.


The -v option tells ldconfig to be verbose as it updates the cache. The -p option says to print without updating the current list of shared libraries about which ld.so knows. To see what ldconfig is doing when updating the cache, the -v option will print out a display of directories and symlinks ldconfig has found.


Environment Variables and Configuration Files


The dynamic linker/loader ld.so uses a number of environment variables to customize and con- trol its behavior. These variables include: $LD_LIBRARY_PATH : This variable contains a colon-separated list of directories in which to search for shared libraries at runtime. It is similar to the $PATH environment variable.


$LD_PRELOAD : This variable is a whitespace-separated list of additional, user-specified shared libraries to load before all other libraries. It is used selectively to override func- tions in other shared libraries. ld.so also uses two configuration files whose purposes parallel those environment variables: /etc/ld.so.conf : Contains a list of directories that the linker/loader should search for shared libraries in addition to the standard directories, /usr/lib and /lib , as well as /lib64 on 64-bit architecture systems.


/etc/ld.so.preload : Contains a disk-based version of the $LD_PRELOAD environment variable, including a whitespace-separated list of shared libraries to be loaded prior to executing a program.