ftp://terminator.rs.itd.umich.edu/ldap/ldap.tar.Z
There is also an LDAP homepage accessible from the World Wide Web. This page contains the latest LDAP news, release announcements, and pointers to other resources. You can access it at:
http://www.umich.edu/~dirsvcs/ldap/
Briefly, you should edit the include/ldapconfig.h.edit and Make-common files to contain the site-specific configuration your site requires before making. The next sections discuss these steps in more detail.
MAKE_SLAPD
This option controls whether slapd and slurpd get built at all. You should set it to yes, like this:SLAPD_BACKENDS
MAKE_SLAPD = yes
This option controls which slapd backend databases get built. You should set it to one or more of the following:
- -DLDAP_LDBM
- This is the main backend. It is a high-performance disk-based database suitable for handling up to a million entries or so. See the LDBMBACKEND and LDBMLIB options below.
- -DLDAP_PASSWD
- This is a simple search-only backend that can be pointed at an /etc/passwd file. It is intended more as an example than as a real backend.
- -DLDAP_SHELL
- This backend allows the execution of arbitrary system administrator-defined commands in response to LDAP queries. The commands to execute are defined in the configuration file. See Appendix B for more information on writing shell backend programs.
Example to enable the LDBM and SHELL backends only:LDBMBACKEND
SLAPD_BACKENDS= -DLDAP_LDBM -DLDAP_SHELL
The default is to build all three backends. Note that building a backend only means that it can be enabled through the configuration file, not that it will automatically be enabled.
This option should only be defined if you have enabled the LDBM backend as described above. The LDBM backend relies on a low-level hash or B-tree package for its underlying database. This option selects which package it will use. The currently supported options in order of preference are:
- -DLDBM_USE_DBBTREE
This option enables the Berkeley DB package btree database as the LDBM backend. You can get this package from
ftp://ftp.cs.berkeley.edu/ucb/4bsd/db.tar.Z
-DLDBM_USE_DBHASH This option enables the Berkeley DB package hash database as the LDBM backend. You can get this package from
ftp://ftp.cs.berkeley.edu/ucb/4bsd/db.tar.Z-DLDBM_USE_GDBM This option enables GNU dbm as the LDBM backend. You can get this package from
ftp://prep.ai.mit.edu/pub/gnu/gdbm-1.7.3.tar.gz
- -DLDBM_USE_NDBM
This option enables the standard UNIX ndbm(3) package as the LDBM backend. This package should come standard on your UNIX system. man ndbm for details. Example to enable the Berkeley DB Btree backend:LDBMLIB
LDBMBACKEND= -DLDBM_USE_DBBTREE
The default is -DLDBM_USE_NDBM, since it is the only one available on all UNIX systems. NDBM has some serious limitations, though (not thread-safe, severe size limits), and you are strongly encouraged to use one of the other packages if you can.
NOTES TO SOLARIS USERS: If you are running under Solaris 2.x and linking in an external database package (e.g., db or gdbm) it is very important that you compile the package with the - D_REENTRANT flag. If you do not, bad things will happen.
If you are using version 1.85 or earlier of the Berkeley db package, you will need to apply the patch found in build/db.1.85.patch to the db source before compiling it. You can do this with a command like this from the db source area:
patch -p < ldap-source-directory/build/db.1.85.patchThis option should only be defined if you have enabled the LDBM backend as described above, and the necessary library for the LDBMBACKEND option you chose above is not part of the standard C library (i.e., anything other than NDBM). This option specifies the library to link containing the package you selected, and optionally, its location.THREADS
Example to link with libdb.a, contained in /usr/local/lib:
LDBMLIB= -L/usr/local/lib -ldbThis option is normally set automatically in the Make-platform file, based on the platform on which you are building. You do not normally need to set it. If you want to use a non-default threads package, you can specify the appropriate -Ddefine to enable it here.THREADSLIBThis option is normally set automatically in the Make-platform file, based on the platform on which you are building. You do not normally need to set it. If you have set THREADS to a non-default threads package as described above, you can specify the appropriate - Ldirectory flag and - llibname flag needed to link the package here.PHONETICThis option controls the phonetic algorithm used by slapd when doing approximate searches. The default is to use the metaphone algorithm. You can have slapd use the soundex algorithm by setting this variable to - DSOUNDEX.4.1.2 Editing the include/ldapconfig.h file
In addition to setting the LDAPHOST and DEFAULT_BASE defines near the top of this file, there are some slapd-specific defines near the bottom of the file you may want to change. The defaults should be just fine, unless you have special needs.SLAPD_DEFAULT_CONFIGFILE
This define sets the location of the default slapd configuration file. Normally, it is set to $(ETCDIR)/slapd.conf, where ETCDIR comes from Make-common.SLAPD_DEFAULT_SIZELIMITThis define sets the default size limit on the number of entries returned from a search. This option is configurable via the tailor file, but if you want to change the default, do it here.SLAPD_DEFAULT_TIMELIMITThis define sets the default time limit for a search. This option is configurable via the tailor file, but if you want to change the default, do it here.SLAPD_PIDFILEThis define sets the location of the file to which slapd will write its process ID when it starts up.SLAPD_ARGSFILEThis define sets the location of the file to which slapd will write its argument vector when it starts up.SLAPD_MONITOR_DNThis define sets the distinguished name used to retrieve monitoring information from slapd. See section 7 for more details.SLAPD_LDBM_MIN_MAXIDSThis define is only relevant to the LDBM backend. It sets the minimum number of entry IDs that an index entry will contain before it becomes an allIDs entry. See Section 9.1 for more details.4.2 Making the Software
Once you have edited the include/ldapconfig.h.edit file and the Make-common file (see the top level README file in the distribution), you are ready to make the software. From the top level LDAP source directory, typemake
You should examine the output of this command carefully to make sure everything is built correctly. Note that this command builds the LDAP libraries and associated clients as well as slapd and slurpd.
Note that the LDAP distribution can support making for multiple platforms from a single source tree. If you want to do this, consult the INSTALL file in the top level distribution directory.
4.3 Installing the Software
Once the software has been properly configured and successfully made, you are ready to install it. You will need to have write permission to the installation directories you specified in the Make-common file. Typically, the installation is done as root. From the top level LDAP source directory, typemake install
You should examine the output of this command carefully to make sure everything is installed correctly. Slapd, slurpd, and their configuration files, slapd.conf, slapd.at.conf, and slapd.oc.conf will be installed in the ETCDIR directory you specified in the Make-common file.
This command will install the entire LDAP distribution. If you only want to install slapd and slurpd, you could do something like this:
(cd servers/slapd; make install)NOTE: The installation process installs configuration files as well as binaries. Existing configuration files are first moved to a name with a dash '-' appended, e.g., slapd.conf is moved to slapd.conf-. If you install things twice, however, you can lose your existing configuration files.
(cd servers/slurpd; make install)
[View Next Section] [View Previous Section] [Return to Table of Contents]Send comments about this page to: ldap-support@umich.edu