====== Library Paths ====== **General Information** Configuring and viewing OS library paths. **Checklist** * Distro(s): Enterprise Linux 6/7 ---- ====== Library Config Files ====== **Main Config File**: /etc/ld.so.conf includes a directory include ld.so.conf.d/*.conf \\ **Directory of drop in paths**: /etc/ld.so.conf.d/ \\ Example: /etc/ld.so.conf.d/mylibraries.conf /data/lib/application1/ /data/lib/application2/ \\ Apply Changes: If any changes are made to the above config files, run ldconfig to reload the library cache ldconfig -v * -v => verbose \\ Print the Cache Contents: To see what is currently in the library cacheldconfig --print-cache ---- ====== Library Search Order ====== Shared libraries needed by programs are searched for in this order: * Environment variable "LD_LIBRARY_PATH" => This environmental variable can be set like any other environment variable. (shell, .bashrc, .profile) * (ELF binaries only) => Directories specified within the binary. (DT_RUNPATH) * From cache file (/etc/ld.so.cache) => created via ldconfig * In default system library paths (/lib, /lib64, /usr/lib) ====== Override Search Order ====== To get a path specified in front of another, define the environmental variable "LD_LIBRARY_PATH" in a configuration file (per user or system wide). \\ Example: Ensure that /usr/lib64 is ahead of /usr/local/lib for user "robert" vim /home/robert/.bashrc LD_LIBRARY_PATH=/usr/lib64:${LD_LIBRARY_PATH} * Including the "${LD_LIBRARY_PATH}" as a second entry ensures that nothing is completely over written if the variable has been set elsewhere ----