close_range.2: Glibc added a wrapper recently
[man-pages.git] / man8 / ldconfig.8
blob4b639b0d7086dfd165d34aa81da87f17107ac0a4
1 .\" Copyright 1999 SuSE GmbH Nuernberg, Germany
2 .\" Author: Thorsten Kukuk <kukuk@suse.de>
3 .\"
4 .\" %%%LICENSE_START(GPLv2+_SW_3_PARA)
5 .\" This program is free software; you can redistribute it and/or
6 .\" modify it under the terms of the GNU General Public License as
7 .\" published by the Free Software Foundation; either version 2 of the
8 .\" License, or (at your option) any later version.
9 .\"
10 .\" This program is distributed in the hope that it will be useful,
11 .\" but WITHOUT ANY WARRANTY; without even the implied warranty of
12 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13 .\" General Public License for more details.
14 .\"
15 .\" You should have received a copy of the GNU General Public
16 .\" License along with this manual; if not, see
17 .\" <http://www.gnu.org/licenses/>.
18 .\" %%%LICENSE_END
19 .\"
20 .\" Modified, 6 May 2002, Michael Kerrisk, <mtk.manpages@gmail.com>
21 .\"   Change listed order of /usr/lib and /lib
22 .TH LDCONFIG 8 2021-03-22 "GNU" "Linux Programmer's Manual"
23 .SH NAME
24 ldconfig \- configure dynamic linker run-time bindings
25 .SH SYNOPSIS
26 .BR /sbin/ldconfig " [" \-nNvXV "] [" \-f " \fIconf\fP] [" \-C " \fIcache\fP] [" \-r " \fIroot\fP]"
27 .IR directory \...
28 .PD 0
29 .PP
30 .PD
31 .B /sbin/ldconfig
32 .B \-l
33 .RB [ \-v ]
34 .IR library \...
35 .PD 0
36 .PP
37 .PD
38 .B /sbin/ldconfig
39 .B \-p
40 .SH DESCRIPTION
41 .B ldconfig
42 creates the necessary links and cache to the most recent shared
43 libraries found in the directories specified on the command line,
44 in the file
45 .IR /etc/ld.so.conf ,
46 and in the trusted directories,
47 .I /lib
48 and
49 .IR /usr/lib
50 (on some 64-bit architectures such as x86-64,
51 .I /lib
52 and
53 .IR /usr/lib
54 are the trusted directories for 32-bit libraries, while
55 .I /lib64
56 and
57 .IR /usr/lib64
58 are used for 64-bit libraries).
59 .PP
60 The cache is used by the run-time linker,
61 .I ld.so
63 .IR ld\-linux.so .
64 .B ldconfig
65 checks the header and filenames of the libraries it encounters when
66 determining which versions should have their links updated.
67 .PP
68 .B ldconfig
69 will attempt to deduce the type of ELF libraries (i.e., libc5 or libc6/glibc)
70 based on what C libraries, if any, the library was linked against.
71 .\" The following sentence looks suspect
72 .\" (perhaps historical cruft) -- MTK, Jul 2005
73 .\" Therefore, when making dynamic libraries,
74 .\" it is wise to explicitly link against libc (use \-lc).
75 .PP
76 Some existing libraries do not contain enough information
77 to allow the deduction of their type.
78 Therefore, the
79 .I /etc/ld.so.conf
80 file format allows the specification of an expected type.
81 This is used
82 .I only
83 for those ELF libraries which we can not work out.
84 The format
85 is "dirname=TYPE", where TYPE can be libc4, libc5, or libc6.
86 (This syntax also works on the command line.)
87 Spaces are
88 .I not
89 allowed.
90 Also see the
91 .B \-p
92 option.
93 .B ldconfig
94 should normally be run by the superuser as it may require write
95 permission on some root owned directories and files.
96 .PP
97 Note that
98 .B ldconfig
99 will only look at files that are named
100 .I lib*.so*
101 (for regular shared objects) or
102 .I ld\-*.so*
103 (for the dynamic loader itself).
104 Other files will be ignored.
105 Also,
106 .B ldconfig
107 expects a certain pattern to how the symlinks are set up, like this
108 example, where the middle file
109 .RB ( libfoo.so.1
110 here) is the SONAME for the library:
112 .in +4n
114 libfoo.so \-> libfoo.so.1 \-> libfoo.so.1.12
118 Failure to follow this pattern may result in compatibility issues
119 after an upgrade.
120 .SH OPTIONS
122 .BR \-c " \fIfmt\fP, " \-\-format=\fIfmt\fP
123 (Since glibc 2.2)
124 Cache format to use:
125 .IR old ,
126 .IR new ,
128 .IR compat .
129 Since glibc 2.32, the default is
130 .IR new .
131 .\" commit cad64f778aced84efdaa04ae64f8737b86f063ab
132 Before that, it was
133 .IR compat .
135 .BI "\-C " cache
137 .I cache
138 instead of
139 .IR /etc/ld.so.cache .
141 .BI "\-f " conf
143 .I conf
144 instead of
145 .IR /etc/ld.so.conf .
146 .\" FIXME glibc 2.7 added -i
148 .BR \-i ", " \-\-ignore\-aux\-cache
149 (Since glibc 2.7)
150 .\"             commit 27d9ffda17df4d2388687afd12897774fde39bcc
151 Ignore auxiliary cache file.
153 .B \-l
154 (Since glibc 2.2)
155 Library mode.
156 Manually link individual libraries.
157 Intended for use by experts only.
159 .B \-n
160 Process only the directories specified on the command line.
161 Don't process the trusted directories,
162 nor those specified in
163 .IR /etc/ld.so.conf .
164 Implies
165 .BR \-N .
167 .B \-N
168 Don't rebuild the cache.
169 Unless
170 .B \-X
171 is also specified, links are still updated.
173 .BR \-p ", " \-\-print\-cache
174 Print the lists of directories and candidate libraries stored in
175 the current cache.
177 .BI "\-r " root
178 Change to and use
179 .I root
180 as the root directory.
182 .BR \-v ", " \-\-verbose
183 Verbose mode.
184 Print current version number, the name of each directory as it
185 is scanned, and any links that are created.
186 Overrides quiet mode.
188 .BR \-V ", " \-\-version
189 Print program version.
191 .B \-X
192 Don't update links.
193 Unless
194 .B \-N
195 is also specified, the cache is still rebuilt.
196 .SH FILES
197 .\" FIXME Since glibc-2.3.4, "include" directives are supported in ld.so.conf
199 .\" FIXME Since glibc-2.4, "hwcap" directives are supported in ld.so.conf
200 .PD 0
202 .I /lib/ld.so
203 Run-time linker/loader.
205 .I /etc/ld.so.conf
206 File containing a list of directories, one per line,
207 in which to search for libraries.
209 .I /etc/ld.so.cache
210 File containing an ordered list of libraries found in the directories
211 specified in
212 .IR /etc/ld.so.conf ,
213 as well as those found in the trusted directories.
215 .SH SEE ALSO
216 .BR ldd (1),
217 .BR ld.so (8)