xref: /netbsd-src/external/bsd/openldap/dist/doc/guide/admin/install.sdf (revision 181254a7b1bdde6873432bffef2d2decc4b5c22f)
1# $OpenLDAP$
2# Copyright 1999-2020 The OpenLDAP Foundation, All Rights Reserved.
3# COPYING RESTRICTIONS APPLY, see COPYRIGHT.
4
5H1: Building and Installing OpenLDAP Software
6
7This chapter details how to build and install the {{PRD:OpenLDAP}}
8Software package including {{slapd}}(8), the Standalone {{TERM:LDAP}}
9Daemon.  Building and installing OpenLDAP Software requires several
10steps: installing prerequisite software, configuring OpenLDAP
11Software itself, making, and finally installing.  The following
12sections describe this process in detail.
13
14
15H2: Obtaining and Extracting the Software
16
17You can obtain OpenLDAP Software from the project's download
18page at {{URL: http://www.openldap.org/software/download/}} or
19directly from the project's {{TERM:FTP}} service at
20{{URL: ftp://ftp.openldap.org/pub/OpenLDAP/}}.
21
22The project makes available two series of packages for {{general
23use}}.  The project makes {{releases}} as new features and bug fixes
24come available.  Though the project takes steps to improve stability
25of these releases, it is common for problems to arise only after
26{{release}}.  The {{stable}} release is the latest {{release}} which
27has demonstrated stability through general use.
28
29Users of OpenLDAP Software can choose, depending on their desire
30for the {{latest features}} versus {{demonstrated stability}}, the
31most appropriate series to install.
32
33After downloading OpenLDAP Software, you need to extract the
34distribution from the compressed archive file and change your working
35directory to the top directory of the distribution:
36
37.{{EX:gunzip -c openldap-VERSION.tgz | tar xf -}}
38.{{EX:cd openldap-VERSION}}
39
40You'll have to replace {{EX:VERSION}} with the version name of
41the release.
42
43You should now review the {{F:COPYRIGHT}}, {{F:LICENSE}}, {{F:README}}
44and {{F:INSTALL}} documents provided with the distribution.  The
45{{F:COPYRIGHT}} and {{F:LICENSE}} provide information on acceptable
46use, copying, and limitation of warranty of OpenLDAP Software. The
47{{F:README}} and {{F:INSTALL}} documents provide detailed information
48on prerequisite software and installation procedures.
49
50
51H2: Prerequisite software
52
53OpenLDAP Software relies upon a number of software packages distributed
54by third parties.  Depending on the features you intend to use, you
55may have to download and install a number of additional software
56packages.  This section details commonly needed third party software
57packages you might have to install.  However, for an up-to-date
58prerequisite information, the {{F:README}} document should be
59consulted.  Note that some of these third party packages may depend
60on additional software packages.  Install each package per the
61installation instructions provided with it.
62
63
64H3: {{TERM[expand]TLS}}
65
66OpenLDAP clients and servers require installation of {{PRD:OpenSSL}},
67 {{PRD:GnuTLS}}, or {{PRD:MozNSS}}
68{{TERM:TLS}} libraries to provide {{TERM[expand]TLS}} services.  Though
69some operating systems may provide these libraries as part of the
70base system or as an optional software component, OpenSSL, GnuTLS, and
71Mozilla NSS often require separate installation.
72
73OpenSSL is available from {{URL: http://www.openssl.org/}}.
74GnuTLS is available from {{URL: http://www.gnu.org/software/gnutls/}}.
75Mozilla NSS is available from {{URL: http://developer.mozilla.org/en/NSS}}.
76
77OpenLDAP Software will not be fully LDAPv3 compliant unless OpenLDAP's
78{{EX:configure}} detects a usable TLS library.
79
80
81H3: {{TERM[expand]SASL}}
82
83OpenLDAP clients and servers require installation of {{PRD:Cyrus SASL}}
84libraries to provide {{TERM[expand]SASL}} services.  Though
85some operating systems may provide this library as part of the
86base system or as an optional software component, Cyrus SASL
87often requires separate installation.
88
89Cyrus SASL is available from
90{{URL:http://asg.web.cmu.edu/sasl/sasl-library.html}}.
91Cyrus SASL will make use of OpenSSL and Kerberos/GSSAPI libraries
92if preinstalled.
93
94OpenLDAP Software will not be fully LDAPv3 compliant unless OpenLDAP's
95configure detects a usable Cyrus SASL installation.
96
97
98H3: {{TERM[expand]Kerberos}}
99
100OpenLDAP clients and servers support {{TERM:Kerberos}} authentication
101services.  In particular, OpenLDAP supports the Kerberos V
102{{TERM:GSS-API}} {{TERM:SASL}} authentication mechanism known as
103the {{TERM:GSSAPI}} mechanism.  This feature requires, in addition to
104Cyrus SASL libraries, either {{PRD:Heimdal}} or {{PRD:MIT Kerberos}}
105V libraries.
106
107Heimdal Kerberos is available from {{URL:http://www.pdc.kth.se/heimdal/}}.
108MIT Kerberos is available from {{URL:http://web.mit.edu/kerberos/www/}}.
109
110Use of strong authentication services, such as those provided by
111Kerberos, is highly recommended.
112
113
114
115H3: Database Software
116
117OpenLDAP's {{slapd}}(8) {{TERM:MDB}} primary database backend uses the {{TERM:LMDB}}
118software included with the OpenLDAP source.  There is no need to download any
119additional software to have {{MDB}} support.
120
121OpenLDAP's {{slapd}}(8) {{TERM:BDB}} and {{TERM:HDB}} deprecated database backends
122require {{ORG[expand]Oracle}}'s Berkeley DB.
123If not available at configure time, you will not be able to build
124{{slapd}}(8) with these deprecated database backends.
125
126Your operating system may provide a supported version of
127Berkeley DB in the base system or as an optional
128software component.  If not, you'll have to obtain and
129install it yourself.  Berkeley DB is available from
130{{ORG[expand]Oracle}}'s Berkeley DB download page if required.
131
132There are several versions available from {{ORG[expand]Oracle}}.
133Berkeley DB version 6.0.20 and later uses a software license that is
134incompatible with LDAP technology and should not be used with OpenLDAP.
135
136Note: Please see {{SECT:Recommended OpenLDAP Software Dependency Versions}} for
137more information.
138
139
140H3: Threads
141
142OpenLDAP is designed to take advantage of threads.  OpenLDAP
143supports POSIX {{pthreads}}, Mach {{CThreads}}, and a number of
144other varieties.  {{EX:configure}} will complain if it cannot
145find a suitable thread subsystem.   If this occurs, please
146consult the {{F:Software|Installation|Platform Hints}} section
147of the OpenLDAP FAQ {{URL: http://www.openldap.org/faq/}}.
148
149
150H3: TCP Wrappers
151
152{{slapd}}(8) supports TCP Wrappers (IP level access control filters)
153if preinstalled.  Use of TCP Wrappers or other IP-level access
154filters (such as those provided by an IP-level firewall) is recommended
155for servers containing non-public information.
156
157
158H2: Running configure
159
160Now you should probably run the {{EX:configure}} script with the
161{{EX:--help}} option.
162This will give you a list of options that you can change when building
163OpenLDAP.  Many of the features of OpenLDAP can be enabled or disabled
164using this method.
165!if 0
166Please see the appendix for a more detailed list of configure options,
167and their usage.
168!endif
169>	./configure --help
170
171The {{EX:configure}} script also looks for certain variables
172on the command line and in the environment.  These include:
173
174!block table; align=Center; coltags="EX,N"; title="Table 4.1: Variables"
175Variable	Description
176CC      	Specify alternative C Compiler
177CFLAGS  	Specify additional compiler flags
178CPPFLAGS	Specify C Preprocessor flags
179LDFLAGS 	Specify linker flags
180LIBS    	Specify additional libraries
181!endblock
182
183Now run the configure script with any desired configuration options or
184variables.
185
186>	./configure [options] [variable=value ...]
187
188As an example, let's assume that we want to install OpenLDAP with
189BDB backend and TCP Wrappers support.  By default, BDB
190is enabled and TCP Wrappers is not.  So, we just need to specify
191{{EX:--enable-wrappers}} to include TCP Wrappers support:
192
193>	./configure --enable-wrappers
194
195However, this will fail to locate dependent software not
196installed in system directories.  For example, if TCP Wrappers
197headers and libraries are installed in {{F:/usr/local/include}}
198and {{F:/usr/local/lib}} respectively, the {{EX:configure}}
199script should typically be called as follows:
200
201>	./configure --enable-wrappers \
202>		CPPFLAGS="-I/usr/local/include" \
203>		LDFLAGS="-L/usr/local/lib -Wl,-rpath,/usr/local/lib"
204
205The {{EX:configure}} script will normally auto-detect appropriate
206settings.  If you have problems at this stage, consult any platform
207specific hints and check your {{EX:configure}} options, if any.
208
209
210H2: Building the Software
211
212Once you have run the {{EX:configure}} script the last line of output
213should be:
214>	Please "make depend" to build dependencies
215
216If the last line of output does not match, {{EX:configure}} has failed,
217and you will need to review its output to determine what went wrong.
218You should not proceed until {{EX:configure}} completes successfully.
219
220To build dependencies, run:
221>	make depend
222
223Now build the software, this step will actually compile OpenLDAP.
224>	make
225
226You should examine the output of this command carefully to make sure
227everything is built correctly.  Note that this command builds the LDAP
228libraries and associated clients as well as {{slapd}}(8).
229
230
231H2: Testing the Software
232
233Once the software has been properly configured and successfully
234made, you should run the test suite to verify the build.
235
236>	make test
237
238Tests which apply to your configuration will run and they should pass.
239Some tests, such as the replication test, may be skipped if not supported
240by your configuration.
241
242
243H2: Installing the Software
244
245Once you have successfully tested the software, you are ready to
246install it.  You will need to have write permission to the installation
247directories you specified when you ran configure.  By default
248OpenLDAP Software is installed in {{F:/usr/local}}.  If you changed
249this setting with the {{EX:--prefix}} configure option, it will be
250installed in the location you provided.
251
252Typically, the installation requires {{super-user}} privileges.
253From the top level OpenLDAP source directory, type:
254
255>	su root -c 'make install'
256
257and enter the appropriate password when requested.
258
259You should examine the output of this command carefully to make sure
260everything is installed correctly. You will find the configuration files
261for {{slapd}}(8) in {{F:/usr/local/etc/openldap}} by default.  See the
262chapter {{SECT:Configuring slapd}} for additional information.
263
264