ldconfig
SYNOPSIS
ldconfig [OPTION...]
DESCRIPTION
ldconfig creates the necessary links and cache (for use by
the run-time linker, ld.so) to the most recent shared
libraries found in the directories specified on the com-
mand line, in the file /etc/ld.so.conf, and in the trusted
directories (/usr/lib and /lib). ldconfig checks the
header and file names of the libraries it encounters when
determining which versions should have their links
updated. ldconfig ignores symbolic links when scanning
for libraries.
ldconfig will attempt to deduce the type of ELF libs (ie.
libc 5.x or libc 6.x (glibc)) based on what C libraries if
any the library was linked against, therefore when making
dynamic libraries, it is wise to explicitly link against
libc (use -lc). ldconfig is capable of storing multiple
ABI types of libraries into a single cache on architec-
tures which allow native running of multiple ABIs, like
ia32/ia64/x86_64 or sparc32/sparc64.
Some existing libs do not contain enough information to
allow the deduction of their type, therefore the
/etc/ld.so.conf file format allows the specification of an
expected type. This is only used for those ELF libs which
we can not work out. The format is like this
"dirname=TYPE", where type can be libc4, libc5 or libc6.
(This syntax also works on the command line). Spaces are
not allowed. Also see the -p option.
Directory names containing an = are no longer legal unless
they also have an expected type specifier.
ldconfig should normally be run by the super-user as it
may require write permission on some root owned directo-
ries and files. If you use -r option to change the root
directory, you don't have to be super-user though as long
as you have sufficient right to that directory tree.
OPTIONS
-v --verbose
Verbose mode. Print current version number, the
name of each directory as it is scanned and any
links that are created.
-n Only process directories specified on the command
line. Don't process the trusted directories
(/usr/lib and /lib) nor those specified in
/etc/ld.so.conf. Implies -N.
-l Library mode. Manually link individual libraries.
Intended for use by experts only.
-p --print-cache
Print the lists of directories and candidate
libraries stored in the current cache.
-c --format=FORMAT
Use FORMAT for the cache file. Choices are old, new
and compat (the default).
-? --help --usage
Print usage information.
-V --version
Print version and exit.
EXAMPLES
# /sbin/ldconfig -v
will set up the correct links for the shared binaries and
rebuild the cache.
# /sbin/ldconfig -n /lib
as root after the installation of a new shared library
will properly update the shared library symbolic links in
/lib.
FILES
/lib/ld-linux.so.* execution time linker/loader
/etc/ld.so.conf File containing a list of colon,
space, tab, newline, or comma
spearated directories in which to
search for libraries.
/etc/ld.so.cache File containing an ordered list of
libraries found in the directories
specified in /etc/ld.so.conf. This
file is not in human readable format,
and is not intended to be edited.
lib*.so.version shared libraries
SEE ALSO
ldd(1), ld.so(8).
BUGS
ldconfig, being a user process, must be run manually and
has no means of dynamically determining and relinking
shared libraries for use by ld.so when a new shared
library is installed.
AUTHORS
Andreas Jaeger. Manual page written by David Engel and
Mitch D'Souza.
ldd
SYNOPSIS
ldd [OPTION]... FILE...
DESCRIPTION
ldd prints the shared libraries required by each program
or shared library specified on the command line.
OPTIONS
--version
Print the version number of ldd.
-v --verbose
Print all information, including e.g. symbol ver-
sioning information.
-d --data-relocs
Perform relocations and report any missing objects
(ELF only).
-r --function-relocs
Perform relocations for both data objects and func-
tions, and report any missing objects or functions
(ELF only).
--help Usage information.
BUGS
ldd does not work on a.out shared libraries.
ldd does not work with some extremely old a.out programs
which were built before ldd support was added to the com-
piler releases. If you use ldd on one of these programs,
the program will attempt to run with argc = 0 and the
results will be unpredictable.
AUTHOR
Roland McGrath and Ulrich Drepper.
SEE ALSO
ldconfig(8), ld.so(8).
30 October 2000 LDD(1)
ld.so
DESCRIPTION
ld.so loads the shared libraries needed by a program, pre-
pares the program to run, and then runs it. Unless
explicitly specified via the -static option to ld during
compilation, all Linux programs are incomplete and require
further linking at run time.
The necessary shared libraries needed by the program are
searched for in the following order
o Using the DT_RPATH dynamic section attribute of the
binary if present and DT_RUNPATH attribute does not
exist.
o Using the environment variable LD_LIBRARY_PATH .
Except if the executable is a setuid/setgid binary,
in which case it is ignored.
o Using the DT_RUNPATH dynamic section attribute of
the binary if present.
o From the cache file /etc/ld.so.cache which contains
a compiled list of candidate libraries previously
found in the augmented library path. If, however,
the binary was linked with -z nodeflib linker
option, libraries in the default library paths are
skipped.
o In the default path /lib, and then /usr/lib. If
the binary was linked with -z nodeflib linker
option, this step is skipped.
SYNOPSIS
The dynamic linker can be run either indirectly through
running some dynamically linked program or library (in
which case no command line options to the dynamic linker
can be passed and the dynamic linker which is stored in
the .interp section of the program is executed) or
directly by running:
/lib/ld-linux.so.* [OPTIONS] [PROGRAM [ARGUMENTS]]
COMMAND LINE OPTIONS
--list List all dependencies and how they are resolved.
--verify
Verify that program is dynamically linked and this
dynamic linker can handle it.
--library-path PATH
Override LD_LIBRARY_PATH environment variable set-
ting (see below).
all others. This can be used to selectively over-
ride functions in other shared libraries. For
setuid/setgid ELF binaries, only libraries in the
standard search directories that are also setuid
will be loaded.
LD_TRACE_LOADED_OBJECTS
If set to non-empty string, causes the program to
list its dynamic library dependencies, as if run by
ldd, instead of running normally.
LD_BIND_NOW
If set to non-empty string, causes the dynamic
linker to resolve all symbols at program startup
instead of deferring function call resolval to the
point when they are first referenced.
LD_WARN
If set to non-empty string, warn about unresolved
symbols.
LD_DEBUG
Output verbose debugging information about the
dynamic linker. If set to all prints all debugging
information it has, if set to help prints a help
message about which categories can be specified in
this environment variable.
LD_DEBUG_OUTPUT
File where LD_DEBUG output should be fed into,
default is standard output. LD_DEBUG_OUTPUT is
ignored for setuid/setgid binaries.
LD_VERBOSE
If set to non-empty string, output symbol version-
ing information about the program if querying
information about the program (ie. either
LD_TRACE_LOADED_OBJECTS has been set, or --list or
--verify options have been given to the dynamic
linker).
FILES
/lib/ld-linux.so.* ELF dynamic linker/loader
/etc/ld.so.cache
File containing a compiled list of directories in
which to search for libraries and an ordered list
of candidate libraries.
/etc/ld.so.preload
File containing a whitespace separated list of ELF
shared libraries to be loaded before the program.
libraries and an ordered list of candidate
libraries.