OpenLDAP をソースからコンパイルして CentOS 6.2 にインストールする

CentOS 6.2 の環境に OpenLDAP をソースからコンパイルしてインストールしてみたので、その時のメモ。
OpenLDAP は年に数回ほど検証環境で使いたいなって場面があります。まぁ、このあたりは専門ではないので誰かに環境貸しておくれ状態になってたわけですが、やっぱり環境ぐらい自分で作れた方がいいだろうということで今回やってみた次第です。


余談入りましたが、以下方法です。

※ インストールする OpenLDAP のバージョンは、2015/07/28 時点最新の 2.4.41 です。

1. ソースのダウンロード


以下の Web ページの United States のミラーからダウンロードしました ( Japan はたまたまなのかつながらず・・・ )。
OpenLDAP, Download
http://www.openldap.org/software/download/

wget でダウンロードして、ついでに展開までしておく。

mkdir /usr/local/openldap
cd /usr/local/openldap
wget ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-2.4.41.tgz
gunzip -c openldap-2.4.41.tgz | tar xf -


2. 必要なソフトウェアのインストール


OpenSSL と GnuTLS が必要みたいなのでインストールしておく。yum で。

yum -y install openssl gnutls

BerkeleyDB 入ってないと ( *1 ) の感じで怒られるので、こいつもインストールしておく。こっちも yum で。

yum -y install db4*

( *1 )

./configure --prefix=/usr/local/openldap/2.4.41
- 略 -
checking db.h usability... no
checking db.h presence... no
checking for db.h... no
configure: error: BDB/HDB: BerkeleyDB not available


3. configure、コンパイル、インストール


今回はインストールディレクトリを "/usr/local/openldap/2.4.41" としたかったので、ディレクトリ作って --prefix で指定する。

mkdir /usr/local/openldap/2.4.41
cd /usr/local/openldap/openldap-2.4.41
./configure --prefix=/usr/local/openldap/2.4.41
- 略 -
Making servers/slapd/overlays/statover.c
    Add syncprov ...
Please run "make depend" to build dependencies

特にエラーもでず、Makefile できているので、とりあえず上手くいったっぽい。

ls /usr/local/openldap/openldap-2.4.41
ANNOUNCEMENT  COPYRIGHT  LICENSE   Makefile.in  aclocal.m4  clients     config.status  configure.in  doc      libraries  servers  tests
CHANGES       INSTALL    Makefile  README       build       config.log  configure      contrib       include  libtool    stamp-h

コンパイル、インストール。

make && make install

こちらも特にエラー等でず、--prefix に指定したディレクトリにそれっぽいディレクトリができてますね。

ls /usr/local/openldap/2.4.41
bin  etc  include  lib  libexec  sbin  share  var


4. 設定ファイルの編集


"/usr/local/openldap/2.4.41/etc/openldap/slapd.conf" の「BDB database definitions」を以下のように変更する。

#######################################################################
# BDB database definitions
#######################################################################

database        bdb
suffix          "dc=example,dc=com"
rootdn          "cn=Manager,dc=example,dc=com"
rootpw          secret
directory       /usr/local/openldap/2.4.41/var/openldap-data
index   objectClass     eq


5. 起動、停止


以下の感じで slapd で起動できる。

/usr/local/openldap/2.4.41/libexec/slapd

ポート 389 がちゃんと LISTEN しております。

netstat -an | grep 389
tcp        0      0 0.0.0.0:389                 0.0.0.0:*                   LISTEN      
tcp        0      0 :::389                      :::*                        LISTEN   

停止はとりあえず kill でやるみたい。。。

kill -INT `cat /usr/local/openldap/2.4.41/var/run/slapd.pid`


ドキュメントは以下あたりです。

OpenLDAP Software 2.4 Administrator's Guide: A Quick-Start Guide
http://www.openldap.org/doc/admin24/quickstart.html

OpenLDAP Software 2.4 Administrator's Guide: Building and Installing OpenLDAP Software
http://www.openldap.org/doc/admin24/install.html

OpenLDAP Software 2.4 Administrator's Guide: Running slapd
http://www.openldap.org/doc/admin24/runningslapd.html#Stopping slapd


データの追加、検索等は、また今度まとめて別エントリーで書こうと思います。

以上です。

[ 環境情報 ]
CentOS 6.2
OpenLDAP 2.4.41