.\" Copyright 1999 SuSE GmbH Nuernberg, Germany
.\" Author: Thorsten Kukuk <kukuk@suse.de>
.\"
.\" %%%LICENSE_START(GPLv2+_SW_3_PARA)
.\" This program is free software; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of the
.\" License, or (at your option) any later version.
.\"
.\" This program is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
.\" General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, see
.\" <http://www.gnu.org/licenses/>.
.\" %%%LICENSE_END
.\"
.\" Modified, 6 May 2002, Michael Kerrisk, <mtk.manpages@gmail.com>
.\"   Change listed order of /usr/lib and /lib
.TH LDCONFIG 8 2015-03-29 "GNU" "Linux Programmer's Manual"
.SH NAME
ldconfig \- configure dynamic linker run-time bindings
.SH SYNOPSIS
.B /sbin/ldconfig
[
.B \-nNvXV
]
[
.BR \-f\ conf
]
[
.BR \-C\ cache
]
[
.BR \-r\ root
]
.IR directory \ ...
.PD 0
.PP
.PD
.B /sbin/ldconfig
.B \-l
[
.B \-v
]
.IR library \ ...
.PD 0
.PP
.PD
.B /sbin/ldconfig
.B \-p
.SH DESCRIPTION
.B ldconfig
creates the necessary links and cache to the most recent shared
libraries found in the directories specified on the command line,
in the file
.IR /etc/ld.so.conf ,
and in the trusted directories,
.I /lib
and
.IR /usr/lib
(on some 64-bit architectures such as x86-64,
.I lib
and
.IR /usr/lib
are the trusted directories for 32-bit libraries, while
.I /lib64
and
.IR /usr/lib64
are used for 64-bit libraries).

The cache is used by the run-time linker,
.I ld.so
or
.IR ld-linux.so .
.B ldconfig
checks the header and filenames of the libraries it encounters when
determining which versions should have their links updated.
.PP
.B ldconfig
will attempt to deduce the type of ELF libs (i.e., libc5 or libc6/glibc)
based on what C libs, if any, the library was linked against.
.\" The following sentence looks suspect
.\" (perhaps historical cruft) -- MTK, Jul 2005
.\" Therefore, when making dynamic libraries,
.\" it is wise to explicitly link against libc (use \-lc).
.PP
Some existing libs do not contain enough information to allow the deduction of
their type.
Therefore, the
.I /etc/ld.so.conf
file format allows the specification of an expected type.
This is used
.I only
for those ELF libs which we can not work out.
The format
is "dirname=TYPE", where TYPE can be libc4, libc5, or libc6.
(This syntax also works on the command line.)
Spaces are
.I not
allowed.
Also see the
.B \-p
option.
.B ldconfig
should normally be run by the superuser as it may require write
permission on some root owned directories and files.
.SH OPTIONS
.TP
.BR \-c " \fIfmt\fP, " \-\-format=\fIfmt\fP
(Since glibc 2.2)
Cache format to use:
.IR old ,
.IR new ,
or
.IR compat
(default).
.TP
.B \-C cache
Use
.B cache
instead of
.IR /etc/ld.so.cache .
.TP
.B \-f conf
Use
.B conf
instead of
.IR /etc/ld.so.conf .
.\" FIXME glibc 2.7 added -i
.TP
.BR \-i ", " \-\-ignore\-aux\-cache
(Since glibc 2.7)
.\"             commit 27d9ffda17df4d2388687afd12897774fde39bcc
Ignore auxiliary cache file.
.TP
.B \-l
(Since glibc 2.2)
Library mode.
Manually link individual libraries.
Intended for use by experts only.
.TP
.B \-n
Only process directories specified on the command line.
Don't process the trusted directories,
nor those specified in
.IR /etc/ld.so.conf .
Implies
.BR \-N .
.TP
.B \-N
Don't rebuild the cache.
Unless
.B \-X
is also specified, links are still updated.
.TP
.BR \-p ", " \-\-print\-cache
Print the lists of directories and candidate libraries stored in
the current cache.
.TP
.BI "\-r  " root
Change to and use
.I root
as the root directory.
.TP
.BR \-v ", " \-\-verbose
Verbose mode.
Print current version number, the name of each directory as it
is scanned, and any links that are created.
Overrides quiet mode.
.TP
.BR \-V ", " \-\-version
Print program version.
.TP
.B \-X
Don't update links.
Unless
.B \-N
is also specified, the cache is still rebuilt.
.SH FILES
.PD 0
.TP 20
.I /lib/ld.so
Run-time linker/loader.
.TP 20
.I /etc/ld.so.conf
File containing a list of directories, one per line,
in which to search for libraries.
.\" FIXME Since glibc-2.3.4, "include" directives are supported in ld.so.conf
.\" FIXME Since glibc-2.4, "hwcap" directives are supported in ld.so.conf
.TP 20
.I /etc/ld.so.cache
File containing an ordered list of libraries found in the directories
specified in
.IR /etc/ld.so.conf ,
as well as those found in the trusted directories.
.PD
.SH SEE ALSO
.BR ldd (1),
.BR ld.so (8)
