OpenLDAPとBerkeley DBをインストール

ProFTPD + mod_ldap を使いたいので OpenLDAPとBerkeley DBをOpenSolarisにインストールします。

ProFTPD自体は、commpanion CDとかsunfreewareにあるのですが、mod_ldap入りとなるとソースからのコンパイルになります。
で、mod_ldapコンパイルの依存関係としてOpenLDAPの中のlibldapとliblberが必要となり、OpenLDAPにはBerkeley DBが必要になります。

ちなみに、sunfreewareにもOpenLDAPとBDBはあるのですが、、、pkg install使うと /opt/sfw以下(ライブラリは/opt/sfw/libとか)に入るので、そいつらを使うのは後々微妙な感じ(個人的に思うだけ)かなと。


○Berkeley DB 4.2

最新は4.7です。OpenLDAPは4.2以上が条件なので4.7でもよいです。なんとなく4.2


$ wget http://download.oracle.com/berkeley-db/db-4.2.52.NC.tar.gz
$ gzip -cd db-4.2.52.NC.tar.gz | tar xf -
$ cd db-4.2.52.NC
$ cd build_unix/
$ ../dist/configure --prefix=/usr/local
$ make
$ pfexec make install
makeのやり方は、直下のREADMEになくて、docs以下にhtmlで記載されています。

OpenLDAP 2.4


$ wget ftp://ftp.dti.ad.jp/pub/net/OpenLDAP/openldap-stable/openldap-stable-20080813.tgz
$ gzip -cd openldap-stable-20080813.tgz | tar xf -
$ cd openldap-2.4.11/
で、BDBのパスを追加してから。

$ export LD_LIBRARY_PATH=/usr/local/lib
$ ./configure --prefix=/usr/local CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib CC=cc
...
Making servers/slapd/backends.c
Add config ...
Add ldif ...
Add monitor ...
Add bdb ...
Add hdb ...
Add relay ...
Making servers/slapd/overlays/statover.c
Add seqmod ...
Add syncprov ...
Please run "make depend" to build dependencies
$ make depend
...
$ make
...
$ make test
...
$ pfexec make install

sunfreewareのBDBを使う場合、OpenLDAPのConfigureオプションは以下になります。


CPPFLAGS=-I/opt/sfw/include LDFLAGS=-L/opt/sfw/lib


ちょっと気になったのが、pfexec時のライブラリパス。
make installの時に、libdb-4.2.so あたりをロードするのですが、pfexec で成功したり失敗したりが何度かありました。
要検証です。
(検証1回目:http://d.hatena.ne.jp/handler/20090105)


$ su
# LD_LIBRARY_PATH=/usr/local/lib
# make install

で回避はできます。
crleでシステムのLinkerを設定するのが正解か?


$ crle

Default configuration file (/var/ld/ld.config) not found
Platform: 32-bit LSB 80386
Default Library Path (ELF): /lib:/usr/lib (system default)
Trusted Directories (ELF): /lib/secure:/usr/lib/secure (system default)

それとも、/etc/のなにかか?rootユーザのdotファイルか?