1# $OpenLDAP$ 2# Copyright 1999-2019 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